我有一个类,它以大小类型作为参数,以防万一不想使用size_t或另一种需要强制转换并检查溢出的硬编码类型。
此类还具有一些采用第二种模板类型的方法:
template< typename SizeType = uint32_t >
class BufferReader
{
SizeType m_nPosition;
template< typename T >
T Read();
}
我的问题是,实现此语法的语法是什么?
template< typename SizeType, typename T >
T BufferReader< SizeType >::Read()
{
// ...
}
这给我一个错误:
invalid use of incomplete type 'class core::BufferReader<SizeType>'
要么 :
template< typename T >
template< typename SizeType >
T BufferReader< SizeType >::Read()
{
// ...
}
这给出了同样的错误。
还是其他?
谢谢 !
最佳答案
您的第二个示例几乎是正确的,您只需要首先具有该类的模板参数,然后才具有该功能的模板参数:
template< typename SizeType >
template< typename T >
T BufferReader< SizeType >::Read()
{
// ...
}
关于c++ - 混合模板类和模板方法时出现C++错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33149982/