使用c++在编译时操纵变量

Manipulating variables at compile time with C++

本文关键字:操纵 变量 编译 c++ 使用      更新时间:2023-10-16

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

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

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

我个人会使用一个模板,用户可能会或可能不会实例化。这很容易发现。这也是c++ 98、03、11和14中已经存在的机制。

请记住,在普通的c++编译模型下,您不能在编译时查询另一个函数是否将在编译时使用变量。那需要时间机器。

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

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

您可以使用Microsoft COM技术(在Windows下)或Mozilla XPCOM(跨平台)技术来编写应用程序,以实现动态特性支持(通过IUnknown接口),但它要求您为此定义自己的(自定义)接口,并且努力是非平凡的。

您也可以使用自定义代码库。我更喜欢这样,但这取决于你在这方面的努力以及项目所施加的其他限制(时间限制、预算等)。