因为我现在做的专案希望可以在不同编译器和IDE之间 (e.g. bcb, vc++, qt, gcc or cl
ang) 共用程式码,所以要做一个桥接的程式,把差异的地方统一1个对外接口。需要透过
一些宏来判断环境。
其实毛最多的就字串处理函数而已。但我发现C++ Builder (以下简称BCB)
在32字节态下的支援性不是很好判断。公司用的版本是XE7。
它的__cplusplus是1,但是它却有define __STDC_LIB_EXT__ ,
所以它有一些 _s结尾的函数可以用。
但也不是每个_s 函数它都有支援,像是宽字串互转的mbstowcs_s和wcstombs_s就没有。
所以也不能用__STDC_LIB_EXT__或__plusplus来概括说有无支援_s函数
必须额外针对if defined(__BORLANDC__)来处理。
另外,像是vswprintf 在别的编译器都是4个参数,但BCB是3个(少了数量那一个)
这也要另外判别是不是BCB
会不会是BCB 32位元的tool chian比较没办法用通用的macro来判断其支援性?
(也许规格上没完全支援到C++11,但是有implement了部份函数来相容之类的?)