如果在编译器中内置了一个函数,有没有办法在编译时检测? 例如,这样的事情:如何检查编译器上的函数是否可用?
#ifndef ITOA_FUNCTION
#define itoa myitoaimplementation
#endif
在此先感谢。
如果在编译器中内置了一个函数,有没有办法在编译时检测? 例如,这样的事情:如何检查编译器上的函数是否可用?
#ifndef ITOA_FUNCTION
#define itoa myitoaimplementation
#endif
在此先感谢。
不,没有什么直接的。关于你能做的最好的事情是猜测来自平台,编译器版本等。
在大多数情况下,我更喜欢其他两种路线之一。一种是只给自己的实现一个与编译器不同的名称,并且无论编译器是否提供类似的东西,都要使用它。
第二是把你的喜欢这个功能实现到一个单独的文件,并处理存在/不存在makefile文件,就决定是否包含在项目或没有该文件。
我相当确定预处理器在函数存在之前运行。 – Lalaland