История изменений
Исправление dimgel, (текущая версия) :
Если я, к примеру, буду писать что-то в 100% сишном стиле, и мне потребуется полиморфизм (например, паттерн стратегия), я в гробу видал эмулировать vtable вручную.
То же касается шаблонов vs code duplication. Ковырял я однажды коллекции EFL – больше ни за какие коврижки в этот идиотизм под названием C не полезу.
Namespaces. Короткие префиксы всего, что библиотека экспортирует, – это возможно и решение для времён, когда этих библиотек было полторы штуки. А нынче рулят reverse DNS. И кстати, объектная запись obj.f(x) лучше чем obj_f(obj, x) в т.ч. логической группировкой связанных вещей, даже не будь там virtual и private/protected.
Exceptions. Написать короткий читабельный green path и поймать ошибку в точке входа – или на каждую строчку логики минимум три строчки обработки ошибок. Сишный вариант нечитабелен.
Ну а из exceptions следует RAII. Хотя finally мне категорически не хватает, т.к. далеко не всякий cleanup – освобождение ресурса. Александреску юзает самодельный макрос, а этим сраным «концептуалистам» в комитете видите ли поперёк горла приятную мелочь для людей сделать. Боятся нагружать свой такой простой и интуитивно понятный каждому язычок всякой хернёй.
А вот RTTI в 99.9999% случаев нахрен не нужен, и за dynamic_cast надо бить.
Короче, фичи C++ юзать надо там, где при их отсутствии их придётся многословно, коряво и неэффективно эмулировать на C.
Исправление dimgel, :
Если я, к примеру, буду писать что-то в 100% сишном стиле, и мне потребуется полиморфизм (например, паттерн стратегия), я в гробу видал эмулировать vtable вручную.
То же касается шаблонов vs code duplication. Ковырял я однажды коллекции EFL – больше ни за какие коврижки в этот идиотизм под названием C не полезу.
Namespaces. Короткие префиксы всего, что библиотека экспортирует, – это возможно и решение для времён, когда этих библиотек было полторы штуки. А нынче рулят reverse DNS. И кстати, объектная запись obj.f(x) лучше чем obj_f(obj, x) в т.ч. логической группировкой связанных вещей, даже не будь там virtual и private/protected.
Exceptions. Написать короткий читабельный green path и поймать ошибку в точке входа – или на каждую строчку логики минимум три строчки обработки ошибок. Сишный вариант нечитабелен.
Ну а из exceptions следует RAII. Хотя finally мне категорически не хватает, т.к. далеко не всякий cleanup – освобождение ресурса. Александреску юзает самодельный макрос, а этим сраным «концептуалистам» в комитете видите ли поперёк горла приятную мелочь для людей сделать. Боятся нагружать свой такой простой и интуитивно понятный каждому язычок всякой хернёй.
И далее по списку. Только RTTI в 99.999999% случаев нахрен не нужен, и за dynamic_cast надо бить.
Короче, фичи C++ юзать надо там, где при их отсутствии их придётся многословно, коряво и неэффективно эмулировать на C.
Исправление dimgel, :
Если я, к примеру, буду писать что-то в 100% сишном стиле, и мне потребуется полиморфизм (например, паттерн стратегия), я в гробу видал эмулировать vtable вручную.
То же касается шаблонов vs code duplication. Ковырял я однажды коллекции EFL – больше ни за какие коврижки в этот идиотизм под названием C не полезу.
Namespaces. Короткие префиксы всего, что библиотека экспортирует, – это возможно и решение для времён, когда этих библиотек было полторы штуки. А нынче рулят reverse DNS.
Кстати, объектная запись obj.f(x) лучше чем obj_f(obj, x) в т.ч. логической группировкой связанных вещей, даже не будь там virtual и private/protected.
Exceptions. Написать короткий читабельный green path и поймать ошибку в точке входа – или на каждую строчку логики минимум три строчки обработки ошибок. Сишный вариант нечитабелен.
Ну а из exceptions следует RAII. Хотя finally мне категорически не хватает, т.к. далеко не всякий cleanup – освобождение ресурса. Александреску юзает самодельный макрос, а этим сраным «концептуалистам» в комитете видите ли поперёк горла приятную мелочь для людей сделать. Боятся нагружать свой такой простой и интуитивно понятный каждому язычок всякой хернёй.
И далее по списку. Только RTTI в 99.999999% случаев нахрен не нужен, и за dynamic_cast надо бить.
Короче, фичи C++ юзать надо там, где при их отсутствии их придётся многословно, коряво и неэффективно эмулировать на C.
Исправление dimgel, :
Если я, к примеру, буду писать что-то в 100% сишном стиле, и мне потребуется полиморфизм (например, паттерн стратегия), я в гробу видал эмулировать vtable вручную.
То же касается шаблонов vs code duplication. Ковырял я однажды коллекцие EFL – больше ни за какие коврижки в этот идиотизм под названием C не полезу.
Namespaces. Короткие префиксы всего, что библиотека экспортирует, – это возможно и решение для времён, когда этих библиотек было полторы штуки. А нынче рулят reverse DNS.
Кстати, объектная запись obj.f(x) лучше чем obj_f(obj, x) в т.ч. логической группировкой связанных вещей, даже не будь там virtual и private/protected.
Exceptions. Написать короткий читабельный green path и поймать ошибку в точке входа – или на каждую строчку логики минимум три строчки обработки ошибок. Сишный вариант нечитабелен.
Ну а из exceptions следует RAII. Хотя finally мне категорически не хватает, т.к. далеко не всякий cleanup – освобождение ресурса. Александреску юзает самодельный макрос, а этим сраным «концептуалистам» в комитете видите ли поперёк горла приятную мелочь для людей сделать. Боятся нагружать свой такой простой и интуитивно понятный каждому язычок всякой хернёй.
И далее по списку. Только RTTI в 99.999999% случаев нахрен не нужен, и за dynamic_cast надо бить.
Короче, фичи C++ юзать надо там, где при их отсутствии их придётся многословно, коряво и неэффективно эмулировать на C.
Исходная версия dimgel, :
Если я, к примеру, буду писать что-то в 100% сишном стиле, и мне потребуется полиморфизм (например, паттерн стратегия), я в гробу видал эмулировать vtable вручную.
То же касается шаблонов vs code duplication. Ковырял я однажды коллекцие EFL – больше ни за какие коврижки в этот идиотизм под названием C не полезу.
Namespaces. Короткие префиксы всего, что библиотека экспортирует, – это возможно и решение для времён, когда этих библиотек было полторы штуки. А нынче рулят reverse DNS.
Кстати, объектная запись obj.f(x) лучше чем obj_f(obj, x) в т.ч. логической группировкой связанных вещей, даже не будь там virtual и private/protected.
Exceptions. Написать короткий читабельный green path и поймать ошибку в точке входа – или на каждую строчку логики минимум три строчки обработки ошибок. Сишный вариант нечитабелен.
Ну а из exceptions следует RAII. Хотя finally мне категорически не хватает, т.к. далеко не всякий cleanup – освобождение ресурса. Александреску юзает самодельный макрос, а этим сраным «концептуалистам» в комитете видите ли поперёк горла приятную мелочь для людей сделать. Боятся нагружать свой такой простой и интуитивно понятный каждому язычок всякой хернёй.
И далее по списку. Только RTTI в 99.999999% случаев нахрен не нужен, и за dynamic_cast надо бить.