В функции-шаблоне нужно получить длину встроенного массива без отдельного аргумента. Как выводится нетиповой параметр из массива, переданного по ссылке?
База Hintsage
Программирование C++
Язык C++ и его модель выполнения.
Темы раздела
Выберите подраздел
- 0 вопросов
Общие вопросы
Смешанные вопросы по C++.
Открыть раздел - 50 вопросов
C++ Core
Синтаксис, типы, функции, классы и базовая семантика C++.
Открыть раздел - 50 вопросов
Управление памятью
RAII, время жизни объектов, указатели и владение ресурсами.
Открыть раздел - 50 вопросов
STL и контейнеры
Контейнеры, итераторы, алгоритмы и их сложность.
Открыть раздел - 50 вопросов
Шаблоны
Templates, специализация, вывод типов и метапрограммирование.
Открыть раздел - 50 вопросов
Многопоточность
Потоки, синхронизация, атомики и модель памяти C++.
Открыть раздел - 50 вопросов
Современный C++
Возможности стандартов C++11 и новее и идиоматичный код.
Открыть раздел
Практика
Вопросы: Программирование C++
Как меняется тип возвращаемого значения шаблонной функции при использовании decltype(auto), если имя локальной переменной заменить выражением в скобках?
В C++20 нужно сохранить все аргументы шаблонной функции внутри одной лямбды. Как разворачивается пакет в init-capture и что напечатает программа?
#include <iostream>
#include <utility>
template<class... Ts>
void print(Ts&&... xs) {
auto lambda = [...ys = std::forward<Ts>(xs)] {
return (ys + ...);
};
std::cout << lambda();
}
int main() {
print(1, 2, 3);
}
Как разрешается конфликт между полной и частичной специализациями шаблона класса, если обе подходят одному типу?
Разбор последствий: почему два логически эквивалентных ограничения шаблонов могут не определить, какой из них более специализирован?
В шаблонном коде нужно проверить наличие операции до её использования. Как requires-выражение превращает проверку корректности в логическое условие?
Как вывод типа по параметру функции-значению обрабатывает верхнеуровневые const и volatile аргумента?
В библиотечном коде нужно передать элементы std::tuple функции как отдельные аргументы. Как std::index_sequence связывает индексы кортежа с разворачиванием параметр-пака?
Разберите механизм template<auto V>: почему tag<42> и tag<42u> становятся разными специализациями?
#include <type_traits>
template<auto V>
struct tag {};
static_assert(!std::is_same_v<tag<42>, tag<42u>>);
Объясните механизм: почему функция, определённая как friend внутри шаблонного класса, обычно не находится обычным поиском имени, но вызывается через ADL?
В практической ситуации шаблонная функция принимает указатель на функцию, а аргументом передают имя перегруженной функции. От чего зависит успешность вывода типа?
Свяжите значение, вычисленное шаблоном, с его типовым представлением: какую роль здесь играет std::integral_constant?
Что происходит при выводе одного параметра шаблона по двум аргументам, если полученные типы несовместимы?
При инстанцировании шаблонного класса когда ошибка в теле его функции-члена становится ошибкой компиляции?
Рассмотрите вывод аргументов шаблона класса для объекта, переданного в конструктор копирования: почему вывод сохраняет исходную специализацию, а не вкладывает её параметр повторно?
Почему функции-шаблоны нельзя частично специализировать?
При обращении к шаблону, имя которого зависит от параметра типа, зачем перед ним требуется ключевое слово template?
Предскажите результат компиляции: может ли компилятор вывести T из значения аргумента функции по умолчанию?
#include <iostream>
template<class T>
void emit(T value = T{}) {
std::cout << sizeof(T);
}
int main() {
emit();
}
Разбор последствий: почему без зависимого от параметра условия static_assert(false) может сделать шаблон непригодным даже при выборе другой ветки?
Предскажите, будет ли выведен тип шаблонного параметра, если он встречается внутри квалифицированного имени параметра функции.
Показано 101–120 из 300