Требование типа в C++
Требование типа записывают как
typename T::имя внутри requires.
Компилятор проверяет, что имя существует и
обозначает тип. Зададим концепт для контейнеров
с value_type и выведем первый элемент
вектора:
#include <iostream>
#include <vector>
template<typename T>
concept HasValueType = requires {
typename T::value_type;
};
template<HasValueType C>
typename C::value_type front_copy(C container) {
return container.front();
}
int main() {
std::vector<int> data{10, 20, 30};
std::cout << front_copy(data) << "\n";
return 0;
}
Объявите концепт с typename T::value_type.
Напишите шаблон, возвращающий size
у std::vector<double>, и выведите
число элементов после добавления 3
значений через фигурный список.