На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: Qraizer, Hsilgos
Страницы: (78) « Первая ... 32 33 [34] 35 36 ...  77 78  ( Перейти к последнему сообщению )  
> Текущий Стандарт С++ и перспективы его развития
    Цитата Большой @
    MyNameIsIgor
    так не пашет

    В смысле?
      Flex Ferrum
      Пардон, это что-то я тупанул
        Похоже, в C++0x наконец-то решили запретить неявное преобразование строкового литерала в указатель с потерей константности:

        DR 693:
        Цитата
        Notes from the July, 2009 meeting:

        The CWG reached consensus that the deprecated conversion should be removed altogether.

        Proposed resolution (September, 2009):

        1. Remove 4.2 [conv.array] paragraph 2:

        A string literal (2.14.5 [lex.string]) with no prefix, with a u prefix, with a U prefix, or with an L prefix can be converted to an rvalue of type “pointer to char”, “pointer to char16_t”, “pointer to char32_t”, or “pointer to wchar_t”, respectively. In any case, the result is a pointer to the first element of the array. This conversion is considered only when there is an explicit appropriate pointer target type, and not when there is a general need to convert from an lvalue to an rvalue. [Note: this conversion is deprecated. See Annex D [depr]. —end note] For the purpose of ranking in overload resolution (13.3.3.1.1 [over.ics.scs]), this conversion is considered an array-to-pointer conversion followed by a qualification conversion (4.4 [conv.qual]). [Example: "abc" is converted to “pointer to const char” as an array-to-pointer conversion, and then to “pointer to char” as a qualification conversion. —end example]

        [...]

        4. Change the discussion of 2.14.5 [lex.string] in C.1.1 [diff.lex] as follows:

        Change: String literals made const
        The type of a string literal is changed... “array of const wchar_t.”

        ExpandedWrap disabled
          char* p = "abc";   // valid in C, invalid in C++

        Отмечу, однако, что запрет такого преобразования будет условный: стандарт позволяет и будет позволять компилятору иметь собственные расширения языка, и, в частности, компилятор сможет выполнять такое преобразование при условии, что без применения расширений программа по стандарту была бы ill-formed, и при этом он обязан будет выдавать диагностическое сообщение.
        Сообщение отредактировано: Masterkent -
          Читал, что FuturePack что-то там добавлял по C++ 0x в VC++ 2008. А не известно, будет ли какое-то дополнение или обновление для полной поддержки нового стандарта 2008-й студией?
            Цитата B.V. @
            Читал, что FuturePack

            А это что за зверь?
              Это опечатка, а не зверь. Конечно, FeaturePack
                Цитата B.V. @
                Это опечатка, а не зверь. Конечно, FeaturePack

                Если 2008-го года, то там от C++0x - только расширение STL из tr1. Больше ничего. Но мне, честно говоря, успешно удался эксперимент по прикручиванию 2010-го компиля к 2008-ой студии.
                  Цитата Flex Ferrum @
                  успешно удался эксперимент по прикручиванию 2010-го компиля к 2008-ой студии.

                  Симлинки на папку(-и), делов-то. Но в 2010 с этим ещё проще, там появились (давно пора) тулсеты и можно выбирать, чем ты хочешь компилировать.
                    Последние новости из комитета по стандартизации:

                    http://herbsutter.wordpress.com/2010/03/13/trip-report-march-2010-iso-c-standards-meeting/
                      Цитата
                      C++0x could officially be published as soon as next year as ISO C++ 2011, and we can stop with the “x-is-hex” jokes and just start calling it C++11.

                      Ну.. хочется в это верить :yes:
                        boost обновился :)
                          Цитата Большой @
                          boost обновился

                          только вот это похоже не исправили https://svn.boost.org/trac/boost/ticket/3844 поэтому не получается использовать boost.thread в gcc с включенным C++0x, приходится вручную править заголовочный файл.
                            Цитата DEADHUNT @
                            Цитата Большой @
                            boost обновился

                            только вот это похоже не исправили https://svn.boost.org/trac/boost/ticket/3844 поэтому не получается использовать boost.thread в gcc с включенным C++0x, приходится вручную править заголовочный файл.

                            замечал сей баг. но использую std::thread, там с этим нет проблем.
                            а что(как) править нужно?
                            Сообщение отредактировано: niXman -
                              Цитата niXman @
                              замечал сей баг. но использую std::thread, там с этим нет проблем.
                              а что(как) править нужно?

                              там же что типа этого:
                              ExpandedWrap disabled
                                #ifdef HAVE_RVALUE_REFERENCES
                                ....
                                #else
                                ...
                                #endif

                              значит надо добавить #undef соответствующий в начало заголовка.
                              только в стандартной библиотеке libstdc++ не реализовали std::this_thread::yield, в boost реализовали.
                              Сообщение отредактировано: DEADHUNT -
                                Цитата niXman @
                                но использую std::thread, там с этим нет проблем.

                                В gcc у него под виндой проблемы. Просто не компиляется. Хотя, возможно, с последнего раза, как я это пробовал - уже пофиксили.
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (78) « Первая ... 32 33 [34] 35 36 ...  77 78


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0829 ]   [ 16 queries used ]   [ Generated: 21.06.25, 01:54 GMT ]