问题标签 [preprocessor-directive]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
5656 浏览

c++ - 我如何知道我的编译器是否支持 XXXX C++11 功能?

可能重复:
如何检查 C++11 支持?

我正在编写一个小型库,并且只要编译器支持它们,我就想使用类枚举。我还想使用其他 C++11 功能,例如finaloverride关键字。

到目前为止,我已经使用技巧来确保它可以在所有版本的 GCC 上编译,但是当我启动我的 Windows 分区时,Visual Studio 2010 也开始抱怨。这是我使用的技巧的一个示例:

我知道最新版本的 Visual Studio 也已经支持了一批新功能。我想要的是一组宏,它告诉我正在使用的编译器上有哪些功能可用。

这存在吗?有没有这样做的图书馆?


编译器的文档?

让我澄清一下。我知道如何找到这些信息,我的问题在别处。我不想通过所有可能的编译器文档来收集这些信息,特别是因为同一个编译器可能支持与其版本相关的不同功能。这就是我迄今为止一直在做的事情,而我正在寻找的实际上是一种不这样做的方法。

0 投票
2 回答
10889 浏览

c++ - 是否有任何控制循环展开的预处理器指令?

此外,假设循环中的所有操作完全独立于其他迭代,编译器如何确定展开循环的程度。

0 投票
2 回答
2830 浏览

c - 使用预处理器指令在 C 中定义泛型函数

我刚从 C# 来到 C,并正在寻找一种方法来定义像 C# 中的泛型函数。我遇到了这篇文章,但是当我试图编译它时,我得到了一堆错误(“`n' undeclared here (not in a function)”、“在“array”之前的语法错误”等)这是我的代码:

我在这里做错了什么?如果这有所作为,我正在使用 DevC++。

0 投票
1 回答
132 浏览

objective-c - #else 正文中没有自动完成选项

在我班的顶部,我定义了一个标志:

然后稍后在我的一个方法中,我声明了一个 staticint和一个float. 然后我想检查是否CarsRandom已定义并采取相应措施:

问题在于,在该#else部分中,在方法开头声明的变量无法通过自动完成访问。虽然我可以成功构建项目,但我想知道为什么甚至NSLog()没有出现在自动完成列表中。

0 投票
2 回答
1013 浏览

monodevelop - Monodevelop 将 #if 和 #endif 之间的所有内容标记为 C# 文件中的注释

我正在使用与 Unity 游戏引擎捆绑的 MonoDevelop 版本。我以前从未在 C# 中使用过#if/#endif,所以我从未注意到这一点。我在一个新的空文件上检查了这个。我该如何解决?

0 投票
3 回答
369 浏览

linux - 预处理器指令返回值

我想接收我定义的变量的输出值check
是否#define check something 可以使用某些预处理器指令接收此值?
例如这样的:
#error check

0 投票
1 回答
484 浏览

xcode - #define 在目标构建设置的“用户定义”部分,在 xcode 编译代码时未定义

我有一个项目,使用当前版本的Xcodellvm
我正在做一个免费和付费版本的游戏,所以我设置了一个预处理器标志来做它。

对于我定义的付费版本目标PAID_VERSION = 1 (在Build Settings的“ User-Defined ”部分)

然而,当我编译时,PAID_VERSION不断出现未定义的问题。
所以我的#ifndef#ifdef指令构建了应用程序的免费版本。

我环顾了Stack OverflowGoogle,并没有发现关于这里发生了什么的提示。

0 投票
3 回答
6056 浏览

c# - C# 有预定义的符号吗?

在 C++ 中,我有这个: http: //msdn.microsoft.com/en-us/library/b0084kay (v=vs.80).aspx 。

所以我可以编写只在调试时运行的代码,或者只在特定平台(PowerPC、MIPS、Power Macintosh 等)运行的代码。它不再受支持,但它是一个很好的例子。您也可以在 32 位和 64 位系统之间切换(当然,这仅在您发布 2 个不同的版本时才有用,每个版本都有自己的处理器架构。在 C# 中这是一个罕见的需求,但它仍然存在)。

所以我的问题是C#中是否存在类似的东西。我意识到没有宏,但是有符号(即使使用相同的#define关键字。所以它应该存在 - 至少对我来说是有道理的。

0 投票
1 回答
210 浏览

c# - 用于分发的 Monotouch 条件编译

我知道您可以包含指令以根据您是处于调试模式还是发布模式来编译和运行不同的代码。当您构建项目以进行分发时,您可以做同样的事情吗?

我问是因为我刚刚提交并批准了一个应用程序更新,它指向我们测试服务器上的 Web 服务,而不是实时!

0 投票
1 回答
238 浏览

c++ - 使用预处理器指令进行测试单元的相关性

我正在使用 Boost 单元测试BOOST_AUTO_TEST_CASE 它需要删除main()函数来执行测试用例。问题是应该使用哪些指令在 Normal/UnitTest 模式之间切换?我有适用于 Windows 和 Unix 的跨平台应用程序。

我只有一个建议:使用类似#ifndef TESTINGinmain.cpp并使用手动更改#define TESTING线?

有没有更好的解决方案?

谢谢