我在一个元组上使用 std::get 。当给定一个 5 个整数的元组时,它可以正常工作:
typedef std::tuple<int, int, int, int, int> int5Tuple;
std::get<1>(int5Tuple(1, 2, 3, 4, 5));
然而,在 6 个整数的元组上,它失败了:
typedef std::tuple<int, int, int, int, int, int> int6Tuple;
std::get<1>(int6Tuple(1, 2, 3, 4, 5, 6));
给出此错误:错误 C2243: 'type cast' : 从 'std::tuple<,_V0_t,_V1_t,_V2_t,_V3_t,_V4_t> *' 转换为 'std::tuple<,_V0_t,_V1_t,_V2_t,_V3_t> && ' 存在,但无法访问。
在寻找解决方案时,似乎暗示它与访问保护有关,但我不认为这将是解决方案的途径。
我得到的智能感知错误是没有 std::get 的实例与参数列表匹配。