Вопросы с тегом «auto»

Ключевое слово `auto` было перепрофилировано в C ++ 11 для выведенного типа. При использовании для замены имени типа в объявлении инициализированной переменной переменной присваивается тот же тип, что и инициализатору. При использовании в качестве типа возврата тип возврата указывается как завершающий тип возврата или выводится из выражения возврата.

1
'auto' как заполнитель аргумента шаблона для параметра функции
C ++ 20 позволяет использовать autoдля параметра типа функции. Позволяет ли он также использовать autoв качестве заполнителя аргумента шаблона (не похоже, но в духе C ++ 17 template <auto> в некотором смысле) для типа параметра функции? Итак, следующий код, предварительно C ++ 20: template<typename First, typename Second> void printPair(const std::pair<First, …
22 c++  templates  auto  c++20 

6
Инициализация переменной неизвестного типа через перегруженные конструкторы в C ++
Исходя из опыта работы с Python, я немного боролся с работой с типами в C ++. Я пытаюсь инициализировать переменную класса через один из нескольких перегруженных конструкторов, которые принимают разные типы в качестве параметров. Я прочитал, что использование autoключевого слова может быть использовано для автоматического объявления переменной, однако в моем …

1
std :: pair <auto, auto> тип возвращаемого значения
Я играл с autoв std::pair. В приведенном ниже коде функция fдолжна возвращать std::pairтипы, которые зависят от параметра шаблона. Рабочий пример: Пример 1 template &lt;unsigned S&gt; auto f() { if constexpr (S == 1) return std::pair{1, 2}; // pair of ints else if constexpr (S == 2) return std::pair{1.0, 2.0}; // …

2
Несоответствующий вывод авто типов между различными компиляторами c ++
Итак, я пытаюсь реализовать точечный продукт ( https://en.wikipedia.org/wiki/Dot_product ) в какой-то разновидности современного C ++ и придумал следующий код: #include &lt;iostream&gt; template&lt;class... Args&gt; auto dot(Args... args) { auto a = [args...](Args...) { return [=](auto... brgs) { static_assert(sizeof...(args) == sizeof...(brgs)); auto v1 = {args...}, i1 = v1.begin(); auto v2 = {brgs...}, …
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.