Использовать возможности C++11 сегодня?
От: о_О
Дата: 04.11.11 10:48
Оценка:
Прювет.

Что вы думаете по поводу использования новых возможностей сегодня? constexpr, auto, nullptr, RV-ссылки, лямбды — какие за и против?
Re: Использовать возможности C++11 сегодня?
От: jazzer Россия Skype: enerjazzer
Дата: 04.11.11 11:22
Оценка: +3
Здравствуйте, о_О, Вы писали:

о_О>Прювет.


о_О>Что вы думаете по поводу использования новых возможностей сегодня? constexpr, auto, nullptr, RV-ссылки, лямбды — какие за и против?


против — не везде реализовано, а где реализовано, частенько реализовано криво.
всё остальное только за.
Так что если убедишься, что твои компиляторы правильно поддерживают то, что тебе надо, и не планируется перенос на другие компиляторы, то смело юзай и наслаждайся
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re: Использовать возможности C++11 сегодня?
От: Banned by IT  
Дата: 04.11.11 12:20
Оценка: -1
Здравствуйте, о_О, Вы писали:

о_О>Что вы думаете по поводу использования новых возможностей сегодня? constexpr, auto, nullptr, RV-ссылки, лямбды — какие за и против?

А чего думать? Использую как только появились в компиляторе, под который пишется проект.
Не всё конечно. Nullptr нигде ещё не понадобился, NULL более чем достаточно. Constexpr в ICC ещё нет, лямбды не пригодились — foreach на цикле for с auto удобнее в разы.
Static_assert, auto, decltype и && — очень полезные, да.
Ну а вообще смотри по задаче, что из нововведений может пригодиться а что нет.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re: Использовать возможности C++11 сегодня?
От: Lorenzo_LAMAS  
Дата: 04.11.11 14:26
Оценка:
Здравствуйте, о_О, Вы писали:

о_О>Прювет.


о_О>Что вы думаете по поводу использования новых возможностей сегодня? constexpr, auto, nullptr, RV-ссылки, лямбды — какие за и против?


я вот сегодня заюзал рэндж цикл и несказанно рад так как код под кланг, никто не требует работы с другими компиляторами, потому можно
и использую авто, так приятно
Of course, the code must be complete enough to compile and link.
Re: Использовать возможности C++11 сегодня?
От: Tilir Россия http://tilir.livejournal.com
Дата: 04.11.11 14:44
Оценка: +4 -3
Здравствуйте, о_О, Вы писали:

о_О>Что вы думаете по поводу использования новых возможностей сегодня? constexpr, auto, nullptr, RV-ссылки, лямбды — какие за и против?


Я считаю, не надо никуда торопиться. Ничего особо прекрасного в новом стандарте нет, так сахара подсыпали, так что совсем не к спеху. Компиляторы должны устояться, баги там должны быть отловлены -- это время. Это много времени. И лучше если о сырость реализации новой фичи споткнётся не мой код, я слишком часто попадал на отладку багов в GCC и представляю себе, что это такое.
Re[2]: Использовать возможности C++11 сегодня?
От: о_О
Дата: 04.11.11 14:57
Оценка:
Здравствуйте, Banned by IT, Вы писали:

BBI>А чего думать? Использую как только появились в компиляторе, под который пишется проект.

BBI>Не всё конечно. Nullptr нигде ещё не понадобился, NULL более чем достаточно.
а я вот думаю, что с nullptr делать — внедрять или не внедрять. пока думаю, что рано
Re: Использовать возможности C++11 сегодня?
От: Abyx Россия  
Дата: 04.11.11 15:08
Оценка: :)
Здравствуйте, о_О, Вы писали:

о_О>Прювет.


о_О>Что вы думаете по поводу использования новых возможностей сегодня? constexpr, auto, nullptr, RV-ссылки, лямбды — какие за и против?


использовать.
никаких "против" нет и не может быть.

обычно те кто "против" просто не знают что это за фича и зачем ее ввели в стандарт.
In Zen We Trust
Re[3]: Использовать возможности C++11 сегодня?
От: Banned by IT  
Дата: 04.11.11 15:35
Оценка:
Здравствуйте, о_О, Вы писали:

BBI>>А чего думать? Использую как только появились в компиляторе, под который пишется проект.

BBI>>Не всё конечно. Nullptr нигде ещё не понадобился, NULL более чем достаточно.
о_О>а я вот думаю, что с nullptr делать — внедрять или не внедрять. пока думаю, что рано

Полезность его как то не очевидна.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re: Использовать возможности C++11 сегодня?
От: rm822 Россия  
Дата: 04.11.11 16:15
Оценка:
о_О>Что вы думаете по поводу использования новых возможностей сегодня? constexpr, auto, nullptr, RV-ссылки, лямбды — какие за и против?
против только — опасения в качестве реализации, не хочется быть бета тестером
необходимость миграции на другую студию — это некоторые затраты

в остальном только за
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re: Использовать возможности C++11 сегодня?
От: MescalitoPeyot Украина  
Дата: 04.11.11 19:13
Оценка: +1
Здравствуйте, о_О, Вы писали:

о_О>Что вы думаете по поводу использования новых возможностей сегодня? constexpr, auto, nullptr, RV-ссылки, лямбды — какие за и против?


Что тут думать? Если целевые платформы позволяют — потихоньку начинать использовать. Если нет — не использовать.
Re[4]: Использовать возможности C++11 сегодня?
От: Abyx Россия  
Дата: 04.11.11 20:07
Оценка: +2
Здравствуйте, Banned by IT, Вы писали:

BBI>Здравствуйте, о_О, Вы писали:


BBI>>>А чего думать? Использую как только появились в компиляторе, под который пишется проект.

BBI>>>Не всё конечно. Nullptr нигде ещё не понадобился, NULL более чем достаточно.
о_О>>а я вот думаю, что с nullptr делать — внедрять или не внедрять. пока думаю, что рано

BBI>Полезность его как то не очевидна.


полезность такая же как у const и static_assert — дополнительная проверка времени компиляции
In Zen We Trust
Re[2]: Использовать возможности C++11 сегодня?
От: Banned by IT  
Дата: 04.11.11 20:16
Оценка:
Здравствуйте, rm822, Вы писали:

о_О>>Что вы думаете по поводу использования новых возможностей сегодня? constexpr, auto, nullptr, RV-ссылки, лямбды — какие за и против?

R>против только — опасения в качестве реализации, не хочется быть бета тестером
R>необходимость миграции на другую студию — это некоторые затраты
Дык не надо менять студию, смени компилятор в той же студии.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[3]: Использовать возможности C++11 сегодня?
От: rm822 Россия  
Дата: 04.11.11 20:44
Оценка: 9 (1)
BBI>Дык не надо менять студию, смени компилятор в той же студии.
и какой компилятор кроме студийного умеет C++ CLR?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[4]: Использовать возможности C++11 сегодня?
От: Abyx Россия  
Дата: 04.11.11 20:51
Оценка: :)
Здравствуйте, rm822, Вы писали:

BBI>>Дык не надо менять студию, смени компилятор в той же студии.

R>и какой компилятор кроме студийного умеет C++ CLR?

сейчас прибегут пять человек и скажут что C++\CLR не нужен
In Zen We Trust
Re[4]: Использовать возможности C++11 сегодня?
От: Banned by IT  
Дата: 04.11.11 21:13
Оценка:
Здравствуйте, rm822, Вы писали:

BBI>>Дык не надо менять студию, смени компилятор в той же студии.

R>и какой компилятор кроме студийного умеет C++ CLR?
Ты таки определись, что тебе надо: С++ или CLR?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[5]: Использовать возможности C++11 сегодня?
От: Banned by IT  
Дата: 04.11.11 21:13
Оценка:
Здравствуйте, Abyx, Вы писали:

BBI>>>Дык не надо менять студию, смени компилятор в той же студии.

R>>и какой компилятор кроме студийного умеет C++ CLR?

A>сейчас прибегут пять человек и скажут что C++\CLR не нужен

Как склейка managed и unmanaged — нормально.

Писать целиком на нём: уже лучше сразу C# взять.
Код ms компилер для MC генерит поганенький.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[5]: Использовать возможности C++11 сегодня?
От: rm822 Россия  
Дата: 04.11.11 21:21
Оценка:
BBI>Ты таки определись, что тебе надо: С++ или CLR?
мне и того и другого
CLR это интерфейс для гуя, у нас гуй на шарпе рисуется а ядро на плюсах.
Ща конечно набегут и будут что-то лопотать про QT, HTMLayout и прочие непотребства
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[6]: Использовать возможности C++11 сегодня?
От: Banned by IT  
Дата: 04.11.11 21:29
Оценка:
Здравствуйте, rm822, Вы писали:

BBI>>Ты таки определись, что тебе надо: С++ или CLR?

R>мне и того и другого
R>CLR это интерфейс для гуя, у нас гуй на шарпе рисуется а ядро на плюсах.
Ну так и нафига вам тогда MC?
Из C# можно нормально дёргать native DLL, которые можно собрать более эффективно чем это делает МС.

R>Ща конечно набегут и будут что-то лопотать про QT, HTMLayout и прочие непотребства

Как вы могли такое подумать! Исключительно чистейший спирт WinAPI!!!
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[7]: Использовать возможности C++11 сегодня?
От: rm822 Россия  
Дата: 04.11.11 21:41
Оценка:
BBI>Ну так и нафига вам тогда MC?
BBI>Из C# можно нормально дёргать native DLL, которые можно собрать более эффективно чем это делает МС.
Это ты из маркетинговых материалов почерпнул?
Давай посмотрим как у тебя получится дернуть метод вот с такой сигнатурой
   std::vector<std::wstring> MyMeth(const std::tr1::shared_ptr<std::set<int>> &)
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re: Использовать возможности C++11 сегодня?
От: zaufi Земля  
Дата: 04.11.11 21:58
Оценка: 39 (7)
Здравствуйте, о_О, Вы писали:

о_О>Прювет.


о_О>Что вы думаете по поводу использования новых возможностей сегодня? constexpr, auto, nullptr, RV-ссылки, лямбды — какие за и против?


некоторое время назад я писал уже о том как проходит внедрение С++11 в нашем проекте (http://rsdn.ru/forum/cpp.applied/4426947.1.aspx
Автор: zaufi
Дата: 20.09.11
)
по прошествии еще месяца с небольшим могу добавить:

* целевая платформа обрела gcc 4.6 (было 4.5) поэтому круг возможных фич расширяется, что не может не радовать
* в gcc 4.6 реализован документ N3053, что привело к тому, что куча кода используещго boost перестала собираться (хотя до этого все нормально собиралось на 4.5) -- после ресеча "проблемы" стали чаще пользоваться defaulted and deleted functions
* почуствовал вкус от применения decltype (http://rsdn.ru/forum/cpp/4442630.1.aspx
Автор: zaufi
Дата: 03.10.11
) -- особенно в сравнении с аналогичным "мясом" сделаным в библиотеке TTI от следующего boost
* raw string literals получили большее распространение. в основном по прежнему в юнит тестах.
* после ознакомления с Саттеровской заметкой (http://herbsutter.com/elements-of-modern-c-style/) чаще стали применять auto, но сила привычки видеть явное объявление типа, все еще дает о себе знать
* std::unique_ptr и его специализация для массивов std::unique_ptr<T[]> практически полностью вытеснили boost::scoped_ptr и boost::scoped_array (вычищаем остатки по мере того как дело касается рефакторинга уже написанного кода), не все так гладко получается с заменами shared_ptr -- некоторые части boost, к сожалению завязаны только на свои смарт-поинтеры... ;( хотя есть и неожиданные открытия -- boost::signals2 способна понимать std::shared_ptr для trackable сигналов )
* буквально вчера в коде появились variadic templates -- в классе-обертке шаблонный конструктор, который прокидывает нужное число параметров в базовый, заранее не известный, тип...
* Initializer Listы оказались полезны не только для контейнерных типов
* несколько разочаровывает std::bind... placeholderы находтся в отдельном пространстве имен, а using namespace у нас сцуко запрещен в code policy ;( с другой стороны упаришься следить за тем чтобы не было конфликтов с boost::bind, который неявно подключается кучей бустерных библиотек... boost::bind пока все еще не выпилили до конца из нашего кода -- повода не было рефачить существующий код
* наткнувшись на неприятность задумываемся о применении nullptr... правда все осложняется тем, что неприятность находится в коде который должен компилиться не только gccой... ;(
* ждут своего часа куски кода в которых уместно было бы constexpr -- как только там надо будет что-то порефачить, заодно и это приделаем... пока обходимся вздохами типа "ах было бы здорово если бы там был constexpr" -- но, т.к. пока не критично не лезем туда...
* ну и в конце повторюсь еще раз Rvalue references + move constructors = щастье!
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.