使用c++在编译时操纵变量
Manipulating variables at compile time with C++
因为我失去了对c++ 11和c++ 14(我想还没有出来)变化的跟踪,我想知道在c++中是否有以下可能,或者是否有任何计划使这样的工作:我需要一种方法来查询类或函数是否使用变量。如果没有,我应该能够添加在更高范围内使用的变量(来自调用者函数或实例化该类的一些代码)。
我可以在运行时完成所有这些,但它有我无法承受的性能损失。写自己的编译器听起来很沉重。
真正问题的规范解决方案不是您以某种方式查询的变量。
我个人会使用一个模板,用户可能会或可能不会实例化。这很容易发现。这也是c++ 98、03、11和14中已经存在的机制。
请记住,在普通的c++编译模型下,您不能在编译时查询另一个函数是否将在编译时使用变量。那需要时间机器。
听起来您正在寻找一个动态框架(允许您基于RTTI从外部更改应用程序行为)。(你问的问题有点模糊)
这种行为不是c++编译器直接提供的,但可以使用现有的c++框架或自定义代码实现。
您可以使用Microsoft COM技术(在Windows下)或Mozilla XPCOM(跨平台)技术来编写应用程序,以实现动态特性支持(通过IUnknown接口),但它要求您为此定义自己的(自定义)接口,并且努力是非平凡的。
您也可以使用自定义代码库。我更喜欢这样,但这取决于你在这方面的努力以及项目所施加的其他限制(时间限制、预算等)。
相关文章:
- 如何创建一个CMake变量,除非显式重写,否则使用默认值
- 将成员变量添加到共享库中的类中,不会破坏二进制兼容性吗
- 将数组的地址分配给变量并删除
- 为"adjacent"变量赋值时出现问题
- enum是C++中的宏变量还是整数变量
- 在全局变量中保存类的实例以重新创建类(创建"backup")
- 用C++中的一个变量定义一个常量
- 具有奇怪重复模板模式的派生类中的成员变量已损坏
- 你能重载对象变量名本身返回的内容吗
- 内置函数可查看CPP中的成员变量
- 是否可以初始化不可复制类型的成员变量(或基类)
- 尝试通过多个向量访问变量时,向量下标超出范围
- 试图让变量检查数组中的某些内容
- Cpp-Tuple使用带有变量的get
- 将包含C样式数组的对象初始化为成员变量(C++)
- 当vector是tje全局变量时,c++中vector的内存管理
- 通过多个头文件使用常量变量
- std::threads可以从Windows DLL中的全局变量创建/销毁吗?
- 操纵功能变量在doxygen中
- 使用c++在编译时操纵变量