带有odr用法的c ++ 14静态constexpr auto

时间:2019-02-08 10:13:42

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

我有以下c ++ 14代码:

epsilonSquared(x = df$x, 
               g = df$y,ci = T)

  epsilon.squared lower.ci upper.ci
1           0.185  0.00479     0.54

这很好,只要template<typename T> struct Test{ static constexpr auto something{T::foo()}; }; 也是T::foo()

现在,我使用了constexpr作为ODR,所以我需要提供一个名称空间声明。我应该使用什么语法?

something

不起作用。 谢谢!

1 个答案:

答案 0 :(得分:2)

通过using定义的类型名怎么办?

template <typename T>
struct Test
 {
   using someType = decltype(T::foo());

   static constexpr someType something{T::foo()};
 };

template<typename T>
constexpr typename Test<T>::someType Test<T>::something;