Modern C++

User avatar
M. Ridcully
Уже с Приветом
Posts: 11999
Joined: 08 Sep 2006 20:07
Location: Силиконка

Modern C++

Post by M. Ridcully »

Интересно, насколько широко компании используют последние фичи C++11/14/17?

Иногда в свободное время почитываю, и противоречивые мысли приходят в голову - от "наконец-то можно писать переносимый, быстрый и безопасный код" до "когда-же наконец этот монстр сдохнет под собственным весом".
Мир Украине. Свободу России.
User avatar
DVK
Уже с Приветом
Posts: 2225
Joined: 15 Aug 2003 15:02

Re: Modern C++

Post by DVK »

C++11/14 довольно-таки широко
"Главная проблема цитат в сети Интернет в том, что люди сразу верят в их подлинность" В.И.Ленин
User avatar
AndreyT
Уже с Приветом
Posts: 2997
Joined: 14 Apr 2004 01:11
Location: SFBA (было: Минск, Беларусь)

Re: Modern C++

Post by AndreyT »

M. Ridcully wrote:Интересно, насколько широко компании используют последние фичи C++11/14/17?
Широко, правда беспорядочно и без понимания, какие и этих фич C++11, какие С++14 и какие C++17. Как раньше была манера писать "программы на C++", как на эдаком "С с классами и cout", так и сейчас пишут на "С с классами и cout, лямбдами, std::function и auto".
Best regards,
Андрей
User avatar
Prosche
Уже с Приветом
Posts: 7956
Joined: 08 Nov 2004 12:24
Location: GA

Re: Modern C++

Post by Prosche »

Пытаемся использовать, но у нас эмбедед, то компилятор не позволяет, то кастомер требует полной совместимости с какой нибудь визуал студио 2010. Со скрипом в общем.
User avatar
Medium-rare
Уже с Приветом
Posts: 9194
Joined: 04 Mar 2011 03:04
Location: SFBA

Re: Modern C++

Post by Medium-rare »

Очень съедобны лямбды. Использую в "современном синтаксисе" для подключения сигнала в Qt.
Очень к месту ключевое слово override. Используем обязательно для достоверной перегрузки виртуальной функции.
Очень полезны = delete для исключения дефолтных конструкторов, для примера.
Классные просто инициализаторы в теле класса: int m_counter{ 0 };
Классные инициализаторы в целом, особенно, для контейнеров.
Классные std::move и && в параметрах.
Шаблон std::function<> есть находка.
Новый цикл for для итерации коллекций.
auto, auto&, const auto&, когда ломает рисовать сложный 'промежуточный' тип.

Перечислять ещё можно. Пока всё, что выше, из 11-го стандарта. Сдерживает совместимость со старым кодом, слегка. В основном, со стилем его, что раз инициализаторы тут уже в конструкторе, то так и будем их добавлять.
... and even then it's rare that you'll be going there...
User avatar
roadman
Уже с Приветом
Posts: 707
Joined: 12 Mar 2003 22:29
Location: Moscow->Bay Area, CA

Re: Modern C++

Post by roadman »

по мере популярности:
auto
[]() {...}
for (const auto& x: container)
make_unique
make_shared
using Z = W<x,y>;
initialization lists
variadic templates
enum class Blah
= delete
static_assert
decltype

как все новое, молодежь начинает использовать, где надо и не надо. Думают, что от этого код будет лучше сам по себе. :ROFL:
The philosophy of one century is the common sense of the next. --Henry Ward Beecher
alex_127
Уже с Приветом
Posts: 7723
Joined: 29 Mar 2000 10:01
Location: Kirkland,WA

Re: Modern C++

Post by alex_127 »

M. Ridcully wrote:Интересно, насколько широко компании используют последние фичи C++11/14/17?
Выжег каленым железом unique_ptr. Это же надо было так людей не любить... А часть буста теперь просто как "оно есть но как оно работает вы сами смотрите". например часть Asio пришлось переписать потому что лок на локе сидит. А вещи типа boost context они вроде есть но есть нюанс...
User avatar
M. Ridcully
Уже с Приветом
Posts: 11999
Joined: 08 Sep 2006 20:07
Location: Силиконка

Re: Modern C++

Post by M. Ridcully »

alex_127 wrote: Выжег каленым железом unique_ptr.
Очень интересно. Обосновать сможете?
Я вот, наоборот, shared_ptr как-то не очень. Не религиозно, но просто люблю дизайн, когда есть один "владелец" и время жизни чётко определено.

Я даже ещё добавлю. Пока сам на всякие там rvalue references & moves немного с недоверием смотрю, и только unique_ptr считаю самым главным (единственным?) серьёзным их оправданием.
Мир Украине. Свободу России.
alex_127
Уже с Приветом
Posts: 7723
Joined: 29 Mar 2000 10:01
Location: Kirkland,WA

Re: Modern C++

Post by alex_127 »

M. Ridcully wrote:
alex_127 wrote: Выжег каленым железом unique_ptr.
Очень интересно. Обосновать сможете?
Я вот, наоборот, shared_ptr как-то не очень. Не религиозно, но просто люблю дизайн, когда есть один "владелец" и время жизни чётко определено.

Я даже ещё добавлю. Пока сам на всякие там rvalue references & moves немного с недоверием смотрю, и только unique_ptr считаю самым главным (единственным?) серьёзным их оправданием.
Все рога росли из non-copy которое из коробки не работает с контейами, к примеру http://stackoverflow.com/questions/2105 ... ile-in-map" onclick="window.open(this.href);return false;
А мне деньги платят не за mental gymnastics.
Shared is overrated (слишком легко сделать приложение которое тормозит из-за постоянного добавим /уберем/ wrap.)
Alexandr
Уже с Приветом
Posts: 3647
Joined: 23 May 2010 15:10

Re: Modern C++

Post by Alexandr »

на почти все из C++11 применяю, выше (14, 17) пока не лезу
Pantigalt
Уже с Приветом
Posts: 802
Joined: 24 Jan 2007 07:32
Location: Сергели->Новосибирск->SFBA->Новосибирск->Москва->NY->SFBA

Re: Modern C++

Post by Pantigalt »

roadman wrote:по мере популярности:
auto
[]() {...}
for (const auto& x: container)
make_unique
make_shared
using Z = W<x,y>;
initialization lists
variadic templates
enum class Blah
= delete
static_assert
decltype

как все новое, молодежь начинает использовать, где надо и не надо. Думают, что от этого код будет лучше сам по себе. :ROFL:
Мне нравится что в C++11 ввели параметризованные alias templates.
async и future на прошлой работе активно использовали.
Спи быстрее, твоя подушка нужна другому. Copyright Зощенко
Pantigalt
Уже с Приветом
Posts: 802
Joined: 24 Jan 2007 07:32
Location: Сергели->Новосибирск->SFBA->Новосибирск->Москва->NY->SFBA

Re: Modern C++

Post by Pantigalt »

А какие зп у mid level C++ программиста в SFBA?
Спи быстрее, твоя подушка нужна другому. Copyright Зощенко

Return to “Работа и Карьера в IT”