LINUX.ORG.RU

История изменений

Исправление monk, (текущая версия) :

Ну и опять-же, скорее всего еще компилятор C# еще на этапе компиляции исходников, задолго до JIT, вырежет мертвые ветки кода.

Я не понял. То есть если я напишу

if (0) {
   no_such_type x;
   undefined_function(x);
}

То это скомпилируется?

Всякие Скотты Майерсы и прочие давно даже для C/C++ советуют использовать if вместо #ifdef, т.к. с ним проблем меньше. Единственное удобство в #ifdef в случае C/C++ - это то, что можно макросы через -D в командной строке задать.

На C++

$ g++ test.cpp
test.cpp: In function ‘int main()’:
test.cpp:4:8: error: ‘no_such_type’ was not declared in this scope
test.cpp:4:21: error: expected ‘;’ before ‘x’
test.cpp:5:27: error: ‘x’ was not declared in this scope
test.cpp:5:28: error: ‘undefined_function’ was not declared in this scope

Исходная версия monk, :

Ну и опять-же, скорее всего еще компилятор C# еще на этапе компиляции исходников, задолго до JIT, вырежет мертвые ветки кода.

Я не понял. То есть если я напишу

if (0) {
   no_such_type x;
   undefined_function(x);
}

То это скомпилируется?

На C++

$ g++ test.cpp
test.cpp: In function ‘int main()’:
test.cpp:4:8: error: ‘no_such_type’ was not declared in this scope
test.cpp:4:21: error: expected ‘;’ before ‘x’
test.cpp:5:27: error: ‘x’ was not declared in this scope
test.cpp:5:28: error: ‘undefined_function’ was not declared in this scope