В шаблоне класса есть частичные специализации для указателя на произвольный тип и для указателя на константный тип. Какая специализация будет выбрана для указателя на const int и почему?
База Hintsage
Шаблоны
Templates, специализация, вывод типов и метапрограммирование.
Практика
Вопросы: Шаблоны
Как вывод типов для forwarding reference позволяет шаблонной функции сохранить категорию переданного аргумента?
Объясни механизм: зачем перед зависимым квалифицированным именем в шаблоне требуется ключевое слово typename?
Что происходит с шаблонной перегрузкой, если подстановка выведенных типов делает её параметр некорректным?
Разбор последствий: почему тип шаблонного параметра, встречающийся только в возвращаемом типе функции, не выводится из контекста присваивания?
Чем отличается вывод типа шаблонного параметра по значению от вывода по ссылке, если аргументом является массив?
В практической ситуации: почему при создании объекта шаблонного класса тип его параметра иногда нельзя вывести из аргументов конструктора, и какую роль в этом играют руководства вывода?
При разработке библиотеки: почему частичная специализация шаблона класса, объявленная после его первого использования, не может надёжно изменить выбранную реализацию?
В чём проявляется ограничение явной специализации функции-шаблона при выборе перегрузки?
В шаблонной функции вызов зависит от параметра типа. Как двухфазный поиск имён определяет, какие функции могут участвовать в таком вызове?
Объясни механизм ограничения частичной специализации псевдонима шаблона в C++.
За счёт какого механизма средство void_t превращает отсутствие вложенного типа в признак, а не в ошибку компиляции?
Сравнение: в каких случаях выбор через частичную специализацию шаблона класса принципиально отличается от выбора через if constexpr?
В шаблонном метапрограммировании: почему std::conditional_t не защищает от ошибки в невыбранном типе, если этот тип уже некорректен при формировании аргументов?
Представьте библиотечный шаблон, определённый в заголовочном файле: какой механизм позволяет вынести его инстанцирование в один исходный файл, сохранив обычные вызовы шаблона?
Что определяет место диагностики ошибки при ограничении шаблона концептом вместо SFINAE?
Передача braced-init-list в шаблонную функцию: почему по нему обычно нельзя вывести тип параметра?
В библиотечном адаптере нужно принять шаблон контейнера без создания его объекта. Какой вид параметра шаблона для этого используют?
Разберите выбор перегрузки и назовите вывод программы. Как механизм частичного упорядочивания шаблонов влияет на вызов f(&value)?
#include <iostream>
template<class T>
void f(T) { std::cout << "general"; }
template<class T>
void f(T*) { std::cout << "pointer"; }
int main() {
int value = 0;
f(&value);
}
На каком основании два экземпляра шаблона с разными нетиповыми значениями считаются разными типами?
Показано 1–20 из 50