2017-01-07 60 views
0

假設我有一個模板類有條件constexpr成員函數

template <typename T> 
class foo { 
    T m; 

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

我怎能捨棄foo:f()的constexpr符只有T::f()是constexpr?

回答

3

你只巴掌constexpr它:

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

是的,即使T::f()constexpr完美仍然有效;這樣的函數根本不能用在常量表達式中。見​​。