- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
static int
_S_compare(size_type __n1, size_type __n2)
{
const difference_type __d = difference_type(__n1 - __n2);
if (__d > __gnu_cxx::__numeric_traits<int>::__max)
return __gnu_cxx::__numeric_traits<int>::__max;
else if (__d < __gnu_cxx::__numeric_traits<int>::__min)
return __gnu_cxx::__numeric_traits<int>::__min;
else
return int(__d);
}
Dummy00001 01.05.2013 19:09 # −3
absolut 02.05.2013 08:07 # +11
defecate-plusplus 02.05.2013 15:41 # +2
но на кой ляд, сравнивая два size_type (вероятно, 64-битных), получать 32-битный int в виде их разницы...
LispGovno 02.05.2013 20:15 # +1
bormand 02.05.2013 20:23 # +4
P.S. __или_просто::__слишком_мало<подчеркиваний>::__в_тексте.
Soul_re@ver 02.05.2013 21:35 # +4
http://gcc.gnu.org/ml/libstdc++/2007-04/msg00106.html
Чтобы не тянуть весь limits который даёт +30 кб.
LispGovno 03.05.2013 09:34 # 0
defecate-plusplus 03.05.2013 13:19 # 0
LispGovno 03.05.2013 14:54 # 0
Я даже за если бы это был отдельный трейт для целых типов типа std::integral_limits или std::integer_limits, кроме стандартного с функциями.
В итоге в gcc с его numeric_traits так и сделали как я говорю, но стандарт неумолим, так что в своем коде этим пользоваться нельзя, поэтому приходится компайлтайм проверки переносить в рантайм. Глупо.
LispGovno 03.05.2013 14:55 # 0
defecate-plusplus 03.05.2013 16:13 # +3
LispGovno 03.05.2013 16:31 # 0
defecate-plusplus 03.05.2013 16:44 # +4
в стандарт лезу только когда надо найти ответы на твои вопросы
LispGovno 03.05.2013 17:17 # 0
LispGovno 03.05.2013 17:18 # 0
Все равно ты очень крут. Подумай над моим предложением.
bormand 03.05.2013 17:23 # +6
> Подумай над моим предложением.
Так ты, оказывается, интеловский HR и ищешь тут новых работников? :)
defecate-plusplus 03.05.2013 17:36 # +4
От радости в зобу дыханье сперло, -
И на приветливы Лисицыны слова
Ворона каркнула во все воронье горло
absolut 04.05.2013 09:00 # +5
Дописывает свой стандарт, отвечая на вопросы юзверей.
Soul_re@ver 03.05.2013 13:43 # 0
LispGovno 03.05.2013 14:55 # 0