История изменений
Исправление www_linux_org_ru, (текущая версия) :
Если компилятор постоянно ругался бы, то получилось бы такое количество ругани в смешанных (C + С++) проектах, что просто на предупреждения перестали бы обращать внимание.
не думаю
если было бы можно компилировать сишные файлы компилятором си, а плюсовые — компилятором с++, и затем линковать, то все было бы ок
некоторая проблема была бы, если бы в си надо было писать
network_result_t r = do_something(....);
if( !r ){
printf("all ok\n");
а в с++ можно было бы написать
#pragma convert_enum_0_to_bool_true
...
...
...
...
network_result_t r = do_something(....);
if( r ){
printf("all ok\n");
и это только в том случае, когда код тупо копипастился из си, а не транслировался из си в с++ — в случае копипаста он мог бы втихую приобрести баги
короче, идея *синтаксической* совместимости со старьем — ужасна
Исправление www_linux_org_ru, :
Если компилятор постоянно ругался бы, то получилось бы такое количество ругани в смешанных (C + С++) проектах, что просто на предупреждения перестали бы обращать внимание.
не думаю
если было бы можно компилировать сишные файлы компилятором си, а плюсовые — компилятором с++, и затем линковать, то все было бы ок
некоторая проблема была бы, если бы в си надо было писать
network_result_t r = do_something(....);
if( !r ){
printf("all ok\n");
а в с++ можно было бы написать
#pragma convert_enum_0_to_bool_true
...
...
...
...
network_result_t r = do_something(....);
if( r ){
printf("all ok\n");
и это только в том случае, когда код тупо копипастился из си, а не транслировался из си в с++ — в этом случае он мог бы втихую приобрести баги
короче, идея *синтаксической* совместимости со старьем — ужасна
Исправление www_linux_org_ru, :
Если компилятор постоянно ругался бы, то получилось бы такое количество ругани в смешанных (C + С++) проектах, что просто на предупреждения перестали бы обращать внимание.
не думаю
если было бы можно компилировать сишные файлы компилятором си, а плюсовые — компилятором с++, и затем линковать, то все было бы ок
некоторая проблема была бы, если бы в си надо было писать
network_result_t r = do_something(....);
if( !r ){
printf("all ok\n");
а в с++ можно было бы написать
#pragma convert_enum_0_to_bool_true
...
...
...
...
network_result_t r = do_something(....);
if( r ){
printf("all ok\n");
и это только в том случае, когда код тупо копипастился из си, а не транслировался из си в с++
короче, идея *синтаксической* совместимости со старьем — ужасна
Исправление www_linux_org_ru, :
Если компилятор постоянно ругался бы, то получилось бы такое количество ругани в смешанных (C + С++) проектах, что просто на предупреждения перестали бы обращать внимание.
не думаю
если было бы можно компилировать сишные файлы компилятором си, а плюсовые — компилятором с++, и затем линковать, то все было бы ок
некоторая проблема была бы, если бы в си надо было писать
network_result_t r = do_something(....);
if( !r ){
printf("all ok\n");
а в с++ можно было бы написать
network_result_t r = do_something(....);
if( r ){
printf("all ok\n");
и это только в том случае, если бы код тупо копипастился из си, а не транслировался из си в с++
короче, идея *синтаксической* совместимости со старьем — ужасна; совместимость должна быть по семантике — например, по модели памяти
Исходная версия www_linux_org_ru, :
Если компилятор постоянно ругался бы, то получилось бы такое количество ругани в смешанных (C + С++) проектах, что просто на предупреждения перестали бы обращать внимание.
не думаю
если было бы можно компилировать сишные файлы компилятором си, а плюсовые — компилятором с++, и затем линковать, то все было бы ок
некоторая проблема была бы, если бы в си надо было писать
network_result_t r = do_something(....);
if( !r ){
printf("all ok\n");
а в с++ можно было бы написать
network_result_t r = do_something(....);
if( r ){
printf("all ok\n");
и это только в том случае, когда код тупо копипастился из си, а не транслировался из си в с++
короче, идея *синтаксической* совместимости со старьем — ужасна