六个点在可变参数模板中意味着什么?

chy*_*hys 32 c++ templates partial-specialization variadic-templates c++11

以下是来自libstdc ++的一些部分特化:std::is_function<type_traits>

  /// is_function
  template<typename>
    struct is_function
    : public false_type { };

  template<typename _Res, typename... _ArgTypes>
    struct is_function<_Res(_ArgTypes...)>
    : public true_type { };

  template<typename _Res, typename... _ArgTypes>
    struct is_function<_Res(_ArgTypes...) &>
    : public true_type { };

  template<typename _Res, typename... _ArgTypes>
    struct is_function<_Res(_ArgTypes...) &&>
    : public true_type { };

  template<typename _Res, typename... _ArgTypes>
    struct is_function<_Res(_ArgTypes......)>
    : public true_type { };

  template<typename _Res, typename... _ArgTypes>
    struct is_function<_Res(_ArgTypes......) &>
    : public true_type { };

  template<typename _Res, typename... _ArgTypes>
    struct is_function<_Res(_ArgTypes......) &&>
    : public true_type { };
Run Code Online (Sandbox Code Playgroud)

最后三个部分专业是什么意思,它们与前三个有什么不同?我尝试......在C++ 14规范中搜索,但没有找到任何有用的东西.