C++ 模板函数的简单脚本引擎模板数据类型

C++ 模板函数的简单脚本引擎模板数据类型,c++,function,templates,typedef,C++,Function,Templates,Typedef,我想创建一个简单的脚本引擎。我声明一个数据结构。我有一些变量 enum DataType { DT_INT, DT_FLOAT, DT_BOOL, DT_VOID, DT_STRING }; template < typename T > struct Data { DataType data_type; std::string variable_name; T value; }; enum数据类型 { 德图因特, DT_浮动, 德图布尔, 德图沃德, dt

我想创建一个简单的脚本引擎。我声明一个数据结构。我有一些变量

enum DataType
{
DT_INT,
DT_FLOAT,
DT_BOOL,
DT_VOID,
DT_STRING
};

template < typename T > 
struct Data { 
  DataType data_type;
  std::string variable_name;
  T value; 

}; 
enum数据类型
{
德图因特,
DT_浮动,
德图布尔,
德图沃德,
dtu串
};
模板
结构数据{
数据类型数据类型;
std::字符串变量名称;
T值;
}; 
我声明的数据类型如下:

typedef Data< int > dataINT;
typedef Data< float > dataFLOAT;
typedef Data< bool > dataBOOL;
typedef Data< void > dataVOID;
typedef Data< std::string > dataSTRING;
typedef数据dataINT;
typedef DatadataFLOAT;
typedef数据dataBOOL;
typedef DatadataVOID;
typedef数据dataSTRING;
我需要一个函数获取模板函数的模板数据

    template < typename T >
    Data< T > getData< T >(std::string s);
模板
数据获取数据(std::string s);
我创建了一个函数:

    typedef Data< int > getData< int > getDataINT(std::string s);//<---The compiler says :             "unrecognizable template declaration/definition"

typedef DatagetDatagetDataINT(std::string s)// 除了函数声明完全错误之外,这两种声明都是错误的,您可以使用函数的专门化:

template < typename T >
Data< T > getData(std::string s);

template < >
Data< int > getData(std::string s);

template < >
Data< float > getData(std::string s);

// etc...
模板
数据getData(std::string s);
模板<>
数据getData(std::string s);
模板<>
数据getData(std::string s);
//等等。。。

只需删除
typedef
。我是否应该使用类似的命令:Data-getData-getDataINT(std::string s);顺便说一句,您可能想了解和。另外,
数据
也不会很好地工作。我应该为空白做些什么?它工作了。但我不明白为什么要使用“模板”<>?脚本引擎的结构应该如何?您能提供一些建议吗?