boost :: any会保存副本或引用/指针吗?

bal*_*lki 1 c++ boost boost-any

以下代码是否安全?

boost::any any_value;

{
    std::string s = "HelloWorld";
    any_value = s;
}

std::string ss = any_cast<std::string>(any_value);
Run Code Online (Sandbox Code Playgroud)

mfo*_*ini 5

来自Boost.Any docs:

template<typename ValueType> any & operator=(const ValueType & rhs);
Run Code Online (Sandbox Code Playgroud)

制作rhs的副本,丢弃以前的内容,以便新的内容在类型和值上都与rhs相同.

所以,是的,做到这一点是安全的.存储字符串的副本,而不是对它的引用.