Объясните пожалуйста, что означает данная конструкция:
template
А именно, в списке параметров ф-ии с 6-ю точками _ArgTypes......
Поясню:
Есть шаблон, перегруженный специализациями, для определения того что аргумент является функцией:
template
template
// а здесь передается по ссылке, функц. объект
template
Понятно что ф-ии могут иметь произвольное кол-во аргументов (от нуля до какого-то числа, возможно ограниченного только размером стека, это не важно) - это всё понятно, а вот синтаксис с ...... не понятен, и к сожалению в литературе и гугле не смог найти ответа на свой вопрос.
Спасибо.
Ответ
Три точки - variadic templates, еще три точки - переменное количество аргументов.
(примерно перевожу отсюда) Т.е. на этапе компиляции шаблон получает переменное количество шаблонных аргументов, после этого, вдобавок, инстанцированные методы/функции получают возможность принимать произвольное количество аргументов в стиле языка C.
...... можно записать как ..., ... - что более читабельно, кстати.
на английском многоточие называется ellipsis ...
google://c++ ellipsis template recursion
вкратце - используется для передачи произвольного количества аргументов шаблону на этапе компиляции.
почитать здесь: http://eli.thegreenplace.net/2014/variadic-templates-in-c/
Комментариев нет:
Отправить комментарий