jjzjj

stdapply

全部标签

c++ - std::apply 和常量表达式?

我在Wandbox中尝试了以下代码:#include#include#include#include#include#includeintmain(){constexprstd::arraystr{"123456789"};constexprautofoo=std::apply([](auto...args)constexpr{std::integer_sequence{};},str);std::cout编译器告诉我args...不是常量表达式。怎么了? 最佳答案 函数参数不能被标记为constexpr。因此,您不能在需要常量表达

c++ - 将 std::apply 与可变参数包一起使用

我正在尝试创建一个通用类,它接受一组类型,将它们存储在一个元组中,并且可以对它们应用一个函数。到目前为止我尝试的是以下内容:#includestructBase{virtualvoidbase_function()=0;};templatestructA:publicBase{std::tupleas;A(T...pack):as(pack...){};voidbase_function(){std::apply([](autot){t.base_function();},as);}};structB:publicBase{voidbase_function(){};};structC