В проектах на С++ уже используете фичи С++0х?

     

    Only registered users can participate in poll. Log in, please.

    В проектах на С++ уже используете фичи С++0х?

    • 5%По полной! Там столько вкусного!52
    • 9.1%Осторожно пробую водичку94
    • 11.1%Рано еще. Стандарт сырой, поддержка компиляторами не полная115
    • 10.5%Хотел бы, но обстоятельства (босс, проект, компилятор) не позволяют109
    • 4.6%Читал, ничего полезного не нашел, использовать не планирую48
    • 57%А что такое С++0х?588
    • 2.3%Свой вариант — напишу в комментариях24
    Share post

    Similar posts

    Comments 46

      +2
      К сожалению, в нашем проекте запрещают все «новое». Зато отрываюсь по полной в инструментах для разработчика, чтобы облегчить разработку различных модулей. Уже использовал:
      1. Variadic templates.
      2. Lambda.
      3. 'auto' keyword.
      4. std::shared_ptr, std::unordered_map

      В частности, лямбду очень удобно использовать совместно с boost::asio.
        +1
        Жду clang с его умными подсказками…
          –11
          При попыте подключить эти фичи в clang'е
          n file included from /home/sauron/develop/const/armkg/liboftd/simpleparser.cpp:8:
          In file included from /home/sauron/develop/const/armkg/liboftd/./simpleparser.h:11:
          In file included from /usr/include/qt4/QtCore/QObject:1:
          In file included from /usr/include/qt4/QtCore/qobject.h:48:
          In file included from /usr/include/qt4/QtCore/qstring.h:60:
          In file included from /usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/include/g++-v4/string:41:
          In file included from /usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/include/g++-v4/bits/char_traits.h:40:
          In file included from /usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/include/g++-v4/bits/stl_algobase.h:66:
          In file included from /usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/include/g++-v4/bits/stl_pair.h:60:
          In file included from /usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/include/g++-v4/bits/move.h:38:
          /usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/include/g++-v4/type_traits:178:51: error: '_Tp' does not refer to a value
          : public integral_constant<bool, __is_trivial(_Tp)>
          ^
          /usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/include/g++-v4/type_traits:176:21: note: declared here
          template<typename _Tp>
          ^
          /usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/include/g++-v4/type_traits:179:8: error: expected class name
          { };
          ^
          /usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/include/g++-v4/type_traits:179:8: error: expected '{' after base class list
          /usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/include/g++-v4/type_traits:184:59: error: '_Tp' does not refer to a value
          : public integral_constant<bool, __is_standard_layout(_Tp)>
          ^
          /usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/include/g++-v4/type_traits:182:21: note: declared here
          template<typename _Tp>
          ^
          /usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/include/g++-v4/type_traits:185:8: error: expected class name
          { };
          ^
          /usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/include/g++-v4/type_traits:185:8: error: expected '{' after base class list
          In file included from /home/sauron/develop/const/armkg/liboftd/simpleparser.cpp:8:
          In file included from /home/sauron/develop/const/armkg/liboftd/./simpleparser.h:11:
          In file included from /usr/include/qt4/QtCore/QObject:1:
          In file included from /usr/include/qt4/QtCore/qobject.h:48:
          In file included from /usr/include/qt4/QtCore/qstring.h:60:
          In file included from /usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/include/g++-v4/string:42:
          In file included from /usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/include/g++-v4/bits/allocator.h:48:
          In file included from /usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/include/g++-v4/x86_64-pc-linux-gnu/bits/c++allocator.h:34:
          In file included from /usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/include/g++-v4/ext/new_allocator.h:33:
          In file included from /usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/include/g++-v4/new:41:
          In file included from /usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/include/g++-v4/exception:150:
          /usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/include/g++-v4/exception_ptr.h:132:13: error: unknown type name 'type_info'
          const type_info*
          ^
          In file included from /home/sauron/develop/const/armkg/liboftd/simpleparser.cpp:8:
          In file included from /home/sauron/develop/const/armkg/liboftd/./simpleparser.h:11:
          In file included from /usr/include/qt4/QtCore/QObject:1:
          In file included from /usr/include/qt4/QtCore/qobject.h:48:
          In file included from /usr/include/qt4/QtCore/qstring.h:60:
          In file included from /usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/include/g++-v4/string:42:
          In file included from /usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/include/g++-v4/bits/allocator.h:48:
          In file included from /usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/include/g++-v4/x86_64-pc-linux-gnu/bits/c++allocator.h:34:
          In file included from /usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/include/g++-v4/ext/new_allocator.h:33:
          In file included from /usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/include/g++-v4/new:41:
          In file included from /usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/include/g++-v4/exception:151:
          /usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/include/g++-v4/nested_exception.h:62:49: error: expected expression
          nested_exception(const nested_exception&) = default;
          ^
          /usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/include/g++-v4/nested_exception.h:64:60: error: expected expression
          nested_exception& operator=(const nested_exception&) = default;
          ^
          /usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/include/g++-v4/nested_exception.h:77:50: error: expected expression
          inline nested_exception::~nested_exception() = default;
          ^
          /usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/include/g++-v4/nested_exception.h:122:61: error: redefinition of default argument
          __throw_with_nested(_Ex&& __ex, const nested_exception* = 0)
          ^ ~
          /usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/include/g++-v4/nested_exception.h:110:56: note: previous definition is here
          __throw_with_nested(_Ex&&, const nested_exception* = 0)
          ^ ~
          11 errors generated.
          make[2]: *** [liboftd/CMakeFiles/oftd.dir/simpleparser.cpp.o] Ошибка 1
          make[1]: *** [liboftd/CMakeFiles/oftd.dir/all] Ошибка 2
          make: *** [all] Ошибка 2


          Если кто знает как это обойти, то буду использовать
            +5
            Можно было вставить через pastebin.com ;)
              +6
              К сожалению копировал из IDE и думал там ошибка покороче.
            0
            С удовольствием бы использовал, ради интереса и профессионального уровня, но приходится пользоваться некоторыми (достаточно старыми) бесплатными инструментами разработки, которые не поддерживают. Например, Embedded Visual C++.
              0
              Скоро буду: как только перейдём на VS 2010.
                0
                вот только variadic templates там нету. хнык (
                  0
                  Хотелось бы, конечно, чтобы все фичи поддерживались, но для десятки это было недостижимо. При всём этом они реализовали достаточно сбалансированный набор, покрыв критически важные вещи.
                  Лично мне жалко, что не было возможности включить «Initializer lists», «Defaulted and deleted functions» и «Range-based for». Variadic templates, мне кажется, больше нацелены на авторов библиотек общего назначения, к которым я себя не отношу.
                +4
                Не использую ввиду отсутствия проектов на С++ в настоящий момент. Есть только на С, C#, php.
                  +2
                  Для минусующих: выбор языков обусловлен задачами. Задачи обусловлены заказчиками. В моем комменте не было и намека на холивар.
                    +6
                    Минус не мой, но мне кажется дело не в холиваре, а просто камент не в тему.

                    Давай сейчас все, у кого нету проектов на C++ в настоящий момент, начнут здесь перечислять, на чем они пишут вместо этого.
                      +1
                      В принципе вы правы, но в заголовке — вопрос, использую ли я в проектах на C++ возможности C++0x, и есть вариант ответа «Другой вариант, напишу в комментариях». Собственно его и выбрал и написал)

                      Сорри за оффтоп, удаляюсь из топика)
                  0
                  Особенно лямбды + новые/старые алгоритмы стл, вроде: std::for_each(mycontainer.begin(), mycontainer.end(), [this](val_type element) {...}):
                    +10
                    50+ % за «А что такое С++0х?»
                    Да вы шутите?
                      +7
                      Набежали не С++ программисты и заспамили голосование.
                        +4
                        Надо было добавить вариант «У меня сейчас нет проектов на C++» и все были бы счастливы)
                          +4
                          Лучше «не пишу на С++» )
                          0
                          Вроде блог С++ и в вопросе специально уточнено, что опрос касается С++ проектов — а все-равно 50%…
                            +5
                            Уже 60%. Сколько на хабре хомячков.
                            0
                            Набежали С++ программисты и заспамили голосование.
                            +1
                            Я изучаю C++ уже продолжительное время, и по прежнему в нем много вещей которые я не пробовал на практике, многое слышал/читал но не использовал. Мой ответ как раз «А что такое C++0x?», нет я конечно знаю что там много вкусностей и ништяков, но до применения в реальности мне как до луны еще. Продолжаем учить основы :)
                            –2
                            не планирую :)
                              0
                              Использую boost и stl, возможнстей плюсов мне с ними хватает с головой. Почитываю C++0x, но думаю, еще для него рановато.
                                0
                                Те же лямбды и auto в С++0x просто позволяют использовать STL и Boost несколько более удобно. Не думаю, что рановато.
                                  0
                                  Оно конечно же и так, но использование auto вместо длинного Container_Traits::const_iterator кажется какой-то игрушкой. C и C++ мне сильно импонируют потому что я понимаю как это будет работать, а любая неопределенность, автоматический тип, инициализирующийся при первой инстанциации (я специально не буду перечитывать свой пост) выглядет неуместной.

                                  Хотя, конечно, функциональные возможности очень впечатляют
                              • UFO just landed and posted this here
                                  0
                                  lambda, auto, initializer list, unordered_map, новый for
                                    +2
                                    и decltype, разумеется
                                  • UFO just landed and posted this here
                                      0
                                      а какой вариант по вашему должен был выбрать дизайнет, дотнетчик или пэхэпист?
                                      • UFO just landed and posted this here
                                          0
                                          Я вот, к примеру, дотнетчик.
                                          Увидал голосование на главной, пришел, проголосовал «Свой вариант».
                                          Кто-то не хочет писать в комментах — проголосовал «Что такое C++0x?». Может он просто не вкурсе откуда растут ноги этого опроса.
                                          • UFO just landed and posted this here
                                              0
                                              Я думаю многие так и поступили, а некоторые выбрали подходящий ответ из имеющихся.
                                          +1
                                          Я — джавист. Что такое C++0x знаю. Стыдно не знать чем живет индустрия. И я не только C++ имею ввиду.
                                        +3
                                        Для репрезентативности выборки можно было добавить вариант «А что такое C++?».
                                          +34
                                          Шел я сегодня по хабру и увидел юзера в футболке с надписью «С++». Я подскочил и резко двинул ему в iostream, прокричав «ТОЛЬКО СИ» ПОТОМУЧТО Я УГОРЕЛ ПО C99, КРОСПЛАТФОРМЕННОМУ АССЕМБЛЕРУ И РУЧНОМУ УПРАВЛЕНИЮ ПАМЯТЬЮ! ПАЦАНЫ ДУХ СИ ЖИВЕТ ТОЛЬКО НА ХАБРЕ ГДЕ ПАЦАНЫ ЖИВУТ ПРОГРАММИРОВАНИЕМ, МИКРОКОНТРОЛЛЕРАМИ, ПАЯНИЕМ И ПОСЫЛАЮТ СИСТЕМУ ПОДАЛЬШЕ! ТОЛЬКО ХАБР! ТОЛЬКО СИ! БЕЙТЕ ПЛЮСНУТЫХ С ВЕРТУШКИ В ЩИ, ЛЮБИТЕ СЕМЬЮ, ДВИЖУХУ и СЦЕНУ! КОМПИЛИРУЙТЕ ОТКРЫТО И СМЕЛО С ПОМОЩЬЮ GCC! СИ!
                                            0
                                            «Креатифф» норм, но идеологически я не согласен, конечно же. Будем считать, что Вы гопник, а я неформал ;)
                                              0
                                              А я в последнее время скорее согласен, чем нет. Чем больше кода на C++ вижу и пишу, тем меньше этот язык мне нравится. Новый стандарт, конечно, немного улучшает ситуацию, но заодно привносит ещё больше путаницы в и так-то достаточно сложный язык. А сложность разработки тулз для работы с приплюснутым кодом, компиляторов?
                                              Уже давно есть достойная замена C++ — язык D. Лучше на его развитие бросить силы, а не на монстра, застрявшего в прошлом. Собственно, сам D уже намного лучше C++, нужно только допилить поддержку различных платформ.
                                                0
                                                По задумке D может и круче C++, но по уровню развития далеко позади и вряд когда-нибудь догонит.
                                                  0
                                                  А я в него пока ещё верю. Дотянуть бы тулчейн до поддержки всех популярных платформ и сразу прогресс быстрее пойдет. Да даже включение gdc в основную ветку бы дало нехилый прирост популярности языку. Хотя аналогов Qt на D нету, а QtD при всей своей привлекательности всё-таки костыль.
                                                  Мечта идиота — запилить реализацию Qt Quick на чистом D.
                                              0
                                              Вы такой муси-пуси :)
                                              0
                                              Хочу, но не использую, ибо NetBeans его не поддерживает… Надеюсь скоро запилят…
                                                0
                                                В NetBeans разе есть родной компилятор? Он же gcc использует, а свежий gcc частично умеет C++0x.
                                                  0
                                                  Я имею в виду подсветку синтаксиса и автокомплит… Например слово auto он подчеркивает как ошибку, тип объявленной таким образом переменной не выводит, в отличии от студии 2010, контекстные подсказки по лямбдам не выдает и сами лямбды подчеркивает тоже как ошибки…

                                              Only users with full accounts can post comments. Log in, please.