Ожидается, что это будет слишком конкретный вопрос. Это, вероятно, потому, что мне не хватает базовых знаний, которые я не могу найти по поиску. Не стесняйтесь отвечать на более общую версию вопроса, если это имеет смысл.
Учитывая некоторый код на С++, я хотел бы узнать, соответствует ли (и затем как) его версия стандартных стандартов, а его версия стандартов C (если есть) коррелирует.
Я подтвердил, что этот тестовый код
#include <cstdio>
int main(void)
{
printf("%ld\n", _POSIX_C_SOURCE);
return 0;
}
печатает "200809" при компиляции с любым из "g++ -std = С++ 98", "g++ -std = С++ 11", "clang++ -std = С++ 98", "clang++ -std = С++ 11".
(Когда я компилирую C с любой версией явных стандартов, макрос _POSIX_C_SOURCE вообще не определен).
Почему? Что совсем не имеет смысла, так это то, что компиляция С++ 98-эффектов в _POSIX_C_SOURCE составляет 200809 (то есть через 10 лет).