使用C ++在编译时操作变量

时间:2014-03-24 12:24:37

标签: c++ variables c++11

由于我忘记了C ++ 11和C ++ 14(我想的还没有改变)的变化,我想知道C ++中是否可以使用以下内容,或者是否有任何计划可以使这样的工作:我需要一种方法来查询类或函数是否使用变量。如果没有,我应该能够添加一个在更高范围内使用的变量(来自调用函数或一些实例化该类的代码)。

我可以在运行时完成所有这些工作,但它有一个我无法承受的性能损失。编写我自己的编译器听起来很重。

2 个答案:

答案 0 :(得分:2)

您真正问题的规范解决方案不是您以某种方式查询的变量。

我个人使用的模板,用户可能会或可能不会实例化。这很容易发现。它也是一种在C ++ 98,0311和14中运行的现有机制。

请记住,在普通的C ++编译模型下,您无法在 编译时查询其他函数 在编译时是否使用变量。这需要时间机器。

答案 1 :(得分:0)

听起来您正在寻找动态框架(允许您根据RTTI从外部更改应用程序行为)。 (你要问的确有点模糊)。

C ++编译器不直接提供此类行为,但可以使用现有的C ++框架或自定义代码实现。

您可以使用Microsoft COM技术(在Windows下)或Mozilla XPCOM(跨平台)技术编写应用程序以实现动态功能支持(通过IUnknown接口),但它需要您定义自己的(自定义)接口那个和努力是非平凡的。

您也可以使用自定义代码库。我更喜欢这个,但这取决于您可以投入到这个项目以及项目施加的其他限制(时间限制,预算等)。