是否可以根据模板参数的常量性有条件地启用模板类的非 const/const 数据成员?或者可能有一些条件类型定义?我考虑过将 std::enable_if 与 std::is_const 一起使用,但没有我可以使用的 std::is_not_const。
class A;
template <typename T>
class Test
{
A& m_a; // If T != const.
const A& m_a; // If T == const.
};
请注意总是 T != A。
最佳答案
是的,您可以使用 std::conditional
:
template <typename T>
class Test
{
typename
std::conditional<std::is_const<T>::value, const A&, A&>::type
m_a;
};
关于c++ - 是否可以根据模板参数的常量性有条件地启用模板类的非 const/const 数据成员?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22946398/