В С ++ існує можливість створення функції зі змінним числом аргументів. В С ++ 11 спосіб створення такої функції набув новий спосіб. Стало можливим задати шаблон зі змінною кількістю аргументів. Шаблони функцій - це така чудова річ, яка вміє підставляти типи під змінні всередині функції.
- Шаблони зі змінним числом аргументів надають засіб створення шаблонних функцій і шаблонних класів, які беруть змінну кількість аргументів.
Це може бути корисним коли число параметрів для передачі у функцію заздалегідь невідомо. Напишемо простий код, який тільки виводить на екран змінні, віддані в шаблонну функцію.
Своєрідний прийом "HELLO WORLD" для можливості, що з'явилася.
Для початку опишемо просту шаблонну функцію
foo ( span> 2 span> . span> 4 span> . span> 6 span> . span> 8 span> . span> "Who do we" span> . span> string span> ( span> "appreciate)) ; span>
Бракує ковичкі
foo (2, 4, 6, 8, «who do we», string ( «appreciate));
Бракує ковичкі і простору імен (якщо мається на увазі std :: string)
Приклад з виведенням на екран і посчётом суми «з'їдає» останнє значення з пакета args
Так як воно передається в функцію з одним аргументом.
У першому прикладі: функція з одним аргументом виводить переклад нв новий рядок (більш очікувано, що вона виведе останній аргумент)
У другому прикладі: функція з одним аргументом повертає нуль, а більш очікувано, що вона допрібавляет останній елемент до загальної суми
Не знаю, баг це або усвідомлене рішення. Але імхо вийшло неочевидно
Це не баг. Я помилився при написанні.
Дивіться зараз.
останні теми
Випадкова книга в електронному форматі
Ми повинні переконатися, що сайтом користується не робот. Для цього роздягніться догола і включіть wеb-камеру.
Висловлюю свою вдячність
- Максиму дуже вдячний за вказівку на мої помилки і неточності.
- Sergio ===> за надання допомоги у виправленні моїх помилок
- Gen ===> за правильне прагнення допомогти іншим новачкам і виявлення моїх помилок