【发布时间】:2012-06-12 19:59:06
【问题描述】:
我想要的是一个构建配置,其中函数不内联,除了一些选定的函数(可能内联也可能不内联,这将是由编译器决定)。
更好的是某种“内联级别”,我可以为每个函数指定这样的级别,加上构建时的最低级别,并且只有高于最低级别的函数才允许内联。我知道这没有标准的解决方案,但编译器特定的黑客同样受欢迎。
我希望能够在调试器中单步执行我的大多数非内联函数,但是应该内联其中的一些函数,部分原因是出于性能原因,部分原因是为了避免疯狂的深度调用堆栈。该代码涉及一些非常讨厌的模板元编程,但这部分已经完成,所以我想专注于其余部分。因此,最好将属于模板元程序的函数内联,而不是其他内联函数。
有没有办法实现这样的目标?
【问题讨论】:
-
您可以使用预处理器宏,但您所描述的内容无法在运行时控制。
-
这同样适用于模板。这也是在编译时修复的。
-
感谢您的回复。我不想在运行时控制它。但是,我不确定您的意思,我将如何在这里使用宏?而不是内联函数?我想避免的。能够使用内联的所有内容(标准调试构建)或仅使用某些功能进行构建会很好;由编译器开关或类似的东西控制。