Variadic templates

В С ++ існує можливість створення функції зі змінним числом аргументів. В С ++ 11 спосіб створення такої функції набув новий спосіб. Стало можливим задати шаблон зі змінною кількістю аргументів. Шаблони функцій - це така чудова річ, яка вміє підставляти типи під змінні всередині функції.

  • Шаблони зі змінним числом аргументів надають засіб створення шаблонних функцій і шаблонних класів, які беруть змінну кількість аргументів.

Це може бути корисним коли число параметрів для передачі у функцію заздалегідь невідомо. Напишемо простий код, який тільки виводить на екран змінні, віддані в шаблонну функцію.
Своєрідний прийом "HELLO WORLD" для можливості, що з'явилася.

Для початку опишемо просту шаблонну функцію

foo ( 2 . 4 . 6 . 8 . "Who do we" . string ( "appreciate)) ;

Бракує ковичкі

foo (2, 4, 6, 8, «who do we», string ( «appreciate));

Бракує ковичкі і простору імен (якщо мається на увазі std :: string)

Приклад з виведенням на екран і посчётом суми «з'їдає» останнє значення з пакета args
Так як воно передається в функцію з одним аргументом.

У першому прикладі: функція з одним аргументом виводить переклад нв новий рядок (більш очікувано, що вона виведе останній аргумент)

У другому прикладі: функція з одним аргументом повертає нуль, а більш очікувано, що вона допрібавляет останній елемент до загальної суми

Не знаю, баг це або усвідомлене рішення. Але імхо вийшло неочевидно

Це не баг. Я помилився при написанні.
Дивіться зараз.

останні теми

Випадкова книга в електронному форматі

Variadic templates

Ми повинні переконатися, що сайтом користується не робот. Для цього роздягніться догола і включіть wеb-камеру.

Висловлюю свою вдячність

  • Максиму дуже вдячний за вказівку на мої помилки і неточності.
  • Sergio ===> за надання допомоги у виправленні моїх помилок
  • Gen ===> за правильне прагнення допомогти іншим новачкам і виявлення моїх помилок