如何在*.inl文件中的模板类中定义模板函数

rel*_*xxx 17 c++ templates function-signature

我在*.hpp文件中编写模板声明,并在*.hpp文件中链接*.inl文件中的"定义"

像这样:

//*.hpp
template <typename T1, typename T2>
class SomeClass
{
public:
    void someMethod();
};

//*.inl
template <typename T1, typename T2>
void SomeClass<T1, T2>::someMethod()
{
}
Run Code Online (Sandbox Code Playgroud)

但如何在*.inl文件中的模板类中编写额外的模板化方法?

//*.hpp
template <typename T1, typename T2>
class SomeClass
{
public:
    void someMethod();

    template <typename E>
    void extraTypedMethod(E & e);
};

//*.inl
template <typename T1, typename T2>
void SomeClass<T1, T2>::someMethod()
{
}

//how can I here define extraTypedmethod?
Run Code Online (Sandbox Code Playgroud)

Nic*_*tti 30

这是你的定义:

template <typename T1, typename T2>
template <typename E>
void SomeClass<T1, T2>::extraTypedMethod(E & e)
{
}
Run Code Online (Sandbox Code Playgroud)