Проблема устаревшего кода 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 обычно зависят от компилятора и не определяются стандартом. Другие поддерживают это с помощью параметров командной строки.

Другие вопросы по тегам