2012-07-01 43 views
0

如果在编译器中内置了一个函数,有没有办法在编译时检测? 例如,这样的事情:如何检查编译器上的函数是否可用?

#ifndef ITOA_FUNCTION 
#define itoa myitoaimplementation 
#endif 

在此先感谢。

+0

我相当确定预处理器在函数存在之前运行。 – Lalaland

回答

2

不,没有什么直接的。关于你能做的最好的事情是猜测来自平台,编译器版本等。

在大多数情况下,我更喜欢其他两种路线之一。一种是只给自己的实现一个与编译器不同的名称,并且无论编译器是否提供类似的东西,都要使用它。

第二是把你的喜欢这个功能实现到一个单独的文件,并处理存在/不存在makefile文件,就决定是否包含在项目或没有该文件。

+0

我评论了你的答案[这里](http://stackoverflow.com/a/3408317/415784)。我想知道你的意见。 – Nawaz

+1

@Nawaz:是的 - 我真的需要完全重写那个答案。其中一些我没有仔细阅读代码,并且在一些地方我引入了不准确性,试图避免它变得太复杂。我考虑的越多,我认为分析现有代码的可能性就越大 - 我应该专门编写一些代码来演示我想要创建的点。 –

+0

感谢您的回复。 :-) – Nawaz

相关问题