2012-04-24 3 views
0

Если возможно, я хотел бы иметь функцию в классе, которая возвращает шаблонный шаблон, где значение класса и значения шаблона шаблона являются параметрами шаблона. Например,Тип возвращаемого типа типа и типа для функции-члена

class AClass 
{ 
public: 
    template<typename ClassType, typename ClassTemplateType> 
    ClassType<ClassTemplateType>* TestFunction() { return NULL; } 
}; 

Однако, если бы я сделать что-то вроде этого я получаю ошибки, такие как

ошибка C2988: неузнаваемый шаблон декларации/определения

ошибка C2059: синтаксическая ошибка: '<'

ошибка C2143: синтаксическая ошибка: отсутствует ';' до '}'

ошибка C2238: неожиданный токен (ы), предшествующий ';'

Возможно ли сделать что-то, что я предоставил, и если да, то как? Если это не так, почему нет и есть что-то еще, что можно было бы предложить?

ответ

4

Синтаксис для параметров шаблона шаблон

template<template<typename> class ClassType, typename ClassTemplateType> 
ClassType<ClassTemplateType>* TestFunction() { return NULL; } 
+0

Почему это класс 'ClassType' и не' шаблон ClassType'? – judeclarke

+0

@judeclarke синтаксис: 'template