Интересно, насколько широко компании используют последние фичи C++11/14/17?
Иногда в свободное время почитываю, и противоречивые мысли приходят в голову - от "наконец-то можно писать переносимый, быстрый и безопасный код" до "когда-же наконец этот монстр сдохнет под собственным весом".
Modern C++
-
- Уже с Приветом
- Posts: 11999
- Joined: 08 Sep 2006 20:07
- Location: Силиконка
Modern C++
Мир Украине. Свободу России.
-
- Уже с Приветом
- Posts: 2225
- Joined: 15 Aug 2003 15:02
Re: Modern C++
C++11/14 довольно-таки широко
"Главная проблема цитат в сети Интернет в том, что люди сразу верят в их подлинность" В.И.Ленин
-
- Уже с Приветом
- Posts: 2997
- Joined: 14 Apr 2004 01:11
- Location: SFBA (было: Минск, Беларусь)
Re: Modern C++
Широко, правда беспорядочно и без понимания, какие и этих фич C++11, какие С++14 и какие C++17. Как раньше была манера писать "программы на C++", как на эдаком "С с классами и cout", так и сейчас пишут на "С с классами и cout, лямбдами, std::function и auto".M. Ridcully wrote:Интересно, насколько широко компании используют последние фичи C++11/14/17?
Best regards,
Андрей
Андрей
-
- Уже с Приветом
- Posts: 7956
- Joined: 08 Nov 2004 12:24
- Location: GA
Re: Modern C++
Пытаемся использовать, но у нас эмбедед, то компилятор не позволяет, то кастомер требует полной совместимости с какой нибудь визуал студио 2010. Со скрипом в общем.
-
- Уже с Приветом
- Posts: 9194
- Joined: 04 Mar 2011 03:04
- Location: SFBA
Re: Modern C++
Очень съедобны лямбды. Использую в "современном синтаксисе" для подключения сигнала в Qt.
Очень к месту ключевое слово override. Используем обязательно для достоверной перегрузки виртуальной функции.
Очень полезны = delete для исключения дефолтных конструкторов, для примера.
Классные просто инициализаторы в теле класса: int m_counter{ 0 };
Классные инициализаторы в целом, особенно, для контейнеров.
Классные std::move и && в параметрах.
Шаблон std::function<> есть находка.
Новый цикл for для итерации коллекций.
auto, auto&, const auto&, когда ломает рисовать сложный 'промежуточный' тип.
Перечислять ещё можно. Пока всё, что выше, из 11-го стандарта. Сдерживает совместимость со старым кодом, слегка. В основном, со стилем его, что раз инициализаторы тут уже в конструкторе, то так и будем их добавлять.
Очень к месту ключевое слово 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...
-
- Уже с Приветом
- Posts: 707
- Joined: 12 Mar 2003 22:29
- Location: Moscow->Bay Area, CA
Re: Modern C++
по мере популярности:
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
как все новое, молодежь начинает использовать, где надо и не надо. Думают, что от этого код будет лучше сам по себе.
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
как все новое, молодежь начинает использовать, где надо и не надо. Думают, что от этого код будет лучше сам по себе.
The philosophy of one century is the common sense of the next. --Henry Ward Beecher
-
- Уже с Приветом
- Posts: 7723
- Joined: 29 Mar 2000 10:01
- Location: Kirkland,WA
Re: Modern C++
Выжег каленым железом unique_ptr. Это же надо было так людей не любить... А часть буста теперь просто как "оно есть но как оно работает вы сами смотрите". например часть Asio пришлось переписать потому что лок на локе сидит. А вещи типа boost context они вроде есть но есть нюанс...M. Ridcully wrote:Интересно, насколько широко компании используют последние фичи C++11/14/17?
-
- Уже с Приветом
- Posts: 11999
- Joined: 08 Sep 2006 20:07
- Location: Силиконка
Re: Modern C++
Очень интересно. Обосновать сможете?alex_127 wrote: Выжег каленым железом unique_ptr.
Я вот, наоборот, shared_ptr как-то не очень. Не религиозно, но просто люблю дизайн, когда есть один "владелец" и время жизни чётко определено.
Я даже ещё добавлю. Пока сам на всякие там rvalue references & moves немного с недоверием смотрю, и только unique_ptr считаю самым главным (единственным?) серьёзным их оправданием.
Мир Украине. Свободу России.
-
- Уже с Приветом
- Posts: 7723
- Joined: 29 Mar 2000 10:01
- Location: Kirkland,WA
Re: Modern C++
Все рога росли из non-copy которое из коробки не работает с контейами, к примеру http://stackoverflow.com/questions/2105 ... ile-in-map" onclick="window.open(this.href);return false;M. Ridcully wrote:Очень интересно. Обосновать сможете?alex_127 wrote: Выжег каленым железом unique_ptr.
Я вот, наоборот, shared_ptr как-то не очень. Не религиозно, но просто люблю дизайн, когда есть один "владелец" и время жизни чётко определено.
Я даже ещё добавлю. Пока сам на всякие там rvalue references & moves немного с недоверием смотрю, и только unique_ptr считаю самым главным (единственным?) серьёзным их оправданием.
А мне деньги платят не за mental gymnastics.
Shared is overrated (слишком легко сделать приложение которое тормозит из-за постоянного добавим /уберем/ wrap.)
-
- Уже с Приветом
- Posts: 3647
- Joined: 23 May 2010 15:10
Re: Modern C++
на почти все из C++11 применяю, выше (14, 17) пока не лезу
-
- Уже с Приветом
- Posts: 802
- Joined: 24 Jan 2007 07:32
- Location: Сергели->Новосибирск->SFBA->Новосибирск->Москва->NY->SFBA
Re: Modern C++
Мне нравится что в C++11 ввели параметризованные alias templates.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
как все новое, молодежь начинает использовать, где надо и не надо. Думают, что от этого код будет лучше сам по себе.
async и future на прошлой работе активно использовали.
Спи быстрее, твоя подушка нужна другому. Copyright Зощенко
-
- Уже с Приветом
- Posts: 802
- Joined: 24 Jan 2007 07:32
- Location: Сергели->Новосибирск->SFBA->Новосибирск->Москва->NY->SFBA
Re: Modern C++
А какие зп у mid level C++ программиста в SFBA?
Спи быстрее, твоя подушка нужна другому. Copyright Зощенко