C++标准库中的哪些模板(如果有)具有一个或多个模板模板参数?
如果有很多,那么几个例子就可以了.
如果C++版本很重要,那么最新的C++ 14/C++ 1y草案就会得到优先考虑.
我不知道C++标准库中指定采用模板模板参数的任何模板,但C++ 11中至少有一个标准模板具有模板模板参数的部分特化:std::pointer_traits.std::pointer_traits<Ptr>::element_type被指定为:
Ptr::element_type如果存在这样的类型; 否则,TifPtr是表单的模板实例化SomePointer<T, Args>,其中Args是零个或多个类型参数; 否则,专业化是不正确的.
为了实现这一点,你需要一个模板模板参数SomePointer,因为它可以是一个任意的类模板(只要它只有类型模板参数,确切地说).这是执行此操作的libstdc ++帮助程序类部分特化,例如:
template<template<typename, typename...> class _SomePtr, typename _Tp,
typename... _Args>
struct __ptrtr_elt_type<_SomePtr<_Tp, _Args...>, false>
{
typedef _Tp __type;
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
272 次 |
| 最近记录: |