如何在* .inl文件中的模板类中定义模板函数 [英] How to define template function within template class in *.inl file

查看:200
本文介绍了如何在* .inl文件中的模板类中定义模板函数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在* .hpp文件中写模板声明,并在* .hp文件中链接的* .inl文件中的定义,就像这样:

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

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

但是如何在* .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()
{
}

如何定义extraTypedmethod?

谢谢!

解决方案

这是您的定义:

 模板< typename T1,typename T2> 
template< typename E>
void SomeClass< T1,T2> :: extraTypedMethod(E& e)
{
}


I write template declaration in *.hpp file and their "definition" in *.inl file linked from *.hpp

just like this:

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

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

but how to write extra templated method inside template class in *.inl file?

//*.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??

thank you!

解决方案

Here's your definition:

template <typename T1, typename T2>
template <typename E>
void SomeClass<T1, T2>::extraTypedMethod(E & e)
{
}

这篇关于如何在* .inl文件中的模板类中定义模板函数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆