模板 - 非推导的上下文 - 规则

时间:2012-09-07 22:03:29

标签: c++ templates c++11

我现在开始使用模板。关于模板参数的非推导上下文的页面(在最新的c ++草案中)很难理解。你知道更容易理解和记住规则吗?

  

非弱势语境是:

     

使用qualified-id指定的类型的嵌套名称说明符。   一种类型,它是一个template-id,其中一个或多个template-arguments是一个引用模板参数的表达式。

     

如果以包含非弱化上下文的方式指定类型名称,则包含该类型名称的所有类型也不会受到限制。但是,复合类型可以包括推导类型和非推导类型。 [示例:如果类型指定为A<T>::B<T2>,则TT2都不受限制。同样,如果某个类型指定为A<I+J>::X<T>,则IJT不会被限制。如果将类型指定为void f(typename A<T>::B, A<T>),则T中的A<T>::B未受到限制,但推导出T中的A<T>。 ]

对我来说这是适合初学者的东西。我无法想象如果没有对演绎的深入了解,某人能够正确理解模板。

0 个答案:

没有答案