指向转发声明的模板类的指针

时间:2016-02-23 05:30:52

标签: templates c++11

我创建了一个基于模板的简单类。现在我正在尝试写一个流阅读器&作家。我只想要一个指向流中数组的指针。但它不起作用。 我正在使用VS2015

////////////////////////////Array.h
#include "Stream.h"

template<typename... Types> class TArray {};

template<typename T0> class TArray<T0>
{
    friend Stream& << (Stream& stream, const TArray& arr)
    {
        ...
    }
    ...
}


///////////////////////////////Stream.h
class Stream
{
public:
    class TArray<char>* mArray; //ERROR, it dose not work
}

1 个答案:

答案 0 :(得分:0)

template< typename T0 > class TArray
{
    friend Stream& << (Stream& stream, const TArray& arr)
    {

为任意T0类声明模板。 或者:

template<> class TArray< T0 >
{
    friend Stream& << (Stream& stream, const TArray< T0 >& arr)
    {

声明前面为特定类T0声明的模板的规范。 T0桅杆是已知定义的类,例如在您的情况下为char。