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

Simple Script Engine template data type of a template function

本文关键字:引擎 数据类型 脚本 函数 简单      更新时间:2023-10-16

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

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; 
}; 

我声明的数据类型如下:

typedef Data< int > dataINT;
typedef Data< float > dataFLOAT;
typedef Data< bool > dataBOOL;
typedef Data< void > dataVOID;
typedef Data< std::string > dataSTRING;

我需要一个函数获取一个模板函数的模板数据。

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

我创建了一个函数:

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

我被卡住了。我该怎么办?

除了函数声明完全错误之外,它们都是错误的,您可以使用函数的特殊化:

template < typename T >
Data< T > getData(std::string s);
template < >
Data< int > getData(std::string s);
template < >
Data< float > getData(std::string s);
// etc...