【问题标题】:Boost.type erasure. Move only typeBoost.type 擦除。仅移动类型
【发布时间】:2014-05-03 05:54:56
【问题描述】:

我正在尝试在 boost.type 擦除库中使用仅移动类型:

using any_move_only_object = boost::type_erasure::any<boost::mpl::vector<
   //my interface,
   //How can I say I want move only types here?>>

我不知道如何使仅移动类型可用于库,并且找不到任何文档。

有可能吗?

问候

【问题讨论】:

  • 这是不可能的(boost/type_erasure/detail/storage.hpp 定义 storage 没有任何非常量或移动构造函数,并且代码中似乎没有任何解决方法)。我认为这是一个错误/错误功能,应该在Boost.Dev 邮件列表上报告/讨论。
  • 请记住,Boost 库往往与 C++03 兼容,这可能解释了(部分?)缺乏对移动语义的支持
  • 好吧,自己编写并不是最好的解决方案,我想我将不得不恢复到经典的 OO 继承。但是拥有这个功能真的很棒,对我当前的代码有很大帮助。另一种方法是使事物可复制,但实际上我认为这对我来说没有多大意义。可能会增加误用的可能性。
  • @Mankarse:这应该是一个答案。

标签: c++ c++11 boost type-erasure


【解决方案1】:

这是不可能的,因为boost/type_erasure/detail/storage.hpp 定义了storage 没有任何非常量或移动构造函数,而且代码中似乎没有任何变通方法。

我认为这是一个错误/错误功能,应该在Boost.Dev 邮件列表中报告/讨论

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-28
    • 1970-01-01
    • 1970-01-01
    • 2020-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多