1
下面的代碼是否安全?是否boost :: any保存副本或引用/指針?
boost::any any_value;
{
std::string s = "HelloWorld";
any_value = s;
}
std::string ss = any_cast<std::string>(any_value);
下面的代碼是否安全?是否boost :: any保存副本或引用/指針?
boost::any any_value;
{
std::string s = "HelloWorld";
any_value = s;
}
std::string ss = any_cast<std::string>(any_value);
從Boost.Any文檔:
template<typename ValueType> any & operator=(const ValueType & rhs);
使RHS的副本,丟棄以前的內容,從而使新 內容都是在這兩個類型和價值相當於RHS。
所以是的,這樣做是安全的。存儲字符串的副本,而不是對其的引用。
是的。假設類型符合Copyable
的概念,boost::any
通過製作它的副本來取得一切。