【发布时间】:2015-10-26 11:36:39
【问题描述】:
以下代码给出了错误(在我定义测试的行中):
错误 C2143:语法错误:缺少 ';'在'
有人知道为什么会这样吗? 编译器是VC2015 CTP1。
编辑:错误必须发生在模板解析的阶段1,因为即使我从未实例化类Produce也会发生。
namespace OrderPolicy
{
struct Unordered {};
struct Ordered {};
};
template <typename TOrderPolicy>
struct OrderManager {};
template<>
struct OrderManager<OrderPolicy::Unordered>
{
template <typename TItem>
using item_t = TItem;
};
template<>
struct OrderManager<OrderPolicy::Ordered>
{
template <typename TItem>
using item_t = TItem*;
};
template<typename TOrderPolicy>
struct Produce : public OrderManager<TOrderPolicy>
{
item_t<int> test;
//using item_type = item_t<int>;
};
Edit2:当我将代码的最后一部分更改为时它可以工作
struct Produce : public OrderManager<OrderPolicy::Ordered>
{
item_t<int> test;
//using item_type = item_t<int>;
};
【问题讨论】:
标签: c++ c++11 visual-c++