Как частичная специализация шаблонной переменной позволяет вычислить признак для типов с заданной структурой?
База Hintsage
Программирование C++
Язык C++ и его модель выполнения.
Темы раздела
Выберите подраздел
- 0 вопросов
Общие вопросы
Смешанные вопросы по C++.
Открыть раздел - 50 вопросов
C++ Core
Синтаксис, типы, функции, классы и базовая семантика C++.
Открыть раздел - 50 вопросов
Управление памятью
RAII, время жизни объектов, указатели и владение ресурсами.
Открыть раздел - 50 вопросов
STL и контейнеры
Контейнеры, итераторы, алгоритмы и их сложность.
Открыть раздел - 50 вопросов
Шаблоны
Templates, специализация, вывод типов и метапрограммирование.
Открыть раздел - 50 вопросов
Многопоточность
Потоки, синхронизация, атомики и модель памяти C++.
Открыть раздел - 50 вопросов
Современный C++
Возможности стандартов C++11 и новее и идиоматичный код.
Открыть раздел
Практика
Вопросы: Программирование C++
При наличии двух частичных специализаций шаблона класса, подходящих одному типу, как ограничение concept влияет на выбор более специализированной специализации в C++20?
Покажите, как разворачивание параметр-пака в списке базовых классов формирует тип, наследующийся от каждого элемента пака.
При вызове функции-шаблона с явно указанным типом параметра почему аргумент другого типа иногда принимается через неявное преобразование?
Как шаблон-шаблонный параметр с одним типовым параметром может принять шаблон с дополнительным параметром по умолчанию?
В метапрограмме на шаблонах: каким образом базовая специализация прекращает рекурсивное вычисление типа?
При проектировании API нужно, чтобы тип выводился только из первого аргумента, а второй лишь проверялся после вывода. Какой тип T будет выбран и что напечатает программа?
#include <iostream>
#include <type_traits>
template<class T>
void check(T value, std::type_identity_t<T> limit) {
std::cout << (std::is_same_v<T, int> ? "int" : "other");
}
int main() {
check(7, 2.5);
}
Определите, при каких условиях свёртка параметр-пака без начального значения остаётся корректной, если пакет пуст.
Можно ли при выводе параметра шаблонной функции рассчитывать на неявное преобразование производного класса к базовому?
В C++20 библиотечный шаблон принимает объект как нетиповой параметр: какие свойства типа делают такой объект допустимым и однозначно идентифицируют специализацию?
На каком основании два экземпляра шаблона с разными нетиповыми значениями считаются разными типами?
Разберите выбор перегрузки и назовите вывод программы. Как механизм частичного упорядочивания шаблонов влияет на вызов 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);
}
В библиотечном адаптере нужно принять шаблон контейнера без создания его объекта. Какой вид параметра шаблона для этого используют?
Передача braced-init-list в шаблонную функцию: почему по нему обычно нельзя вывести тип параметра?
Что определяет место диагностики ошибки при ограничении шаблона концептом вместо SFINAE?
Представьте библиотечный шаблон, определённый в заголовочном файле: какой механизм позволяет вынести его инстанцирование в один исходный файл, сохранив обычные вызовы шаблона?
В шаблонном метапрограммировании: почему std::conditional_t не защищает от ошибки в невыбранном типе, если этот тип уже некорректен при формировании аргументов?
Сравнение: в каких случаях выбор через частичную специализацию шаблона класса принципиально отличается от выбора через if constexpr?
За счёт какого механизма средство void_t превращает отсутствие вложенного типа в признак, а не в ошибку компиляции?
Объясни механизм ограничения частичной специализации псевдонима шаблона в C++.
Показано 121–140 из 300