23得票3回答
编译时有一些const char*不可用?

假设我们有一个带有非类型参数const char *的模板函数,就像这样: template <const char * MESSAGE> void print() { std::cout << MESSAGE << '\n'; } 只要在编译...

22得票5回答
编译时递归是如何工作的?

我在这里找到了一段代码Printing 1 to 1000 without loop or conditionals 请问有人可以解释一下编译时递归是如何工作的吗,我在谷歌上没找到相关信息// compile time recursion template<int N> void...

22得票4回答
C#中的编译时反射

我经常编写需要使用魔法字符串来表示属性名称的C#代码。每个人都知道魔法字符串的问题。它们很难重构,没有编译时检查,并且经常导致难以诊断的问题。然而,C#/.NET却在许多地方使用它们来表示属性/类/方法名称。 这个问题已经存在多年了,目前唯一可行的解决方法是使用表达式树,然后在运行时解析属性...

21得票2回答
为什么不允许使用“constexpr”参数?

希望在IT技术中能够有“constexpr”参数,以区分编译器已知值,并能够在编译时检测错误。以下是一些例子: int do_something(constexpr int x) { static_assert(x > 0, "x must be > 0"); retur...

21得票9回答
编译时 sizeof 条件语句

我希望在满足sizeof条件时定义一个宏,如果不满足则什么也不做(但仍然编译)。如果预处理器支持sizeof,则可以像这样:#if (sizeof(void*) <= sizeof(unsigned int)) // what goes here? # define POINTER_F...

21得票1回答
在PHP中,编译时和运行时是什么意思?

PHP是一种解释型语言,而不是编译型语言。但我遇到过一本书提到PHP在编译时发生的事情,而PHP手册则说明声明const(常量)是在编译时发生的。既然PHP不是编译型语言,那么“编译时”这个术语在PHP中是如何使用的呢? 如果它只是指“当脚本被读取并翻译成解释器子程序时”,那么“编译时”和“...

21得票2回答
在编译时检查框架是否存在?

我正在开发一个开源项目,可以选择使用闭源框架。如果将闭源框架包含在项目中,则会有额外的功能。但是,如果项目中不包括该框架,则项目应仍能正常编译。 如何在编译时检查框架是否已包含在项目中? 基本上,我想要做类似这样的事情:#ifdef _MY_FRAMEWORK_EXISTS #import...

21得票2回答
在constexpr函数内进行编译时或运行时的检测

在C++11中引入了constexpr,我很兴奋,但是我对它的实用性做出了过于乐观的假设。我认为我们可以在任何地方使用constexpr来捕获字面量编译时常量或任何constexpr结果,包括像这样的内容:constexpr float MyMin(constexpr float a, con...

20得票1回答
有没有一种方法可以构建C++自定义限定符?

有没有办法实现自定义类型限定符(类似于const)?我想只允许在具有相同限定符的函数内调用相应限定符的函数。 假设我有:void allowedFunction(); void disallowedFunction(); //Only allowed to call allowed fun...

20得票6回答
在Visual C++可执行文件中输出编译时间戳?

我如何在使用Visual C++ 2005构建的可执行文件中插入编译时间戳信息? 我希望能够在执行程序时输出以下内容: 此版本 XXXX 是在 dd-mm-yy,hh:mm 编译的。 其中日期和时间反映了项目构建的时间。 它们不应该随着每次调用程序而更改,除非重新编译。