Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在编译时使用C++; P>因为我对C++ 11和C++ 14(没有我想)的变化已经失去了跟踪,我想知道C++中是否有可能,或者是否有任何计划使这类事情有效:我需要一种方法来查询类或函数,不管它使用变量还是不使用变量。如果没有,我应该能够添加一个在更高范围内使用的变量(来自调用方函数或实例化该类的某些代码)_C++_Variables_C++11 - Fatal编程技术网

在编译时使用C++; P>因为我对C++ 11和C++ 14(没有我想)的变化已经失去了跟踪,我想知道C++中是否有可能,或者是否有任何计划使这类事情有效:我需要一种方法来查询类或函数,不管它使用变量还是不使用变量。如果没有,我应该能够添加一个在更高范围内使用的变量(来自调用方函数或实例化该类的某些代码)

在编译时使用C++; P>因为我对C++ 11和C++ 14(没有我想)的变化已经失去了跟踪,我想知道C++中是否有可能,或者是否有任何计划使这类事情有效:我需要一种方法来查询类或函数,不管它使用变量还是不使用变量。如果没有,我应该能够添加一个在更高范围内使用的变量(来自调用方函数或实例化该类的某些代码),c++,variables,c++11,C++,Variables,C++11,我可以在运行时完成所有这一切,但它有一个我负担不起的性能损失。编写自己的编译器听起来很繁重。这听起来像是在寻找一个动态框架(允许您基于RTTI从外部更改应用程序行为)。(你问的确实有点含糊) 这种行为不是由C++编译器直接提供的,而是可以使用现有的C++框架或自定义代码实现的。 您可以使用Microsoft COM技术(在Windows下)或Mozilla XPCOM(跨平台)技术(通过IUnknown接口)编写应用程序,以实现动态功能支持,但这需要您为此定义自己的(自定义)接口,而且所做的工作

我可以在运行时完成所有这一切,但它有一个我负担不起的性能损失。编写自己的编译器听起来很繁重。

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

这种行为不是由C++编译器直接提供的,而是可以使用现有的C++框架或自定义代码实现的。 您可以使用Microsoft COM技术(在Windows下)或Mozilla XPCOM(跨平台)技术(通过IUnknown接口)编写应用程序,以实现动态功能支持,但这需要您为此定义自己的(自定义)接口,而且所做的工作非常重要


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

你真正问题的规范解决方案不是你以某种方式质疑的变量

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


<>请记住,在普通C++编译模型下,在<>强> > <强>编译时,不能查询是否有其他函数<强>遗嘱>强>在编译时使用变量。这需要一台时间机器。

简而言之:不,这是不可用的。如果您解释一下为什么要这样做,可能会很有用,因为我们可以提供其他解决方案。我想编写自己的框架,用户可以在其中提供程序(不管是什么,函数、类……)我根据我的框架的算法安排/调用/修改这些。目的是更好地安排/安排/管理资源。请定义“类或函数使用变量”。当然,这背后有你的动机,因此我们了解你想要实现的目标,以及你希望实现的目标。创建一个库,让他们链接并定义你自己的接口,让他们从中派生,这是你将得到的最接近的结果(如果我正确理解了这个问题)。除非你使用某种宏魔法……我很好奇,你能扩展一下这个模板实例化机制吗?你是说在用户代码中使用一个可能被实例化或不作为变量的模板还是什么?@DavidKernin:Yup,库定义了一个
模板类Foo
,用户定义了一个变量,在执行此操作时实例化
Foo
。显然,您无法在编译时确定是否有任何函数使用特定的
int
。只有链接器知道。