C++ Logo

std-discussion

Advanced search

C++ 20: Member templates. Is there a typo in the following example?

From: Vladimir Grigoriev <vlad.moscow_at_[hidden]>
Date: Wed, 21 Aug 2019 18:41:25 +0300
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

Received on 2019-08-21 10:43:30