簡體   English   中英

C ++標准庫中的模板模板參數?

[英]Template Template Parameters in the C++ Standard Library?

C ++標准庫中的哪些模板(如果有)具有一個或多個模板模板參數?

如果有很多,那么幾個例子就可以了。

如果C ++版本很重要,那么最新的C ++ 14 / C ++ 1y草案就會得到優先考慮。

我不知道C ++標准庫中指定采用模板模板參數的任何模板,但C ++ 11中至少有一個標准模板具有模板模板參數的部分特化: std::pointer_traits std::pointer_traits<Ptr>::element_type指定為:

Ptr::element_type如果存在這樣的類型; 否則, T如果PtrSomePointer<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;
    };

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM