请帮助我理解 gcc 编译器的输出。我完全糊涂了。
我有一个错误:
C/types.h:47:56: error: declaration of
'struct VV::MM<VV::SSS::Vector<short unsigned int>, 8u, 0u>'
这对我来说已经听起来很奇怪。
在 types.h:47 我看到:
template<typename V, size_t Size1, size_t Size2> class MM;
这对我来说看起来不错。
这是构建日志中的第二条错误消息,我想知道它是否只是第一个错误的第二部分?这里第一个和第二个错误一起出现:
<... compiles normally, no errors ...>
In file included from A/T.h:14:0,
from B/I.h:5,
from B/F.cxx:54:
A/AArray.h: In instantiation of
'AInternal::AlignedData<VV::MM<VV::SSS::Vector<short unsigned int>, 8u, 0u>, 104u, 0>':
A/AArray.h:561:125: instantiated from
'AFArray<VV::MM<VV::SSS::Vector<short unsigned int>, 8u, 0u>, AArraySize<104u> >'
A/V.h:73:99: instantiated from here
A/AArray.h:364:20: error: 'AInternal::AlignedData<T, Size, 0>::fArray'
has incomplete type
C/types.h:47:56: error: declaration of
'struct VV::MM<VV::SSS::Vector<short unsigned int>, 8u, 0u>'
In file included from <...other errors...>
在 A/Vh:73 我有:
AFArray<VV::SSS::Vector<short unsigned int>::MM, AAArraySize<N> > fAlpha;
我相信可以触发日志中的第二行:
A/AArray.h: In instantiation of
'AInternal::AlignedData<VV::MM<VV::SSS::Vector<short unsigned int>, 8u, 0u>, 104u, 0>':
因为 VV::SSS::Vector::MM 是未定义类型,因为第二个错误。
所以我有两个问题:
- 第二个错误消息是第一个错误的一部分吗?
- 这个声明有什么问题?