C++ Logo

STD-DISCUSSION

Advanced search

Subject: C++ 20: Member templates. Is there a typo in the following example?
From: Vladimir Grigoriev (vlad.moscow_at_[hidden])
Date: 2019-08-21 10:41:25


In the p.#2 of the section "13.6.2 Member templates" there is the following example

template <class T>struct A {
   void f(int);
   template <class T2> void f(T2);
}; 

template <> void A<int>::f(int) { } // non-template member function
template <> template <> void A<int>::f<>(int) { } // member function template specialization

int main() {
   A<char> ac;
   ac.f(1); // non-template
   ac.f(’c’); // template
   ac.f<>(1); // template
} 

However there is no definition for example for the specialization of the non-template function for A<char>. So the code is invalid. That is the compiler will issue an error.

Should the template specializations be done in this example for A<char> instead of A<int>?

With best regards,
Vlad from Moscow

You can meet me at http://cpp.forum24.ru/ or www.stackoverflow.com or http://ru.stackoverflow.com



STD-DISCUSSION list run by herb.sutter at gmail.com

Older Archives on Google Groups