2016-11-15 4 views
0

Я хотел бы знать, если это возможно, что BITSET внутри декларации шаблона следующим образом:BITSET в объявлении шаблона

ListData<bitset<64>>* hamming = new ListData<bitset<64>>(); 

ListData является классом, содержащим элемент Т следующим образом:

template <typename T> 
class ListData { 
    public: 
    ... 
    private: 
    T number; 
}; 

Компилятор говорит, что аргумент шаблона недействителен и что hamming не объявлен в этой области. Любая идея?

p.s. Я не могу использовать векторные контейнеры C++ из-за ограничений моего назначения

+0

Невозможно воспроизвести http://rextester.com/TDSWL71410 – P0W

+0

Это C++ 11 или C++ 98? – Danh

ответ

0

Я нашел ответ. Оказывается компилятор мысли «>>» в:

ListData<bitset<64>>* hamming = new ListData<bitset<64>>(); 

был признан как перегруженный оператор >>.

ListData<bitset<64> >* hammingList = new ListData<bitset<64> >(); 

Таким образом, вышеупомянутое устраняет проблему.