jjzjj

c++ - `std::any_cast` 返回拷贝

我正在阅读documentationforstd::any_cast我觉得很奇怪,API让转换要么返回一个值给持有的对象,要么返回一个指向它的指针。为什么不返回引用?每次使用非指针类型参数调用函数时都需要创建一个拷贝。我可以看到指针版本的转换可能更能表明意图,也可能更清晰,但为什么不让返回值成为这样的引用呢?templateValueType&any_cast(any*operand);代替templateValueType*any_cast(any*operand);此外,即使您请求引用,强制转换也会删除引用并将拷贝返回到存储的对象,请参阅此处对函数重载1-3的返回值的解释http:

c++ - 在 Xcode 8.1 中使用 C++17 'any'

我在Xcode8.1版中使用C++。我需要使用boost::any的功能,但强烈反对将Boost的任何部分拉入我们的项目(请不要争论)。我看到std::any被“合并到C++17中”here.我想在我的Xcode8.1项目中使用它。我曾尝试使用-std=c++1z作为项目的自定义标志,但我似乎找不到它的header。如何在我的Xcode项目中使用std::any或std::experimental::any?我能否从实现中下载适当的header并将它们放入我的项目源代码中?或者,更好的是,我现在的Xcode/Clang/C++版本实际上可用吗? 最佳答案