История изменений
Исправление eao197, (текущая версия) :
Речь идет о модуле для ALSA, чем мне еще ограничивать этот разговор?
Речь идет о том, что Erlang+C — это реальная альтернатива C++.
В качестве подкрепления этого тезиса вы приводите C-шный код. В котором вам указывают на ваши ошибки.
В оправдание вы начинаете говорить, что в вашем конкретном случае это не проблема.
Ну OK, за свою жизнь я столько наслушался этих самых «в моем конкретном случае», что уже не воспринимаю их всерьез. Посему вы просто в очередной раз продемонстрировали, что как только речь идет о C-шном коде, так все оказывается работоспособным в очень узком диапазоне ограничений.
Вот точно так же и ваш совет «Erlang+C» можно всерьез воспринимать только если очень и очень сильно ограничить контекст.
Разве это не валидный C++ код?
В нем есть синтаксические ошибки. Причем, судя по тому, что ошибка в декларации метода класса у вас повторяется несколько раз, вы C++ не видели очень давно.
Про то что с С++11 это deprecated я знаю.
Обсуждаемый здесь SO5 требует C++11, под C++03 он не собирается.
Ну и вообще, что за экивоки. Вот пример кода когда эксепшен на верхнем уровне не поймать. Либа чужая и сорцев у вас нет.
Это просто вы не понимаете, как писать на C++ не заморачиваясь на типы выбрасываемых исключений. Ключевые слова вам обозначили — exception safety. Если ваш код обеспечивает exception safety хотя бы на уровне basic guarantee, то вам без разницы, бросается ли bad_alloc, bad_cast, bad_exception, invalid_argument или еще что-то. Поэтому вы имеете возможность просто писать new или make_unique, или make_shared и не заморачиваться на проверки кодов возврата (*).
А вот в C не так, результат malloc-а нужно контролировать, если речь идет о хоть сколько-нибудь кроссплатформенном коде. И если вы приводите пример кода в котором таких проверок нет, то не удивляйтесь, что ваш код хорошим не называют.
* если только речь не идет о специфических условиях, в которых C++ные исключения запрещены ключиками компилятора, например, жесткий real-time.
Исходная версия eao197, :
Речь идет о модуле для ALSA, чем мне еще ограничивать этот разговор?
Речь идет о том, что Erlang+C — это реальная альтернатива C++.
В качестве подкрепления этого тезиса вы приводите C-шный код. В котором вам указывают на ваши ошибки.
В качестве оправдания вы начинаете говорить, что в вашем конкретном случае это не проблема.
Ну OK, за свою жизнь я столько наслушался этих самых «в моем конкретном случае», что уже не воспринимаю их всерьез. Посему вы просто в очередной раз продемонстрировали, что как только речь идет о C-шном коде, так все оказывается работоспособным в очень узком диапазоне ограничений.
Вот точно так же и ваш совет «Erlang+C» можно всерьез воспринимать только если очень и очень сильно ограничить контекст.
Разве это не валидный C++ код?
В нем есть синтаксические ошибки. Причем, судя по тому, что ошибка в декларации метода класса у вас повторяется несколько раз, вы C++ не видели очень давно.
Про то что с С++11 это deprecated я знаю.
Обсуждаемый здесь SO5 требует C++11, под C++03 он не собирается.
Ну и вообще, что за экивоки. Вот пример кода когда эксепшен на верхнем уровне не поймать. Либа чужая и сорцев у вас нет.
Это просто вы не понимаете, как писать на C++ не заморачиваясь на типы выбрасываемых исключений. Ключевые слова вам обозначили — exception safety. Если ваш код обеспечивает exception safety хотя бы на уровне basic guarantee, то вам без разницы, бросается ли bad_alloc, bad_cast, bad_exception, invalid_argument или еще что-то. Поэтому вы имеете возможность просто писать new или make_unique, или make_shared и не заморачиваться на проверки кодов возврата (*).
А вот в C не так, результат malloc-а нужно контролировать, если речь идет о хоть сколько-нибудь кроссплатформенном коде. И если вы приводите пример кода в котором это не так, то не удивляйтесь, что ваш код хорошим не называют.
* если только речь не идет о специфических условиях, в которых C++ные исключения запрещены ключиками компилятора, например, жесткий real-time.