Это слишком рано.
Пока стандарт не заменит его, используйте:
#if __cplusplus > 201703L
// C++20 code
#endif
, так как предопределенный макрос в C ++ 20 будет больше, чем макросC ++ 17.
Как отмечается в ответе @ SombreroChicken, [cpp.predefined] (1.1) указывает (выделено мной):
__cplusplus
Целочисленный литерал 201703L
.[Примечание: предполагается , что будущие версии этого международного стандарта заменят значение этого макроса на большее значение.]
Используемые макросы по состоянию на ноябрь 2018 года:
PS:Если вас интересуют конкретные функции, то [cpp.predefined] (1.8) определяет соответствующие макросы, которые вы можете использовать.Обратите внимание, что они могут измениться в будущем.