c++ - Templates :Name resolution:Dependent template arguments : -->can any one tell some more examples for this statement? -


this statement iso c++ standard 14.6.2.4: dependent template arguments :

  1. a type template-argument dependent if type specifies dependent.

  2. an integral non-type template-argument dependent if constant expression specifies value dependent.

  3. a non-integral non-type template-argument dependent if type dependent or has either of following forms , contains nested-name-specifier specifies class-name names dependent type.

  4. a template template-argument dependent if names template parameter or qualified-id nested-name-specifier contains class-name names dependent type.

i unable understand these points?

can 1 give examples these statements?

this understand. have marked individual code snippets in code inline marked according line numbers in op.

struct a{     void f(){} };  template<class t> struct b{};  // template argument b<t> type depdent on template parameter t                      (1) template<class t, class u = b<t> > struct t1{};  // template argument c value dependent on template non type parameter 'c'        (2) template<class t, char c, int d = c> struct t2{};  // 2nd template argument type depdent on template parameter t                    (3) template<class t, void (t::*p)(void) = &t::f> struct t3{};  // template template argument b type depdent on template parameter t             (4) template<class t, template<class u = t> class v = b> struct t4{};   int main(){     t1<int> t1;     t2<int, 'a', 2> t2;     t3<a> t3;     t4<a> t4;  } 

Comments

Popular posts from this blog

c++ - Convert big endian to little endian when reading from a binary file -

C#: Application without a window or taskbar item (background app) that can still use Console.WriteLine() -

unicode - Are email addresses allowed to contain non-alphanumeric characters? -