Hi Richard, Thank you for the insight and clarifications. The problem with this is certainly, that as an user you're left unaware, that the compiler didn't pick your specialized overload, since enums are still sort of glorified integers when it comes to types. Cheers Sebastain >
On 4 April 2018 at 11:24, Sebastian Messerschmidt via Boost-users
mailto:boost-users@lists.boost.org> wrote: I've solved the issue:
In case anyone is interested: You need to put the ostream& operator<< into the namespace of the severity-enum to make it work.
This is called ADL - Argument Dependent Lookup.
When c++ encounters a namespace-unqualified function call, it will consider the current namespace, the global namespace, and the namespaces enclosing the _/type/_ of each of the function's arguments.
For this reason, it's good practice to declare all free functions (including operators) that operate on user defined types in the namespace of those types.
Cheers Sebastian > Hi folks,
When taking this example [1] and modifying the enum 'severity_level' like this:
namespace x { struct test { enum severity_level { normal, notification, warning, error, critical }; }; }
and replacing all references to severity_level with the appropriate x::test::severity_level the 'operator<<' overload for the severity_level is not issued. Can anyone help me with this one?
I can supply the complete modified example if needed
Cheers Sebastian
[1] https://www.boost.org/doc/libs/1_58_0/libs/log/example/doc/tutorial_attribut... https://www.boost.org/doc/libs/1_58_0/libs/log/example/doc/tutorial_attribut...
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org mailto:Boost-users@lists.boost.org https://lists.boost.org/mailman/listinfo.cgi/boost-users https://lists.boost.org/mailman/listinfo.cgi/boost-users
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org mailto:Boost-users@lists.boost.org https://lists.boost.org/mailman/listinfo.cgi/boost-users https://lists.boost.org/mailman/listinfo.cgi/boost-users
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org https://lists.boost.org/mailman/listinfo.cgi/boost-users