|
31 / 17 / 5
Регистрация: 18.07.2013
Сообщений: 220
|
||||||||||||||||||||||||||||||||||||||||||||||
Объясните принцип шаблона Common_type14.11.2016, 17:35. Показов 2244. Ответов 4
Метки нет (Все метки)
Читал шаблоны из распространённых библиотек и наткнулся на
Но
Для чего тогда была записана длинная версия?
0
|
||||||||||||||||||||||||||||||||||||||||||||||
| 14.11.2016, 17:35 | |
|
Ответы с готовыми решениями:
4
Возвращаемый тип шаблона через std::common_type Принцип инициализации статических членов шаблона класса Объясните принцип |
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,818
|
|
| 14.11.2016, 20:49 | |
Сообщение было отмечено Archi0 как решение
Решение
Archi0, у тебя шаблон как называется?
Правильно - common_type.Это значит, что выбирается общий тип между двумя переданными. Поэтому твое предположение про использование только _Ty1 сломает логику, это уже чисто на интуиции должно было сработать ![]() Само условие "всегда false" нужно для того, чтобы condition expression ?: вывел нам из двух своих операндов общий тип. Condition expression использует стандартные преобразования (арифметические преобразования, преобразования указателей и др., см. в стандарте детали), если типы различаются. И это не всегда будет один из типов операндов. Например, для выражения decltype(false ? short(1) : char(2)) выведен будет int.
3
|
|
|
31 / 17 / 5
Регистрация: 18.07.2013
Сообщений: 220
|
||||||
| 15.11.2016, 04:44 [ТС] | ||||||
|
В чем отличие от
0
|
||||||
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,818
|
||||||||||||||||||
| 15.11.2016, 09:05 | ||||||||||||||||||
declval().declval() у нас реализован так:
int[2], то будет ошибка компиляции, т.к. массивы нельзя возвращать по значению. Также, аргументом шаблона могут быть типы с отсутствующим (удаленным или помещенным в private) конструктором копирования, и это тоже приведет к ошибке компиляции в случае использования такого declval(). Поэтому используется ссылка. Например, благодаря этому, можно вывести общий тип для двух массивов:
2
|
||||||||||||||||||
|
31 / 17 / 5
Регистрация: 18.07.2013
Сообщений: 220
|
||||||
| 15.11.2016, 15:47 [ТС] | ||||||
|
Дополнение к работе ?:, чтобы тема была полностью раскрыта.
попробовал код снизу
0
|
||||||
| 15.11.2016, 15:47 | |
|
Помогаю со студенческими работами здесь
5
Объясните принцип создания многопоточности объясните принцип работы цикла : ? Объясните принцип бинарного поиска Объясните принцип работы программы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
|
Оттенки серого
Argus19 18.03.2026
Оттенки серого
Нашёл в интернете 3 прекрасных модуля:
Модуль класса открытия диалога открытия/ сохранения файла на Win32 API;
Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
|
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога
Финальные проекты на Си и на C++:
finish-rectangles-sdl3-c. zip
finish-rectangles-sdl3-cpp. zip
|
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие.
Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
|
|
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ВВЕДЕНИЕ
Выполняя задание на управление насосной группой заполнения резервуара,. . .
|
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|