【发布时间】:2013-05-11 23:36:43
【问题描述】:
我有一个要求,我需要在运行时生成函数参数。 在编译时,我不知道参数的数量或它们的类型。它必须在运行时从文件中读取,生成代码并动态加载。
我以前用过M4宏生成语言。它以牺牲可读性和可用性为代价提供了出色的性能。
这次我不想走那条路,正在考虑使用 C++11 Variadic 模板。
还有更好的选择吗?
【问题讨论】:
-
模板在编译时被实例化。您可以将
boost::variants 的向量作为参数。在最坏的情况下(即你要么正在实现一种编程语言,要么你的设计很糟糕),看看 LLVM。 -
模板在编译时被实例化。我看不出这如何帮助您解决运行时代码生成问题。
-
我正在考虑在主程序运行时编译和生成一个.so,并将其与正在运行的程序链接。
-
这个问题对我来说太笼统了。所以你有一些功能和一些数据,你必须将它们配对?所以你有一个 data1,然后你必须调用 fn1(data1.param1, data2.param2...) ...?
-
只是编译时未知的函数参数还是在运行时读取的文件也包含函数体?
标签: c++ unix c++11 metaprogramming m4