【发布时间】:2012-02-09 21:34:16
【问题描述】:
代码如下:
template <typename T>
struct A
{
template <typename U>
struct B;
};
template <typename T> template <> // 0_o
struct A<T>::B<int> {};
我知道我不能这样做,但我更想知道逻辑为什么我不能在不先专门化封闭类模板的情况下专门化嵌套模板成员?
感谢任何关于逻辑解释的帮助:)
编辑:
Andrei Alexandrescu 的回复:“没有什么特别的原因 - 这只是一个语言规则。”
【问题讨论】:
-
可能与此重复.. stackoverflow.com/questions/568046/…
-
@Ajai 这个副本怎么样? 0_o,我正在寻找解释
-
如果您必须在外部专业化和内部专业化之间做出决定,也许会很模糊(例如,假设两者分别是部分专业化的)。
-
+1 表示有趣的问题,很惊讶以前没有人问过这个问题。 :)