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

This is the statement from ISO C++ Standard 14.6.2.4: Dependent template arguments :

  1. A type template-argument is dependent if the type it specifies is dependent.

  2. An integral non-type template-argument is dependent if the constant expression it specifies is value dependent.

  3. A non-integral non-type template-argument is dependent if its type is dependent or it has either of the following forms and contains a nested-name-specifier which specifies a class-name that names a dependent type.

  4. A template template-argument is dependent if it names a template parameter or is a qualified-id with a nested-name-specifier which contains a class-name that names a dependent type.

I am unable to understand these points?

Can any one give examples for these statements?

Answers


This is what I understand. I have marked the individual code snippets in the code inline marked according to the line numbers in the OP.

struct A{
    void f(){}
};

template<class T> struct B{};

// The template argument B<T> is TYPE depdent on the template parameter T                      (1)
template<class T, class U = B<T> > struct T1{};

// The template argument c is VALUE dependent on the template non type parameter 'c'        (2)
template<class T, char c, int d = c> struct T2{};

// The 2nd template argument is TYPE depdent on the template parameter T                    (3)
template<class T, void (T::*p)(void) = &T::f> struct T3{};

// The template template argument B is TYPE depdent on the 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; 
}

Need Your Help

Excel workday calculation

excel vlookup

I am using the following formula for a workday calculation where GB bank holidays are listed in sheet 'Bank Holidays' cell range B13:Z13.

Emacs: highlighting TODO *only* in comments

emacs comments elisp highlighting todo

This question is related to another one, Emacs :TODO indicator at left side. I recently came across a minor mode I like a lot called FixmeMode. It supports auto highlighting of TODO marks, and navi...