BOOST_STRONG_TYPEDEF 和移动语义

BOOST_STRONG_TYPEDEF and move semantics

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

这只是一个疏忽(没有人更新旧的宏)还是强类型定义以这种方式受到限制有更根本的原因?

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

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

但是,我总是使用自己的强类型定义来完成这项工作,正如我出于其他原因所建议的那样,例如How do I strongly typedef non-primitive types?


¹ Boost Serialization 绝对是这些库之一