我有以下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
不起作用。 谢谢!
答案 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;