Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Инициализация объекта pair<T,T> без конструктора T 
V
    Опции темы
archimed7592
Дата 9.12.2007, 16:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 58
Всего: 93



UnrealMan, а как тебе предложение в будущем попробовать излагать информацию не как насмешку, а как повествование? Мне кажется, что в том, что кто-то чего-то не знает или в чём-то заблуждается нет ничего смешного.


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
Dims
Дата 9.12.2007, 16:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1016
Регистрация: 21.11.2006

Репутация: 1
Всего: 11



Цитата(Alek86 @ 7.12.2007,  16:24)
а можно полюбопытствовать в роли чего в
Код
pair<CSpecSizeModel,CSpecSizeModel> ans(CSpecSizeModel(i),CSpecSizeModel(i));

выступает i ?

Я всегда думал, что имя класса, за которым в скобках идут аргументы конструктора, создаёт в выражении временный объект с помощью соответствующего вызова конструктора.

Не так?

Добавлено через 1 минуту и 18 секунд
Цитата(UnrealMan @  7.12.2007,  16:17 Найти цитируемый пост)
Если конструктор CSpecSizeModel для i не является explicit

А что это значит?
PM MAIL   Вверх
archimed7592
Дата 9.12.2007, 16:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 58
Всего: 93



Цитата(Dims @  9.12.2007,  16:11 Найти цитируемый пост)
Не так?

Не всегда.
Код

int i = 5;
int j = int(i); // переменная
int f(int(i)); // ф-ция, принимающая int, возвращающая int

Очень хорошо объяснил bsa - советую прочитать. А ещё лучше прочитать указанную им книгу.


Цитата(Dims @  9.12.2007,  16:11 Найти цитируемый пост)
А что это значит? 

Код

struct A
{
  A(int)
  { }
};

struct B
{
  explicit B(int)
  { }
};

struct C
{
  explicit C(B)
  { }
};

int main()
{
  A a = 5; // ok
  B b1 = 5; // error
  B b2(5); // ok;
  C c1 = b2; // error
  C c2(b2); // ok
  int i = 5;
  C c3(B(i)); // ok, но это будет объявлением ф-ции
  C c4 = c3(b2); // ok
}

C c3(B i)
{
  return C(i);
}



--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
UnrealMan
Дата 9.12.2007, 16:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 722
Регистрация: 30.3.2006

Репутация: 27
Всего: 32



Цитата(archimed7592 @  9.12.2007,  16:05 Найти цитируемый пост)
Мне кажется, что в том, что кто-то чего-то не знает или в чём-то заблуждается нет ничего смешного. 

Вопрос: если человек чего-то не знает, то почему считает возможным вступать в спор? Зачем так рьяно выдавать свои домыслы за действительность? Может, лучше сначала посмотреть в стандарт? Или хотя бы научиться добавлять к своим словам "IMHO"? Ведь народ сюда приходит не за бабушкиными сказками, не так ли? 

Цитата(archimed7592 @  9.12.2007,  16:05 Найти цитируемый пост)
UnrealMan, а как тебе предложение в будущем попробовать излагать информацию не как насмешку, а как повествование?

А ты сам-то часто следуешь своему предложению? ;)

PM MAIL   Вверх
archimed7592
Дата 9.12.2007, 16:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 58
Всего: 93



Цитата(UnrealMan @  9.12.2007,  16:24 Найти цитируемый пост)
Вопрос: если человек чего-то не знает, то почему считает возможным вступать в спор? Зачем так рьяно выдавать свои домыслы за действительность? Может, лучше сначала посмотреть в стандарт? Или хотя бы научиться добавлять к своим словам "IMHO"? Ведь народ сюда приходит не за бабушкиными сказками, не так ли? 

Это уже проблемы конкретного человека. Только не вижу здесь ничего смешного. Если научишь как найти в этом смешное, то буду рад продлевать себе жизнь искренним смехом smile.


Цитата(UnrealMan @  9.12.2007,  16:24 Найти цитируемый пост)
А ты сам-то часто следуешь своему предложению? ;)

Нередко ;).


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
JackYF
Дата 9.12.2007, 16:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 18
Всего: 162



Цитата(UnrealMan @  9.12.2007,  15:58 Найти цитируемый пост)
Да шо вы говорите?

Что ни день, то открытия... Жаль...

Ладно.
Цитата(UnrealMan @  9.12.2007,  15:58 Найти цитируемый пост)
If the lvalue of type “cv1 B” is actually a sub-object of an object of type D, the lvalue refers to the enclosing object of type D. Otherwise, the result of the cast is undefined.

Будешь пользоваться таким приведением? Я - нет. UB'a мне только в коде не хватало. Но за инфу спасибо.

Цитата(UnrealMan @  9.12.2007,  15:58 Найти цитируемый пост)
выполняемое при помощи конструктора.

вот. главное, что никакого UB - чётко и ясно указано, с помощью какой функции будет произведено преобразование.



--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
UnrealMan
Дата 9.12.2007, 16:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 722
Регистрация: 30.3.2006

Репутация: 27
Всего: 32



Цитата(archimed7592 @  9.12.2007,  16:35 Найти цитируемый пост)
Это уже проблемы конкретного человека.

Когда таких конкретных людей много, это уже проблема форума, где на высказываемые мнения участников нельзя положиться.

Добавлено через 4 минуты и 42 секунды
Цитата(JackYF @  9.12.2007,  16:58 Найти цитируемый пост)
Будешь пользоваться таким приведением?

Буду, если оно точно сделает то, что я ожидаю.

Цитата(JackYF @  9.12.2007,  16:58 Найти цитируемый пост)
вот. главное, что никакого UB - чётко и ясно указано, с помощью какой функции будет произведено преобразование.

С помощью той же, что и для каст-нотации.
PM MAIL   Вверх
archimed7592
Дата 9.12.2007, 17:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 58
Всего: 93



Цитата(UnrealMan @  9.12.2007,  16:59 Найти цитируемый пост)
Когда таких конкретных людей много, это уже проблема форума, где на высказываемые мнения участников нельзя положиться. 


 ! 
archimed7592
Если тебя что-то не устраивает в форуме, то ты можешь обратиться в соответствующем разделе к администрации с конструктивными предложениями или просто жалобами.
Дальнейшее обсуждение здесь считаю недопустимым и расчитываю на твоё понимание.


Цитата
Буду, если оно точно сделает то, что я ожидаю.

Да ессно, это дело личных предпочтений. Некоторые считают, что лучше писать 0 == a, чем a == 0, тем самым минимизируя вероятность ошибки. Я таких ошибок не делаю уже года 4 и считаю излишним. О кастах сказать такого не могу - потому и не пользуюсь чем попало. Наверное у тебя огромный опыт, раз ты так легко и непринуждённо используешь их.


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
UnrealMan
Дата 9.12.2007, 17:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 722
Регистрация: 30.3.2006

Репутация: 27
Всего: 32



Цитата(archimed7592 @  9.12.2007,  17:09 Найти цитируемый пост)
Да ессно, это дело личных предпочтений.

downcast посредством dynamic_cast выполняется значительно медленее, чем посредством static_cast. Это несколько сказывается на предпочтениях...
PM MAIL   Вверх
archimed7592
Дата 9.12.2007, 17:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 58
Всего: 93



Цитата(UnrealMan @  9.12.2007,  17:23 Найти цитируемый пост)
Это несколько сказывается на предпочтениях... 

smile.

Да нет, когда делается static_cast ясно и понятно(с большой долей вероятности), что делающий осознаёт что делает(извиняюсь за масло масленное). Когда же делается опасный каст(которых, как оказалось два), не всегда понятно, здесь явно корректное приведение, или кто-то где-то облажался.


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
UnrealMan
Дата 9.12.2007, 17:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 722
Регистрация: 30.3.2006

Репутация: 27
Всего: 32



Цитата(archimed7592 @  9.12.2007,  17:28 Найти цитируемый пост)
Да нет, когда делается static_cast ясно и понятно(с большой долей вероятности), что делающий осознаёт что делает(извиняюсь за масло масленное).

JackYF, насколько я понял, имел в виду сравнение dynamic_cast vs static_cast.
PM MAIL   Вверх
archimed7592
Дата 9.12.2007, 18:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 58
Всего: 93



 smile.
specialized-cast vs c-cast.


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
JackYF
Дата 9.12.2007, 19:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 18
Всего: 162



Цитата(UnrealMan @  9.12.2007,  16:59 Найти цитируемый пост)
где на высказываемые мнения участников нельзя положиться.

Все могут ошибаться. Я был уверен, что static_cast<> не может делать приведения вниз по иерархии. Ошибся. Я и сейчас в недоумении, почему ему разрешено это делать, но со стандартом не поспоришь.

Цитата(UnrealMan @  9.12.2007,  16:59 Найти цитируемый пост)
Буду, если оно точно сделает то, что я ожидаю.

 smile Как можно точно сделать UB?..


Цитата(UnrealMan @  9.12.2007,  17:23 Найти цитируемый пост)
downcast посредством dynamic_cast выполняется значительно медленее, чем посредством static_

Знаешь, если в программе downcasting выполняется хоть сколько-либо значимое время, то, имхо, прогу давно пора переписывать.


Цитата(UnrealMan @  9.12.2007,  17:54 Найти цитируемый пост)
JackYF, насколько я понял, имел в виду сравнение dynamic_cast vs static_cast. 

сначала - нет, в последних постах - да.
Возможность того, что в результате преобразования я получу мусор, сводит на нет все теоретические скоростные показатели такого преобразования.


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
archimed7592
Дата 9.12.2007, 19:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 58
Всего: 93



Цитата(JackYF @  9.12.2007,  19:39 Найти цитируемый пост)
Возможность того, что в результате преобразования я получу мусор

Такая возможность есть почти везде. Ты ловишь исключения от new? smile


Цитата(JackYF @  9.12.2007,  19:39 Найти цитируемый пост)
Знаешь, если в программе downcasting выполняется хоть сколько-либо значимое время, то, имхо, прогу давно пора переписывать.

Неа. Downcasting static_cast'ом - распространённая практика, а вот dynamic_cast'ом - ИМХО, нужно переписывать smile.
Вообще говоря, dynamic и const пользовался раза 2-3 в жизни. А reinterpret вообще не юзал.


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
JackYF
Дата 9.12.2007, 20:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 18
Всего: 162



Цитата(archimed7592 @  9.12.2007,  19:45 Найти цитируемый пост)
Ты ловишь исключения от new?

После выброса исключения программа закрэшится, но не будет оперировать с мусором. Разница есть.

Цитата(archimed7592 @  9.12.2007,  19:45 Найти цитируемый пост)
Downcasting static_cast'ом - распространённая практика

К счастью, не сталкивался с таким.
Downcasting сам по себе в плюсах - вещь, использование которой желательно ограничивать...

Ты тоже будешь делать downcasting static_cast'ом?

P.S. Ребята, вы меня пугаете...



--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
Страницы: (5) Все 1 2 [3] 4 5 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0680 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.