Hi,
template <class X> void f() {}
template <> void f<int>() {}
COMPILES
struct S {
template <class X> void f() {}
template <> void f<int>() {}
};
--> error: explicit specialization of 'f' in class scope
FUCKING RETARDED
WOW IT REALLY MAKES SENSE THAT THIS WORKS AT GLOBAL SCOPE BUT NOT IN-CLASS
struct S {
template <class X> struct Inner {};
template <> struct Inner<int> {};
};
--> error: explicit specialization of 'Inner' in class scope
FUCKING RETARDED
struct S {
template <class X, class = void> struct Inner {};
template <class bullshit> struct Inner<int, bullshit> {};
};
WOW, RETARDS, WORKS WITH A STUPID-RETARDED WORKAROUND
struct S {
template <class X, class=void> void f() {}
template <class bullshit> void f<int, bullshit>() {}
};
--> function template partial specialization is not allowed
FUCKING RETARDED
WOW THE RETARDED WORKAROUND DOESN'T WORK FOR FUNCTIONS
template <class X> void f(X x) {}
template <class X> void f(X* x) {}
OH, OK THIS GOOD
template <class X, class Y> void f() {}
template <class Y> void f<int, Y>() {}
--> function template partial specialization is not allowed
FUCKING RETARDED.
I don't even want to hear 1 piece of bullshit out of a single one of you people's mouths about this one.
If you give me one piece of bullshit, you're a fucking n00b.
Every one of these things is used for metaprogramming.
After 15 years of awareness about these problems, nothing was fixed.
And now with C++14, yet another oversight release, we're heading for 20 years of fucking retardation.
Thank you standards body people for your retarded level of awareness, you fucking retards.
Can you fix the holes you fucking retards?