是否可以根据文件内容创建结构类型?

时间:2011-04-15 08:51:37

标签: c++

在C ++中是否可以根据文件内容创建结构类型?

STRUCT_NAME  
int var1;  
int var2;  
string v3;
STRUCT NAME *pointer;

第一行是结构的名称,其他行是变量

4 个答案:

答案 0 :(得分:2)

如果您正在阅读文件并尝试创建此struct

- >如果在同一个程序中,即运行时则;因为你无法编译当前正在执行的源代码

- >对于一些尚未编译的不同源代码,您正在使用文件操作进行操作,然后

答案 1 :(得分:2)

你的意思是在你的应用程序运行时吗?不,你不能这样做,所有类型必须在编译时知道。当然,您始终可以创建某种可在运行时动态配置的容器对象,但这是一个更先进的系统。

另一方面,如果你打算在构建应用程序时这样做一次,你可以编写一个简单的工具来吃掉你的文本文件并发出一个C ++头文件,以后你可以在编译时使用它。

答案 2 :(得分:1)

没有。您最接近的是std::map<std::string, boost::any>(如果您可以限制类型集,则为boost::variant。)

答案 3 :(得分:0)

无论@lindydancer @iammilind @james说的是正确的......你不可能一次性去做。你可以解决这个问题(虽然这不是专业的做法): 1.首先读取定义结构的文件并创建新文件(Cpp和h文件)。 2.现在编译新文件并向您的用户提供新的exe文件,您可以在后台执行此过程,以便为用户提供所有动态..(但是请某人必须做这项工作......)