Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

базовая литература по программированию

1635  1 2 3 4 5 6 7 8 9 10 все
igna завсегдатай04.09.06 01:01
NEW 04.09.06 01:01 
в ответ scorpi_ 04.09.06 00:42
В ответ на:
Во-вторых, при ч╦м тут вс╦ это?

Может быть чтобы ответить на такой вопрос:
В ответ на:
Видите ли, этот код в данном случае можно откомпилировать двумя способами - либо сравнивая double c double, либо int c int.

И убедиться в том, что его можно откомпилировать только одним способом.
#61 
  scorpi_ скептик04.09.06 01:07
NEW 04.09.06 01:07 
в ответ voxel3d 04.09.06 00:57
Это 5.9.2 - Relational operators The usual arithmetic conversions are performed on operands of arithmetic or enumeration type. Так что всё равно всё приводится к double.
#62 
igna завсегдатай04.09.06 01:07
NEW 04.09.06 01:07 
в ответ voxel3d 04.09.06 00:57
В ответ на:
Вс╦ остальное описание в 5.16 - о правилах выведения типа конечного результата и к процессу вычисления первого логического выражения отношения не имеет.

Прошу прощения за неясности. Конечно же 5.16 имеет отношение не к определению типа (left < right), а к определению типа (left < right ? right : left). Значение именно этого выражения возвращает return.
#63 
  scorpi_ скептик04.09.06 01:15
NEW 04.09.06 01:15 
в ответ igna 04.09.06 01:01
Мой вопрос относился ко всей серии Ваших постингов, которые к теме вообще непонятно каким образом относятся.
Во-вторых если учесть, что Вы С++ всё ж немного знаете, я расцениваю Ваши постинги как чистейший воды флейм, непонятно для чего затеянный, и непонятно что Вы хотели доказать...
В-третьих у нас всё же template arguments, а не просто conditional operator, поэтому весь Ваш флейм мимо кассы.
#64 
igna завсегдатай04.09.06 01:20
NEW 04.09.06 01:20 
в ответ scorpi_ 04.09.06 01:15
В ответ на:
Мой вопрос относился ко всей серии Ваших постингов

Вот этот вопрос?:
В ответ на:
Видите ли, этот код в данном случае можно откомпилировать двумя способами - либо сравнивая double c double, либо int c int.

И какой же именно код в каком данном случае можно откомпилировать двумя способами?
#65 
voxel3d коренной житель04.09.06 01:23
voxel3d
NEW 04.09.06 01:23 
в ответ scorpi_ 04.09.06 01:07, Последний раз изменено 04.09.06 01:33 (voxel3d)
> Это 5.9.2 - Relational operators The usual arithmetic conversions are performed on operands of arithmetic or enumeration type. Так что всё равно всё приводится к double.
Завтра на работе прочитаю, сейчас не буду стандарт выкачивать, спать пора. Хочу только сказать, что нифига к double не приводится у меня на gcc , а всё обрезается до int, если при вызове слева стоит int, a справа double.
p.s. В варианте с двумя шаблонными параметрами, который предложил igna.

Dropbox - средство синхронизации и бэкапа файлов.
#66 
  scorpi_ скептик04.09.06 01:24
NEW 04.09.06 01:24 
в ответ voxel3d 04.09.06 01:23
То бишь в С?
#67 
  scorpi_ скептик04.09.06 01:28
NEW 04.09.06 01:28 
в ответ igna 04.09.06 01:20
<typename T> и так далее очевидно. У меня один template parameter и неясно чем ему быть. Короче твой код ill-formed, ибо компилятор не знает поставить ли ему T = int или T = double.
#68 
voxel3d коренной житель04.09.06 01:28
voxel3d
NEW 04.09.06 01:28 
в ответ scorpi_ 04.09.06 01:24
Нет, конечно, какие шаблоны в С? Я сказал GCC, т.к. это общее название для семейства компиляторов, а так, g++, конечно же использовался.
Dropbox - средство синхронизации и бэкапа файлов.
#69 
  scorpi_ скептик04.09.06 01:31
NEW 04.09.06 01:31 
в ответ voxel3d 04.09.06 01:28
g++ у меня вполне законно выдаёт 0 в этом коде:
В ответ на:
#include <iostream>
int main()
{
int i = 1;
double d = 1.1;
std::cout << ( i >= d ) << std::endl;
}


#70 
igna завсегдатай04.09.06 01:38
NEW 04.09.06 01:38 
в ответ voxel3d 04.09.06 01:23
В ответ на:
Хочу только сказать, что нифига к double не приводится у меня на gcc , а вс╦ обрезается до int, если при вызове слева стоит int, a справа double.

Похоже, что стандартный C от C++ в этом месте не отличается:
6.5.8 Relational operators
. . .
3 If both of the operands have arithmetic type, the usual arithmetic conversions are performed.
А точно, (1 < 1.1) gcc вычисляет как 0 или false?
#71 
voxel3d коренной житель04.09.06 01:39
voxel3d
NEW 04.09.06 01:39 
в ответ scorpi_ 04.09.06 01:31
Хм, я не знаю. Тут у тебя, похоже к double приводится левый операнд. У меня ругается: Warning: converting to `const int' from `double` на строке сравнения в шаблоне, т.е. там он приводит double к int.
Ладно, всем спокойной ночи.
Dropbox - средство синхронизации и бэкапа файлов.
#72 
  scorpi_ скептик04.09.06 01:40
NEW 04.09.06 01:40 
в ответ voxel3d 04.09.06 01:23
p.s. В варианте с двумя шаблонными параметрами, который предложил igna.
И что у тебя в качестве return type?
#73 
  scorpi_ скептик04.09.06 01:45
NEW 04.09.06 01:45 
в ответ igna 04.09.06 01:38
А точно, (1 < 1.1) gcc вычисляет как 0 или false?
Как 1. g++ из последнего MinGW
#74 
voxel3d коренной житель04.09.06 01:52
voxel3d
NEW 04.09.06 01:52 
в ответ scorpi_ 04.09.06 01:40
Блин, я тормоз , ессно, левый тип. Чёрт. Я на автомате написал, чтобы компилилось. Бозо всяких auto.
Dropbox - средство синхронизации и бэкапа файлов.
#75 
igna завсегдатай04.09.06 02:10
NEW 04.09.06 02:10 
в ответ scorpi_ 04.09.06 01:28
В ответ на:
Короче твой код ill-formed, ибо компилятор не знает поставить ли ему T = int или T = double.

Какой код, max(1, 1.1)? Конечно.
Но вот ты задал вопрос
В ответ на:
Видите ли, этот код в данном случае можно откомпилировать двумя способами - либо сравнивая double c double, либо int c int. Вам какой из? Откуда должен компилятор знать, какой вариант Вас интересует?

в ответ на мое
В ответ на:

Будет ли считаться читающим мысли компилятор способный откомпилировать следующее:
template<class T1, class T2> inline
const auto& max( const T1& left, const T2& right )
{
return left < right ? right : left;
}


#76 
  scorpi_ скептик04.09.06 02:17
NEW 04.09.06 02:17 
в ответ igna 04.09.06 02:10
в ответ на моё
Я имел в виду свой код, так как твой некомпилируем. Пардон, если ввёл в заблуждение.
#77 
igna завсегдатай04.09.06 02:24
NEW 04.09.06 02:24 
в ответ scorpi_ 04.09.06 02:17
А, ладно. Спокойной ночи.
#78 
Tomasson завсегдатай04.09.06 11:11
Tomasson
NEW 04.09.06 11:11 
в ответ Tomasson 01.09.06 09:35
*Господа, вы звери!* /с/ :-)
С каждым новым сообщением вы меня пугаете все больше и больше...
#79 
igna завсегдатай04.09.06 12:32
NEW 04.09.06 12:32 
в ответ Tomasson 04.09.06 11:11, Последний раз изменено 04.09.06 12:37 (igna)
Зато разговор на эту тему укрепляет тебя в своей правоте, разве не так?
В ответ на:
думаешь, имеет смысл новичку сразу С++ подсовывать?
Я б не стал.

#80 
1 2 3 4 5 6 7 8 9 10 все