我无法让 std::any 在以下代码和平中正常运行。 我想要实现的是返回指向 std::any 持有的 object 的引用/指针。 下面使用 void 指针的版本运行良好。 我如何使用 std::any 翻译它。 为什么 std::any_cast 设计为返回内部 object 的副本? 谢谢 ...
我无法让 std::any 在以下代码和平中正常运行。 我想要实现的是返回指向 std::any 持有的 object 的引用/指针。 下面使用 void 指针的版本运行良好。 我如何使用 std::any 翻译它。 为什么 std::any_cast 设计为返回内部 object 的副本? 谢谢 ...
该查询主要基于std::function<R(Args...) >::operator=和std::any::operator= 。 文档显示它们总是通过构造一个新的临时 object 并使用交换 function 将其与这个 object 交换来实现的,这相当于破坏保留的 objec ...
在 C++ 中,如果Base是Derived的基类,您可以将Derived的实例传递给接受Base的函数。 这对于满足 API 和非常常见的 API 设计模式非常有用。 目前我面临一种情况,我想通过std::any向上转型。 那就是我有一个存储Derived实例的std::any ,我想将其地址转 ...
这个脚本 为什么它不起作用? 对不起,如果这听起来有点愚蠢 ...
我正在尝试制作一个 function 将std::any object 转换为字符串,因为可能的类型列表是硬编码的。 但是,当用户解析AnyPrint("555")之类的原始字符串时会出现问题。 我使用Checking std::any's type without RTTI中的方法当我运行程序时 ...
我想在 Vec 中存储任何类型,并匹配存储在 Vec 中的实际类型。 这是我的尝试: 然而,这总是打印“i32”,并且我收到无法访问的模式警告。 我如何与 Any 匹配? ...
问题我需要帮助来解决我的 gtest 1.10.0 版本的单元测试问题。 当我尝试对涉及接受 std::experimental::any 参数的 function 进行单元测试时,会引发异常并终止单元测试。 重现问题的步骤覆盖我的测试场景的单元测试片段在https://godbolt.org/z ...
我需要从库中获取一些复杂的数据,然后在上层使用这些数据。 数据由两部分组成:在评估数据 A 时,我得到了一些额外的数据 B,并且数据 B 应该“按原样”返回到库中,以便不再重新评估它。 所以为了简化这一点:我从库中获取数据 A 和数据 B,将两者都传输到上层,使用 A,但是我应该将数据 B 传输回库 ...
我正在尝试根据这个答案解决昨天在 SO 上提出的问题。 我已修改此处给出的代码以使用std::any而不是void* 。 我目前拥有的代码如下: 问题是当我写 这不会将( push_back )元素添加到原始向量中,而是添加它的副本。 如何将元素添加到原始向量m_Properties.Street ...
我正在研究 C++17 项目,我正在使用std::any 。 下面给出了一个最小的可重现示例,以供参考,解释我想要实现的目标。 从上面的示例中可以看出,我有一个std::any object 并且我正在使用std::any_cast将元素添加到向量中。 我想将元素添加到名为vec的实际( lval ...
你怎么能得到var的类型? 例如: Output: ...
在std::any中存储了一个值,我想知道它是整数值( char 、 short 、 int 、 long ,有符号和无符号)还是浮点值( float 、 double )或其他值。 如果我只需要检查int值,我会这样做: 但是为 C++ 中的所有整数类型做一个巨大的if (a.type() == ...
C++ 中是否有足够的方法从 std::any 存储的数据中提取 hash ? 好吧,或者至少是字节列表及其长度形式的 object ...
我有一些输入,可以是简单的值或容器,包装在std::any中。 我不想使用异常,所以我调用noexcept variadic any_cast方法,它将指针或nullptr返回到任何值。 我可以使用typeid()验证任何可用的演员表,但我不想使用它并想找到一些替代方法。 一些 typetrait ...
在每个 any_cast 之后调用的析构函数。 并且,下面的代码会导致运行时错误。 我认为原因是 any_cast(C) 的工作管道可能像~C() then X(C) ERROR!!C doesn't exist any_cast 真的像那样工作吗? 我添加了打击代码并产生了运行时错误。 ...
我正在寻找一种方法来设置和调用具有任意 arguments 和返回类型的函数。 一个用例是高级脚本。 像这样的东西: 我做了一个简化的例子: https://godbolt.org/z/rMcTo9 这行得通,但我想知道是否有更简单或更直接的方法。 另外,困扰我的一件事是需要将多态类型(即派生类的 ...
只有修改而不是替换存储为std::any的 object 的方法是声明可变数据可变? 例如,为了避免创建和复制 class S 实例: ...
我意识到嵌套的 std::any 是个坏主意。 尽管如此,我遇到了一些让我摸不着头脑的事情,我只是想了解编译器为什么会窒息。 考虑以下代码行(假设arg变量是包含另一个 std::any 的 std::any): 那行编译得很好。 现在,考虑这一行,其中我有一个 std::any 包含一个 std: ...
我最近遇到了基于boost::any在 C++17 中引入的std::any class 。 这个 class 可以“持有任何类型的实例”并auto推断变量的数据类型。 那么主要区别是什么? 优缺点都有什么? ...
我正在使用带有 RTTI 和异常的std::any禁用。 它可以工作并且std::any_cast<T>()能够检测类型是否正确,如std::any 中所述,没有 RTTI,它是如何工作的? . std::any::type()在没有 RTTI 的情况下被禁用。 我想检查我的std: ...