C++ boost::any中的模板复制构造函数
boost::any中的模板复制构造函数 我对boost的任何.hpp中的这些代码感到困惑C++ boost::any中的模板复制构造函数,c++,boost-any,C++,Boost Any,boost::any中的模板复制构造函数 我对boost的任何.hpp中的这些代码感到困惑 template<typename ValueType> any(const ValueType & value) : content(new holder< BOOST_DEDUCED_TYPENAME remove_cv<BOOST_DEDUCED_TYPENAME decay<const ValueType&g
template<typename ValueType>
any(const ValueType & value)
: content(new holder<
BOOST_DEDUCED_TYPENAME remove_cv<BOOST_DEDUCED_TYPENAME decay<const ValueType>::type>::type
>(value))
{
}
any(const any & other)
: content(other.content ? other.content->clone() : 0)
{
}
模板
任意(常量值类型和值)
:内容(新支架)<
BOOST\u导出的\u类型名称删除\u cv::类型
>(价值)
{
}
任何(常数任何和其他)
:content(other.content?other.content->clone():0)
{
}
很明显,对于sencod,当我需要一个来自另一个对象的新对象时,copy构造函数非常有用。
但何时将执行构造的第一个副本?模板构造函数(不是副本构造函数)从对值类型的某个对象的常量引用构造一个boost::any
。复制构造函数复制any(在其中执行对象的多态克隆)
以下是选择第一个表单的时间示例:
std::string s = "Hello, World";
boost::any a(s); // template constructor selected here
boost::any b(a); // copy constructor selected here.
你的“加号”钥匙坏了吗?看来你应该打两次?