Функция как параметр функции

Передача функции как параметра функции.

#include <iostream>
int sum(int arg1, int arg2)
{
return arg1 + arg2;
}
int mul(int arg1, int arg2)
{
return arg1 * arg2;
}
int calc(int(*calc_func)(int, int), int arg1, int arg2)
{
return calc_func(arg1, arg2);
}
using namespace std;
int main()
{
cout << "Sum: " << calc(sum, 4, 5) << endl;
cout << "Mul: " << calc(mul, 4, 5) << endl;
return 0;
}

RaspberryPi+OpenCV+Code:Blocks

Устанавливаем на карту памяти Raspbian.
Для этого в Windows:

  1. скачиваем Raspbian https://www.raspberrypi.org/downloads/ и разархивируем его
  2. скачиваем и устанавливаем Etcher https://etcher.io
  3. записываем при помощи Etcher образ на карту памяти
  4. загружаемся в ОС, подключаем RaspberryPi к интернету, обновляем ОС до актуального состояния:
    • apt-get update
    • apt-get upgrade
  5. настраиваем RaspberryPi raspi-config
    • Interfacing Options -> Camera
    • Overclock -> Modest
    • Advanced Options -> Expand Filesystem
    • перезагружаемся и проверяем, что файловая система расширена на весь объем карты памяти df -h
  6. выключаем RaspberryPi, подключаем камеру, включаем питание, проверяем работоспособность и правильность подключения камеры raspistill -o cam.jpg и vcgencmd get_camera
  7. устанавливаем необходимые пакеты apt-get install build-essential cmake pkg-config
  8. устанавливаем библиотеки OpenCV apt-get install libopencv-dev
  9. устанавливаем Code:Blocks apt-get install codeblocks
  10. запускаем и настраиваем Code:Blocks
    • Project -> Build options -> Compiler settings -> Compiler Flags -> C++11 + O3
    • Linker settings -> Link libraries -> Add (/usr/lib/arm-linux-gnueabihf/)
    • узнать расположение библиотек в системе можно выполнив pkg-config --libs opencv или find / -name "libopencv*"
    • наличие пакетов в системе поможет проверить apt search
  11. переводим камеру в режим трансляции modprobe bcm2835-v4l2
  12. возможно придется сделать mknod /dev/video0 c 81 0
  13. проверить корректность распознавания камеры можно при помощи v4l2-ctl --list-devices, а вывести возможные режимы работы камеры поможет v4l2-ctl --list-formats
  14. убеждаемся в работоспособности связки:
    #include <opencv2/highgui/highgui.hpp>
    #include <opencv2/core/core.hpp>
    int main()
    {
    cv::VideoCapture cap(0);
    if (!cap.isOpened()) return 1;
    cv::Mat frame;
    cv::namedWindow("win",1);
    while (cvWaitKey(10)!=32)
    {
    cap >> frame;
    cv::imshow("win", frame);
    }
    return 0;
    }

Запуск браузера IE из командной строки

Запуск с переходом на конкретный сайт
"C:\Program Files\Internet Explorer\iexplore.exe" i-do.pro
Запуск с переходом в поисковую систему по умолчанию
"C:\Program Files\Internet Explorer\iexplore.exe" i-do.pro автоматизация рутинных задач
Параметры запуска:
Запуск Internet Explorer с помощью технологии OLE
-embedding
Запуск браузера, отключив все надстройки
-extoff
Запуск браузера в режиме «Kiosk mode»
-k
Запуск браузера в режиме InPrivate
-private