Abr*_*ile 1 c++ perfect-forwarding stdtuple c++17
我正在使用C++ 17和Visual C++ 2017,我正在创建一个std::tuple引用std::forward_as_tuple.
从C++ 14开始,可以通过使用类类型而不是索引来访问元组的元素.
当我尝试下面的代码时,我有编译错误
error C2338: duplicate type T in get<T>(tuple)
Run Code Online (Sandbox Code Playgroud)
你知道如何访问以这种方式创建的元组中的元素吗?
下面是示例代码
struct CA {
int data_ = 0;
};
struct CB {
int data_ = 0;
};
int main()
{
CA a;
CA b;
auto joined_objects = std::forward_as_tuple(a, b);
std::cout << std::get<0>(joined_objects).data_ << std::endl; // works
std::cout << std::get<CA &>(joined_objects).data_ << std::endl; // fails
}
Run Code Online (Sandbox Code Playgroud)