На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: Qraizer, Hsilgos
Страницы: (78) « Первая ... 22 23 [24] 25 26 ...  77 78  ( Перейти к последнему сообщению )  
> Текущий Стандарт С++ и перспективы его развития
    похоже, многие из фич Стандарта 0x будут мочить. уже начали:
    http://www.devx.com/cplus/Article/42448/0/
    http://www.informit.com/guides/content.aspx?g=cplusplus&seqNum=441
    Стандарт и так уже стал не 0x, а скорее 1x, видимо что бы не стал таки 2x, решили подсократить...
    Сообщение отредактировано: Бобёр -
      Цитата Бобёр @
      похоже, многие из фич Стандарта 0x будут мочить

      Бобер, это даже не вчерашняя, это позавчерашняя новость. Пока все идет к тому, что кроме концептов из стандарта ничего выкидывать не будут.
        ну, посмотрим.
          А концепты жалко. Я так на них рассчитывал...
            Цитата Qraizer @
            А концепты жалко. Я так на них рассчитывал...

            Ну, видимо, не один ты. :) Попробуй собрать ветку концептов из репозитория gcc. Я так понял, что ее ведут как раз те же люди, которые продвигают концепты в стандарте.
              А смысл, если это всего лишь расширение Стандарта получится? Руку набить разве что. Я хочу ими "документировать" и хочу избавиться от расшифровки диагностик (мой личный рекорд: одна ошибка - 1,3Мб листинг). Вон, typeof там сроду был, полезнейшая вещь иногда. И часто его можно было видеть, когда он был нужен?
              Сообщение отредактировано: Qraizer -
                Цитата Qraizer @
                А смысл, если это всего-лишь рассширение Стандарта?


                Цитата Qraizer @
                Я так на них рассчитывал...

                ;)
                  Интересно, концепты пойдут в TR2 или TR3.
                    Цитата mas912 @
                    Интересно, концепты пойдут в TR2 или TR3.

                    Вопрос хороший. И вопрос еще лучше - а где посмотреть текущее состояние TR2? Гугл практически никаких ссылок не дает... :wall:
                      Самое последнее, что я видел, это C++ Library Working Group Status Report (Post San Francisco 2008) (N2870, там есть разделы "New Library Components Accepted into TR2", "New Library Components Planned for a Future TR", "Evolution of papers targetting future TRs".

                      Большинство предложений там из буста (filesystem, networking (boost.asio), ranges, etc.). Но это по библиотекам, а вот что по самому языку, мне неизвестно.
                      Сообщение отредактировано: mas912 -
                        Yes!
                        Цитата

                        Re: C++0x lambdas in 4.5?

                        * From: Jason Merrill <jason at redhat dot com>
                        * To: Kenny Simpson <theonetruekenny at yahoo dot com>
                        * Cc: gcc at gcc dot gnu dot org
                        * Date: Thu, 24 Sep 2009 10:44:38 -0400
                        * Subject: Re: C++0x lambdas in 4.5?
                        * References: <603843.64256.qm@web51508.mail.re2.yahoo.com>

                        On 09/22/2009 10:16 PM, Kenny Simpson wrote:

                        Will the lambda branch be merged into 4.5?


                        Yes.

                        Jason

                        http://gcc.gnu.org/ml/gcc/2009-09/msg00507.html
                          Поскольку в последнее время на форуме стали много поговаривать о хаках вокруг std::basic_string, не лишним будет заметить, что в стандарте планируются важные изменения насчёт строк:

                          1) непрерывность расположения элементов std::basic_string будет гарантироваться, как и в случае с std::vector:

                          Цитата N2914 - 21.4.1/3
                          The char-like objects in a basic_string object shall be stored contiguously. That is, for any basic_string object s, the identity &*(s.begin() + n) == &*s.begin() + n shall hold for all values of n such that 0 <= n < s.size().

                          Цитата 21.4.5
                          const_reference operator[](size_type pos) const;
                          reference operator[](size_type pos);

                          1 Returns: If pos < size(), returns *(begin() + pos). Otherwise, if pos == size(), the const version returns charT(). Otherwise, the behavior is undefined.

                          2) Copy-on-write реализации std::basic_string не будут допускаться. Как альтернатива std::basic_string, возможно, появится rope (или что-то похожее) с применением этой идиомы.

                          Подробности см. в N2668

                          Цитата 21.4.1/4
                          References, pointers, and iterators referring to the elements of a basic_string sequence may be invalidated
                          by the following uses of that basic_string object:
                          — as an argument to any standard library function taking a reference to non-const basic_string as an argument.234
                          — Calling non-const member functions, except operator[], at, front, back, begin, rbegin, end, and rend.

                          Если это дело примут, то хак вроде

                          ExpandedWrap disabled
                            #include <cstddef>
                            #include <iostream>
                            #include <string>
                             
                            int main()
                            {
                                std::size_t const size = 5;
                                std::string s(size, '\0');
                                std::cin.read(&s[0], size);  // undefined behavior in C++03, well-defined in C++0x
                                std::cout << s << std::endl;
                            }

                          перестанет быть хаком.
                          Сообщение отредактировано: Masterkent -
                            Цитата Masterkent @
                            2) Copy-on-write реализации std::basic_string не будут допускаться

                            Хммм... А из каких именно соображений, случаем, не знаешь?
                              Цитата archimed7592 @
                              Хммм... А из каких именно соображений, случаем, не знаешь?

                              В основном это связано с конкурентным доступом. По ссылке всё объяснено.

                              Правда, я пока так и не понял смысл предлагаемого определения c_str и data.
                              Сообщение отредактировано: Masterkent -
                                Цитата Masterkent @
                                Правда, я пока так и не понял смысл предлагаемого определения c_str и data.

                                Мда, похоже, не мне одному описание c_str и data в N2914 представляется неподходящим - см. issue 876. Вот это

                                Цитата
                                In 21.4.7.1 [string.accessors] replace the now common returns clause of c_str() and data() by the following three paragraphs:

                                Returns: A pointer p such that p+i == &operator[](i) for each i in [0, size()].

                                Throws: Nothing.

                                Complexity: Constant time.

                                уже как-то получше будет :whistle:
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (78) « Первая ... 22 23 [24] 25 26 ...  77 78


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0682 ]   [ 16 queries used ]   [ Generated: 20.06.25, 04:25 GMT ]