c++ - BOOST_STRONG_TYPEDEF并 move 语义

标签 c++ boost move-semantics strong-typing

据我所知see BOOST_STRONG_TYPEDEF不支持移动语义(不移动ctor /赋值)。

这仅仅是一个疏忽(没有人更新旧宏)还是有更根本的原因限制了这种强类型定义?

最佳答案

根本原因是,许多Boost库仍然针对c++ 11之前的标准编译器¹,即不支持移动语义的编译器。

我想对于某些编译器,可能会使用Boost Move中的技巧,但我不确定透明地将其应用于强类型定义很容易。

但是,我总是会用自己强大的typedef来完成这项工作,因为出于其他原因,例如How do I strongly typedef non-primitive types?

¹Boost序列化绝对是这些库之一

关于c++ - BOOST_STRONG_TYPEDEF并 move 语义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61617315/

相关文章:

c++ - 作为 Windows 服务运行应用程序报告 COM 错误 80040154

c++ - 代码作为 C 文件工作,但不作为 C++ 文件工作,错误 : '__builtin_types_compatible_p' was not declared in this scope

c++ - 在使用中删除 boost 功能

C++11:std::move() 调用参数列表

c++ - 为派生类 move 构造函数

c++ - 使用仅使用一次的变量调用的复制构造函数。这可能是通过调用 move 构造函数来优化编译器的情况吗?

c++ - 在 C++ 中使用 srand()

c++ - 接收任何标准 map 的功能模板

c++ - 构造函数失败后初始化 boost::asio 套接字

c++ - boost::filesystem:path检测到两个路径共享同一物理驱动器