Проблема устаревшего кода C++0x
Как все вы знаете, C++0x не может принести много важных изменений из-за унаследованного кода: весь унаследованный код (включая код C) можно скомпилировать с помощью компилятора C++ 0x.
Так почему бы не добавить что-то вроде #pragma syntax(language_version)
, который позволит новый синтаксис с критическими изменениями?
#include <legacy_code_header.h>
#pragma syntax(2098)
// something strange
func(x)
{
return x + 1, x * 2;
}
int main()
{
a, b = func(1.0);
return a + b;
}
1 ответ
Некоторые компиляторы C++0x могут это позволить. В конце концов, #pragmas обычно зависят от компилятора и не определяются стандартом. Другие поддерживают это с помощью параметров командной строки.