如何用外化类模板化地分别定义嵌套类成员函数?

时间:2015-01-09 05:36:18

标签: c++

我正在编写一个带有内部结构(公共类)的模板类。现在我在定义内部结构的成员函数时遇到了问题。

在头文件中,

template <typename T>
class TMatrix {
    ...
    struct Triplet {

        void nop() const;

    };
    ...
};

要定义函数nop,在我编写的另一个cpp文件中

template <typename T>
void TMatrix<T>::Triplet::nop() {...}
// or
// void typename TMatrix<T>::Triplet::nop() {...}

但这两种形式都没有编译。 g ++说

error: expected unqualified-id before ‘)’ token

如何单独正确定义此功能?

1 个答案:

答案 0 :(得分:0)

除了必须在函数定义

中添加const之外,一切正常
template <typename T>
void TMatrix<T>::Triplet::nop() const {}  // <--const is added in function declaration

您可以在此处查看工作示例

http://ideone.com/Yeio3w