C++ 11标准是否提供类似boost :: any的东西?

dev*_*ull 19 c++ boost boost-any c++11 stdany

例如boost::function,几乎完全移动到std::function,同样是boost::shared_ptr

但我找不到std::any?是重命名还是根本没有以新标准放置?

Ale*_*nes 17

自提出问题以来,我们向std :: experimental :: any推进 了作为C++ 14标准投票的可选功能.

然后至少在GCC 5.1中实施了它.

从那以后,该特征在C++ 17中被标准化,从而产生了std :: any.另请参阅C++ 17的std :: variant,它是一个类型安全的联合,它可以包含一个有限的已知类型替代,也可以是空的(感谢remy-lebeau提示).

  • [`std :: variant`](http://en.cppreference.com/w/cpp/utility/variant)(类似于`boost :: variant`)也已标准化,将出现在C++ 17中. (3认同)

Gri*_*zly 15

并非每个来自boost的库都使其成为标准(甚至那些可能会删除组件的那些).一般来说,当谈到添加到标准库时,委员会是非常保守的(因为如果包含是错误的话,以后几乎不可能删除某些内容(例如,因为有更好的选择)).

boost::functionboost::shared_ptr其中相当多列入一个给定的,因为他们已经在那里的一部分tr1.boost::any另一方面没有削减.然而,它可能会在稍后的时间点包含在标准库中(例如,在下一个技术报告中,请查看此处).虽然boost::any很高兴,但我不会像它那样重要shared_ptr.

结论:boost::any不是C++ 11的一部分,因为委员会没有看到任何迫切需要包含它

  • 也许你可以更新你的答案,以反映17个变化:) (7认同)

use*_*014 6

Std :: any最近被c ++ 17标准接受:

http://en.cppreference.com/w/cpp/utility/any