Login
базовая литература по программированию
NEW 04.09.06 01:01
Может быть чтобы ответить на такой вопрос:
И убедиться в том, что его можно откомпилировать только одним способом.
in Antwort scorpi_ 04.09.06 00:42
В ответ на:
Во-вторых, при ч╦м тут вс╦ это?
Во-вторых, при ч╦м тут вс╦ это?
Может быть чтобы ответить на такой вопрос:
В ответ на:
Видите ли, этот код в данном случае можно откомпилировать двумя способами - либо сравнивая double c double, либо int c int.
Видите ли, этот код в данном случае можно откомпилировать двумя способами - либо сравнивая double c double, либо int c int.
И убедиться в том, что его можно откомпилировать только одним способом.
NEW 04.09.06 01:07
in Antwort 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.
NEW 04.09.06 01:07
Прошу прощения за неясности. Конечно же 5.16 имеет отношение не к определению типа (left < right), а к определению типа (left < right ? right : left). Значение именно этого выражения возвращает return.
in Antwort voxel3d 04.09.06 00:57
В ответ на:
Вс╦ остальное описание в 5.16 - о правилах выведения типа конечного результата и к процессу вычисления первого логического выражения отношения не имеет.
Вс╦ остальное описание в 5.16 - о правилах выведения типа конечного результата и к процессу вычисления первого логического выражения отношения не имеет.
Прошу прощения за неясности. Конечно же 5.16 имеет отношение не к определению типа (left < right), а к определению типа (left < right ? right : left). Значение именно этого выражения возвращает return.
04.09.06 01:15
in Antwort igna 04.09.06 01:01
Мой вопрос относился ко всей серии Ваших постингов, которые к теме вообще непонятно каким образом относятся.
Во-вторых если учесть, что Вы С++ всё ж немного знаете, я расцениваю Ваши постинги как чистейший воды флейм, непонятно для чего затеянный, и непонятно что Вы хотели доказать...
В-третьих у нас всё же template arguments, а не просто conditional operator, поэтому весь Ваш флейм мимо кассы.
Во-вторых если учесть, что Вы С++ всё ж немного знаете, я расцениваю Ваши постинги как чистейший воды флейм, непонятно для чего затеянный, и непонятно что Вы хотели доказать...
В-третьих у нас всё же template arguments, а не просто conditional operator, поэтому весь Ваш флейм мимо кассы.
NEW 04.09.06 01:20
Вот этот вопрос?:
И какой же именно код в каком данном случае можно откомпилировать двумя способами?
in Antwort scorpi_ 04.09.06 01:15
В ответ на:
Мой вопрос относился ко всей серии Ваших постингов
Мой вопрос относился ко всей серии Ваших постингов
Вот этот вопрос?:
В ответ на:
Видите ли, этот код в данном случае можно откомпилировать двумя способами - либо сравнивая double c double, либо int c int.
Видите ли, этот код в данном случае можно откомпилировать двумя способами - либо сравнивая double c double, либо int c int.
И какой же именно код в каком данном случае можно откомпилировать двумя способами?
NEW 04.09.06 01:23
in Antwort scorpi_ 04.09.06 01:07, Zuletzt geändert 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.
Завтра на работе прочитаю, сейчас не буду стандарт выкачивать, спать пора. Хочу только сказать, что нифига к double не приводится у меня на gcc

p.s. В варианте с двумя шаблонными параметрами, который предложил igna.
Dropbox - средство синхронизации и бэкапа файлов.
NEW 04.09.06 01:28
in Antwort igna 04.09.06 01:20
<typename T> и так далее очевидно. У меня один template parameter и неясно чем ему быть. Короче твой код ill-formed, ибо компилятор не знает поставить ли ему T = int или T = double.
NEW 04.09.06 01:28
in Antwort scorpi_ 04.09.06 01:24
Нет, конечно, какие шаблоны в С? Я сказал GCC, т.к. это общее название для семейства компиляторов, а так, g++, конечно же использовался.
Dropbox - средство синхронизации и бэкапа файлов.
NEW 04.09.06 01:31
in Antwort 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;
}
NEW 04.09.06 01:38
Похоже, что стандартный 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?
in Antwort voxel3d 04.09.06 01:23
В ответ на:
Хочу только сказать, что нифига к double не приводится у меня на gcc , а вс╦ обрезается до int, если при вызове слева стоит int, a справа double.
Хочу только сказать, что нифига к 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?
NEW 04.09.06 01:39
in Antwort scorpi_ 04.09.06 01:31
Хм, я не знаю. Тут у тебя, похоже к double приводится левый операнд. У меня ругается: Warning: converting to `const int' from `double` на строке сравнения в шаблоне, т.е. там он приводит double к int.
Ладно, всем спокойной ночи.
Ладно, всем спокойной ночи.
Dropbox - средство синхронизации и бэкапа файлов.
NEW 04.09.06 01:40
in Antwort voxel3d 04.09.06 01:23
p.s. В варианте с двумя шаблонными параметрами, который предложил igna.
И что у тебя в качестве return type?
И что у тебя в качестве return type?
NEW 04.09.06 01:45
in Antwort igna 04.09.06 01:38
NEW 04.09.06 01:52
in Antwort scorpi_ 04.09.06 01:40
Блин, я тормоз
, ессно, левый тип.
Чёрт.
Я на автомате написал, чтобы компилилось. Бозо всяких auto.




Dropbox - средство синхронизации и бэкапа файлов.
NEW 04.09.06 02:10
Какой код, max(1, 1.1)? Конечно.
Но вот ты задал вопрос
в ответ на мое
in Antwort scorpi_ 04.09.06 01:28
В ответ на:
Короче твой код ill-formed, ибо компилятор не знает поставить ли ему T = int или T = double.
Короче твой код ill-formed, ибо компилятор не знает поставить ли ему T = int или T = double.
Какой код, max(1, 1.1)? Конечно.
Но вот ты задал вопрос
В ответ на:
Видите ли, этот код в данном случае можно откомпилировать двумя способами - либо сравнивая double c double, либо int c int. Вам какой из? Откуда должен компилятор знать, какой вариант Вас интересует?
Видите ли, этот код в данном случае можно откомпилировать двумя способами - либо сравнивая 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;
}
NEW 04.09.06 02:17
in Antwort igna 04.09.06 02:10
в ответ на моё
Я имел в виду свой код, так как твой некомпилируем. Пардон, если ввёл в заблуждение.
Я имел в виду свой код, так как твой некомпилируем. Пардон, если ввёл в заблуждение.
NEW 04.09.06 11:11
in Antwort Tomasson 01.09.06 09:35
NEW 04.09.06 12:32
in Antwort Tomasson 04.09.06 11:11, Zuletzt geändert 04.09.06 12:37 (igna)
Зато разговор на эту тему укрепляет тебя в своей правоте, разве не так?
В ответ на:
думаешь, имеет смысл новичку сразу С++ подсовывать?
Я б не стал.
думаешь, имеет смысл новичку сразу С++ подсовывать?
Я б не стал.