Boost logo

Boost Users :

Subject: Re: [Boost-users] [log] Unable to use own severity struct encapsulated in namespace
From: Sebastian Messerschmidt (sebastian.messerschmidt_at_[hidden])
Date: 2018-04-06 07:39:29


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
> <boost-users_at_[hidden] <mailto:boost-users_at_[hidden]>> 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_attributes.cpp
> <https://www.boost.org/doc/libs/1_58_0/libs/log/example/doc/tutorial_attributes.cpp>
>
> _______________________________________________
> Boost-users mailing list
> Boost-users_at_[hidden] <mailto:Boost-users_at_[hidden]>
> https://lists.boost.org/mailman/listinfo.cgi/boost-users
> <https://lists.boost.org/mailman/listinfo.cgi/boost-users>
>
> _______________________________________________
> Boost-users mailing list
> Boost-users_at_[hidden] <mailto:Boost-users_at_[hidden]>
> https://lists.boost.org/mailman/listinfo.cgi/boost-users
> <https://lists.boost.org/mailman/listinfo.cgi/boost-users>
>
>
>
>
> _______________________________________________
> Boost-users mailing list
> Boost-users_at_[hidden]
> https://lists.boost.org/mailman/listinfo.cgi/boost-users
>


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net