Checking for availability of C++0x algorithm additions

前端 未结 2 725
后悔当初
后悔当初 2021-01-06 21:12

I\'m trying to figure out which of the additions to the algorithm headers are supported by a given implementation (gcc and MSVC would be enough).

The simple way woul

相关标签:
2条回答
  • 2021-01-06 21:25

    Since all compiler vendors provide a nice list of what's available in what version, and you would test the functionality anyways, I would use compiler versions to check for specific features. Or demand the user uses at least a good version, and not worry about it.

    __cplusplus is not necessarily a C++0x macro, it tells you nothing. GXX_EXPERIMENTAL has existed since GCC 4.3, so that's pretty useless too.

    • This one is for GCC.

    • This one is for MSVC. (mind you: partially implemented means broken)

    • This one is for Intel.

    Here you can find what macros to check against for a specific version of a compiler.

    0 讨论(0)
  • 2021-01-06 21:36

    As far as I could figure out the only proper solution is to have a build script that tries to compile and run a file that uses the feature and has a runtime assertion. Depending on the outcome have a #define CONFIG_NO_FEATURENAME or similiar in a config file and guard your uses and workaround with a #ifndef.

    This way it is possible to check if

    1. the feature is available
    2. the feature functions properly (depending on the correctness of the assertion)
    0 讨论(0)
提交回复
热议问题