![]() |
|
Модераторы: xvr |
![]()
|
|
| volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 2 Всего: 85 |
Если не работает
string s = input; то не должен работать и = string( input ); в обоих случаях вызывается конструктор string( const char* ) это явно кривой компилер. У вас под линухом видимо это нармально, господа линуксоиды ??? |
|||
|
||||
| Zerstroer |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 285 Регистрация: 8.8.2007 Где: Алма-Ата Репутация: нет Всего: 3 |
*ловит камень летящий в огород*
Да самый лучший компилер! gpp/g++! Это у вас неподлинуксом нормально когда
А линукс система до крайностей адекватная! Вот придёт borisbn и всё разъяснит! Ладно, считаю дальнейшую палемику нежелательным флудом. -------------------- In silico |
|||
|
||||
| borisbn |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: нет Всего: 135 |
во всех компиляторах, которые я знаю, это - одно и то же !!! Zerstroer, у тебя, скорее всего, какой-то ну очень древний компилятор... тем более, что
по стандарту как раз обратное преобразование невозможно. а вот char * -> const char * - это не просто нормально, а супернормально. -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
||||
|
|||||
| volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 2 Всего: 85 |
string s = string( input );
здесь что происходит. сначала создается временный объект string, назовём его t t = string( input ); потом создается объект s. s (t); а в строчке string s = input; никаких временных объектов не создается. и дело проходит за 1 шаг вместо 2-ух. привет линуксоидам!!! |
|||
|
||||
| borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: нет Всего: 135 |
линухоидов тоже не люблю, но, думаю, что cl.exe, что gcc разберуться и тупо один раз вызовут конструктор для вновь создаваемого объекта. впрочем ничего не мешает проверить: включить компиляцию через ассемблер - и вперёд -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
| volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 2 Всего: 85 |
borisbn, да дело не в оптимизаторе.
почему в принципе нужно писать лишний код, и надеяться что оптимизатор это исправит? |
|||
|
||||
| borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: нет Всего: 135 |
лишний - не нужно, а писать понятнее для самого себя - обязательно! даже если знаешь, что оптимизатор не исправит -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
| volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 2 Всего: 85 |
borisbn, ну здесь не могу не согласиться.
Zerstroer, а вам все-же посоветую сменить компилер. к линуксоидам, кстати, я нормально отношусь. |
|||
|
||||
| bsa |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 16 Всего: 196 |
нет, это ненормально. У меня проблем с конвертацией char* в const char * никогда не было. Итак, есть два вида конструкторов.implicit и explicit. Все конструкторы по умолчанию implicit. Это значит, что код:
Если бы конструктор string::string(const char *) был бы объявлен так: explicit string(const char *); то первый вариант просто бы не скомпилировался. А вот код:
|
||||
|
|||||
![]()
|
| Правила форума "С/С++: Программирование под Unix/Linux" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |