Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
некоторые маразмы шаблонов и переносимости (просто интересно)
|
|||
|---|---|---|---|
|
#18+
сегодня столкнулся Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. угадайте почему =) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2017, 14:16 |
|
||
|
некоторые маразмы шаблонов и переносимости (просто интересно)
|
|||
|---|---|---|---|
|
#18+
Тухлый Толиксегодня столкнулся Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. угадайте почему =) Что-то непонятно. namespace не указан? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2017, 14:38 |
|
||
|
некоторые маразмы шаблонов и переносимости (просто интересно)
|
|||
|---|---|---|---|
|
#18+
+1 злосчастный. мой clang тоже не хочет компилировать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2017, 14:44 |
|
||
|
некоторые маразмы шаблонов и переносимости (просто интересно)
|
|||
|---|---|---|---|
|
#18+
Тухлый Толик, Зачем такой сложный пример. Вот простой )) Код: plaintext 1. 2. std::min выводит тип аргументов, а это невозможно одновременно с неявным приведением типов. (Точнее возможно, но насколько помню не определено стандартом) Обойти можно либо явно инстанцируя std::min, либо я вно приведя типы аргументов к одному. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2017, 15:52 |
|
||
|
некоторые маразмы шаблонов и переносимости (просто интересно)
|
|||
|---|---|---|---|
|
#18+
Да, и надеюсь понятно, что short + 1 дает int )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2017, 15:58 |
|
||
|
некоторые маразмы шаблонов и переносимости (просто интересно)
|
|||
|---|---|---|---|
|
#18+
Интересно... а если заменить функции числами, то нету падения компилятора. и вот так, тоже нет: Код: plaintext 1. Получается, gcc слишком умный? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2017, 16:05 |
|
||
|
некоторые маразмы шаблонов и переносимости (просто интересно)
|
|||
|---|---|---|---|
|
#18+
CEMbПолучается, gcc слишком умный? :) ИМХО слишком дотошный. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2017, 16:09 |
|
||
|
некоторые маразмы шаблонов и переносимости (просто интересно)
|
|||
|---|---|---|---|
|
#18+
наверное хорошо, что gcc так делает ,это учит кодеров знать и соблюдать стандарт. если компилятор будет позволять очень много, то полуится как с html - написано не правильно, но работет почему-то ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2017, 23:01 |
|
||
|
некоторые маразмы шаблонов и переносимости (просто интересно)
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyТухлый Толик, Зачем такой сложный пример. Вот простой )) Код: plaintext 1. 2. std::min выводит тип аргументов, а это невозможно одновременно с неявным приведением типов. (Точнее возможно, но насколько помню не определено стандартом) Обойти можно либо явно инстанцируя std::min, либо я вно приведя типы аргументов к одному. Ещё проще пример надо, а то же видно не все тут понимают, что константа 1 по умолчанию int :) Код: plaintext 1. Просто запрещено сравнивать разные типы, чтобы мягкое с теплым не сравнивали. Кто хочет сравнить - приводит к общему типу через static_cast, который видно за километр, и сам себе злобный буратино если short переполниться раньше, или тем более если кто-то начнет сравнивать unsigned с signed. http://www.cplusplus.com/doc/tutorial/constants/ 75 // int 75u // unsigned int 75l // long 75ul // unsigned long 75lu // unsigned long И GCC падает: http://coliru.stacked-crooked.com/a/8c7232d1ffb09d3c И Clang падает: http://coliru.stacked-crooked.com/a/0205cac221f68fe2 Стандарт приводит код, в котором - оба значения обязаны быть одного типа T обязательно, и ещё 4 уточнения, всё. http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/n4606.pdf 25.5.7 Minimum and maximum [alg.min.max] template<class T> constexpr const T& min(const T& a, const T& b); template<class T, class Compare> constexpr const T& min(const T& a, const T& b, Compare comp); 1 Requires: For the first form, type T shall be LessThanComparable (Table 19). 2 Returns: The smaller value. 3 Remarks: Returns the first argument when the arguments are equivalent. 4 Complexity: Exactly one comparison. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2017, 00:03 |
|
||
|
некоторые маразмы шаблонов и переносимости (просто интересно)
|
|||
|---|---|---|---|
|
#18+
MSVS 2013 и MSVS 2015 тоже естественно это Г не компилируют. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2017, 00:13 |
|
||
|
некоторые маразмы шаблонов и переносимости (просто интересно)
|
|||
|---|---|---|---|
|
#18+
Dima TCEMbПолучается, gcc слишком умный? :) ИМХО слишком дотошный. На практике, clang находит больше ошибок в коде (причем явных ошибок), чем gcc. Не могу говорить, за все версии, конечно, но та, что стоит на rhel 7.2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2017, 08:13 |
|
||
|
некоторые маразмы шаблонов и переносимости (просто интересно)
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyДа, и надеюсь понятно, что short + 1 дает int ))Непонятно, точнее неочевидно. Точнее, когда все время пользуешься неявным выводом типов и привык, а тут надо про это забыть, и начинается е**я "cannot match...2 страницы текста" И прогресс в это области - неверная подсказка типа "может быть вы имели в виду ....еще 2 страницы текста" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2017, 11:11 |
|
||
|
некоторые маразмы шаблонов и переносимости (просто интересно)
|
|||
|---|---|---|---|
|
#18+
Тухлый Толик, Передавать аргументы можно любые, проверка типов будет на момент инстанцирования. Поведение вполне очевидное, а какое собственно вы ещё хотели ожидать поведение? Любое другое будет неочевидным. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2017, 22:46 |
|
||
|
некоторые маразмы шаблонов и переносимости (просто интересно)
|
|||
|---|---|---|---|
|
#18+
SiemarglAnatoly MoskovskyДа, и надеюсь понятно, что short + 1 дает int ))Непонятно, точнее неочевидно. Точнее, когда все время пользуешься неявным выводом типов и привык, а тут надо про это забыть, и начинается е**я "cannot match...2 страницы текста" И прогресс в это области - неверная подсказка типа "может быть вы имели в виду ....еще 2 страницы текста" По определению в качестве аргументов будут переданы типы при объявлении. Каждый аргумент имеет свой конкретный тип данных. Можно конечно написать что-то свое, наверное использовать RTTI или еще какие-то механизмы, но это тоже не очевидно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2017, 22:51 |
|
||
|
|

start [/forum/topic.php?fid=57&tid=2018274]: |
0ms |
get settings: |
12ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
39ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
| others: | 272ms |
| total: | 407ms |

| 0 / 0 |
