1

我有一个使用模板类型的类,我需要声明一个指向该类实例的指针。

这是此类的一个示例:

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>)* constPlaneSection<4>* const不是?

编辑

我再次重新编译,但这次我不得不将其更改为:

(((PlaneSection<4>)*) const)
4

0 回答 0