我有一个使用模板类型的类,我需要声明一个指向该类实例的指针。
这是此类的一个示例:
template <std::size_t N>
class PlaneSection
{
// Code here
}
我试图声明一个(const)指针,如下所示:
PlaneSection<4>* const plane_section_ptr = &plane_section;
plane_section
类的实例在哪里PlaneSection
。
但是,这不会编译。(g++-4.8 给我的错误是error: missing template arguments before '*' token
.
所以我尝试了这个:
((PlaneSection<4>)* const) plane_section_ptr = &plane_section;
然后编译。
我的问题是为什么我需要额外的 2 对括号?为什么是((PlaneSection<4>)* const)
有效的,但都不是(PlaneSection<4>)* const
或PlaneSection<4>* const
不是?
编辑
我再次重新编译,但这次我不得不将其更改为:
(((PlaneSection<4>)*) const)