Отключение автоматического создания папки .vs в проектах Visual Studio

При работе в Visual Studio 2017 в папке проекта создается папка .vs, которая занимает даже на небольших проектах довольно существенное место. Для отключение автоматического создания папки .vs в проектах Visual Studio и переназначения целевой папки для хранения временных файлов студии в временные папки ОС следует произвести следующие настройки:

Средства->Параметры->Текстовый редактор->C/C++->Дополнительно->Расположение Fallback->

  • Всегда использовать запасное место->true
  • Не предупреждать, если используется запасное место->true

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

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

#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;
    }