https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106223

--- Comment #7 from Nimrod <nimrodcowboy at gmail dot com> ---
(In reply to Jonathan Wakely from comment #5)
> That paragraph has nothing to do with your case, you are adding a
> specialization, not an explicit instantiation.

Sorry, I quoted the wrong paragraph. It should be
https://timsong-cpp.github.io/cppwp/n4659/namespace.std#2
"A program may add a template specialization for any standard library template
to namespace std only if the declaration depends on a user-defined type and the
specialization meets the standard library requirements for the original
template and is not explicitly prohibited"

> If the standard allows this nonsense then it needs to be fixed. std::move
> and std::forward are effectively built-in language primitives, and you
> should not be messing with them.

Basically agreed and I think it's fixed in C++20. So I'm talking about C++17
things.

Reply via email to