Возможный дубликат:
Что означает токен?
Существует относительно новый способ прямого указания типов функций (по крайней мере, в качестве параметров шаблона). Не знаю, строго ли это С++ 11, но я столкнулся с этим, читая заголовки STL GCC 4.7.
Это вот так:
std::function<void(int, char**)> f;
И вот, в заголовочном файле <functional>
я вижу следующее:
template <typename R, typename... A>
struct SomeStruct<R(A...)> { /* */ };
Это понятно: явная специализация SomeStruct
для типов функций с типом возвращаемого значения R
и типами аргументов A
.
Но рассмотрите это объявление (в следующей строке):
template <typename R, typename... A>
struct SomeStruct<R(A......)> { /* */ };
Что означает это двойное многоточие?