【一人 C++20 Advent Calendar 2019】実装依存の情報をまとめた <version> ヘッダーを追加【22日目】

一人 C++20 Advent Calendar 2019 22日目の記事になります。

実装依存の情報をまとめた ヘッダーを追加

実装依存の情報(実装固有のライブラリバージョンマクロなど)をまとめたヘッダーとして <version> が追加されます。
今まではライブラリごとのヘッダーをインクルードする必要がありましたが <version> をインクルードすることでライブラリ機能マクロなどをすべて使用できるようになります。

#include <version>
#include <iostream>

int
main(){
    // C++20 以前では対応するライブラリのヘッダーをインクルードする必要があった
    // C++20 では <version> をインクルードするだけですべて使用できるようになる
    std::cout << __cpp_lib_any << std::endl;
    std::cout << __cpp_lib_chrono << std::endl;
    std::cout << __cpp_lib_variant << std::endl;

    return 0;
}
/*
output:
201606
201611
201606
*/

ライブラリでワークアラウンド対応する場合に便利そう。

参照