Re[4]: Заполнение std::map
От: ArtDenis Россия  
Дата: 06.12.09 06:45
Оценка:
Здравствуйте, igna, Вы писали:

I>В VC9 тем не менее сначала конструируется map::value_type, затем при вставлении копируется в node, после чего сконструированное значение уничтожается. То есть избавились от make_pair, но избыточное копирование оставили.

Ну, если учесть, что избыточные копирования убираются оптимизатором компилятора...
[ 🎯 Дартс-лига Уфы | 🌙 Программа для сложения астрофото ]
Re[5]: Заполнение std::map
От: igna Россия  
Дата: 06.12.09 09:23
Оценка:
Здравствуйте, ArtDenis, Вы писали:

AD>Ну, если учесть, что избыточные копирования убираются оптимизатором компилятора...


Действительно, компилятору разрешено убирать избыточные копирования в некоторых случаях, но рассматриваемый случай к ним не относится.
Re[8]: make_pair принимает аргументы по-значению
От: igna Россия  
Дата: 06.12.09 09:28
Оценка:
Здравствуйте, Caracrist, Вы писали:

C>А мы теперь с этим кривым и стандартным работаем...


Ну так а где в C++ или в стандартной библиотеке некриво?
Re[8]: make_pair принимает аргументы по-значению
От: gear nuke  
Дата: 08.12.09 04:36
Оценка:
Здравствуйте, Caracrist, Вы писали:

C>Короче, кто-то поленился реализовать:


C>
C>    iterator insert(const typename value_type::first_type &_First, const typename value_type::second_type& _Second);
C>// и трансформеры...
C>    template<typename T, int N>
C>    iterator insert(const T(&_First)[N], const typename  value_type::second_type& _Second) 
C>    { 
C>        return insert((const typename value_type::first_type)(_First),_Second);
C>    }
C>    template<typename T, int N>
C>    iterator insert(const  typename value_type::first_type &_First,const T(&_Second)[N]) 
C>    { 
C>        return insert(_First,(const  typename value_type::second_type )(_Second));
C>    }
C>    template<typename T1, typename T2, int N1, int N2>
C>    iterator insert(const T1(&_First)[N1],const T2(&_Second)[N2]) 
C>    { 
C>        return insert((const  typename value_type::first_type )(_First),(const  typename value_type::second_type )(_Second));
C>    }
C>

C>А мы теперь с этим кривым и стандартным работаем...

А как предлагешь поступить с завершающим '\0' в asciiz стрках?
Как быть с другими типами, где 0й элемент может иметь иной смысл?
.
People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird (c) D.Knuth
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.