【发布时间】:2012-06-27 19:02:13
【问题描述】:
下面代码中标记的两行有什么区别?
template <const char *N> struct A {
static const char *p;
};
template <class T> struct B {
static const char c[1];
typedef A<B<T>::c> C; // <---
// typedef A<c> C; // <---
};
我收到的错误是:
test_t.C:在 'const char B::c [1]' 的实例化中:
test_t.C:7:从这里实例化
test_t.C:7:内部编译器错误:in instantiate_decl,位于 cp/pt.c:15628
请提交完整的错误报告,
如果合适,使用预处理的源。
有关说明,请参阅http://gcc.gnu.org/bugs.html。
【问题讨论】:
-
为什么人们坚持用c标签标记问题,而它显然不能是C代码,因为它使用模板之类的东西?
-
我很确定没有区别。为什么你认为有一个?
-
@R.MartinhoFernandes,我很确定这是因为整个“C/C++”废话。
-
typedef A::c> C; - 这个提供编译器错误;类型定义 A
C; - 这个没问题。 -
这是一个内部编译器错误,它是编译器的一个错误,正如您在消息中所暗示的那样:请提交完整的错误报告,.. . 见gcc.gnu.org/bugs.html阅读错误信息是不是这么难?
标签: c++ android-ndk