我正在从事嵌入式项目,使用Zephyr RTOS和 ARM 嵌入式微控制器,如 STM32 Nucleo 系列(Cortex M4/0)。
最近,由于最近版本的 Zephyr 对 C++ 的支持显着改进,我正在考虑从 C 开发转向现代 C++。
默认情况下,Zephyr 包含 C 标准库,但不包含 Cpp 的 STD。
Zephyr 实际上添加了对 Cpp 标准库的可选支持,这似乎工作得很好。然而,它需要大量的闪存使用(我的微控制器闪存中接近 65%,没有我的代码!)。
因此,我正在尝试寻找在没有实际标准库(包括内存/实用程序头文件)的情况下使用现代 C++ 的替代方法。
我考虑过将Boost.smart_ptr用于智能指针,但我想知道在我的情况下我应该如何使用移动语义 (std::move)。
我应该使用Boost.Move模块吗?即使我使用的是 C++1x 而不是 C++0x?
我应该自己使用从 T& 到 T&& 的直接转换来实现移动语义吗?