小编use*_*465的帖子

volatile和const volatile std :: tuple和std :: get

看看C++ 11标准.我可以看到专业化std::tuple_sizestd::tuple_element提供volatileconst volatile元组.

template <size_t I, class T> class tuple_element<I, volatile T>;
template <size_t I, class T> class tuple_element<I, const volatile T>;

template <class T> class tuple_size<volatile T>;
template <class T> class tuple_size<const volatile T>;
Run Code Online (Sandbox Code Playgroud)

std::get不提供专业化volatileconst volatile元组.

我在GCC.4.8.1上尝试了以下代码

volatile std::tuple<int, int> a(1, 1);
std::cout << "a<0>=" << std::get<0>(a) << "\n";
Run Code Online (Sandbox Code Playgroud)

我收到错误: no matching function for call to 'get(volatile std::tuple<int, int>&)'

所以如果我理解我可以创建(const)volatile元组但我无法访问它们的元素.

这是预期的行为还是疏忽?

非常感谢.

c++ c++11

9
推荐指数
1
解决办法
334
查看次数

标签 统计

c++ ×1

c++11 ×1