Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Причина — отсутствие наперед определенного стабильного ABI у std::string.
данные можно объявить отдельным классом без реализации в заголовочном файле и вынести его целиком в .cpp-файл с реализацией методов
в большинстве случаев 99% времени съедают сетевое взаимодействие (с той же БД или удалёнными серверами с бизнес-логикой по RPC) либо какие-нибудь адовые алгоритмы коллег по цеху, то зачем вы вообще на C++ пишете? Чтоб помучаться?
народ уже пишет прогу на Java, Python и т.д, но часть пишется на плюсах. Стоит ли оно того?
выкинули из употребления сырые указатели
перешли на shared_ptr
children_.do_something() для меня куда более интуитивно понятна чем data_.children_.do_something() Ну статья от 99-го года, а CoW жив и по сей день.CoW жив и по сей день потому что совместимость. C++11-совместимая версия была добавлена в GCC восемь лет назад, но стандартизация несколько затянулась и потому «большой слом» всё ещё не случился.
Есть всевозможные оптимизации строк, именно по причине дорогого копирования, но как раз в данном случае мы получим проседание по производительности при честном копировании строк.Прогоните ваши тесты, очень может быть, что и в вашем случае (как и у нас) CoW версия будет медленнее. Часто — заметно медленнее.
(потому что счётчики ссылок должны быть синхронизированы).
О бедном C++ API замолвите словцо!