Я работаю над встраиваемыми проектами, используя Zephyr RTOS со встроенными микроконтроллерами ARM, такими как серия STM32 Nucleo (Cortex M4 / 0).
В последнее время, из-за значительных улучшений поддержки C ++ в последних версиях Zephyr, я собираюсь перейти от C разработки к современному C ++.
По умолчанию Zephyr включает стандартную библиотеку C, но не STD Cpp.
Zephyr фактически добавил дополнительную поддержку стандартной библиотеки Cpp, которая, кажется, работает довольно хорошо. Однако, это требует огромного использования памяти fla sh (около 65% моих микроконтроллеров fla sh памяти, без моего кода!).
Поэтому я пытаюсь найти альтернативные способы использования современного C ++ без стандартной стандартной библиотеки (включая заголовки памяти / служебных программ).
Я решил использовать Boost.smart_ptr для интеллектуальных указателей, но мне интересно, как мне использовать семантику перемещения (std :: move) В моем случае.
Должен ли я использовать модуль Boost.Move ? Даже если я использую C ++ 1x, а не C ++ 0x?
Должен ли я самостоятельно реализовать семантику перемещения, используя прямое приведение от T & к T && ?