【发布时间】:2019-12-01 13:13:32
【问题描述】:
所以我对这样的代码有问题:
我有这样的结构
template <int N>
struct Inner
{
enum
{
val = 2*N
};
};
我想达到这样的目标:
int v = Outer<Inner<4>>::val;
int b = Outer<false>::val;
cout<< v <<endl;
cout<< b <<endl;
我的目标是创建“Outer”结构,它采用bool 或Inner<int N> 并将Outer::val 设置为Inner::val 或bool
所以我创造了这样的东西(不工作):
template <bool B>
struct Outer
{
enum
{
val = B
};
};
template <Inner<int> I>
struct Outer
{
enum
{
val = I::val
};
};
这有什么问题以及如何解决? (我见过一些类似的问题,但仍然无法将其应用于我的问题)
【问题讨论】:
标签: c++ templates metaprogramming template-meta-programming template-specialization