有条件的constexpr成员函数

时间:2017-01-07 03:50:55

标签: c++ templates c++14 constexpr

假设我有一个模板类

template <typename T>
class foo {
    T m;

    decltype(auto) f() { return m.f(); }
};

如果foo:f()是constexpr,我怎样才能给T::f() constexpr说明符?

1 个答案:

答案 0 :(得分:5)

你只需要点击constexpr

constexpr decltype(auto) f() { return m.f(); }

是的,即使T::f()不是constexpr,它仍然完全有效;这样的函数根本不能用在常量表达式中。请参阅[dcl.constexpr]/6