Hi Adel,

I've got your Solaris fixes and my (minor) changes up on
 https://github.com/alanconway/qpid-proton/tree/absolaris

I'd like Andrew to take a look (he's back tomorrow), unless he has
anything to add I'll commit them.

Cheers,
Alan.

On Mon, 2016-10-17 at 20:03 +0000, Adel Boutros wrote:
> Hello Alan,
> 
> No, it isn't a necessary fix (change from T*).
> 
> However, we compiled this code on linux using GCC 4.9.1 and we didn't
> get any error on the master. I wonder which version of gcc you are
> using which revealed this error?
> 
> Regards,
> Adel
> 
> Ps: The original issue here is that CC doesn't handle constructors
> with "..." correctly which is here the case of sfinae::wildcard(...)
> 
> Get Outlook for Android
> 
> 
> 
> On Mon, Oct 17, 2016 at 9:48 PM +0200, "Alan Conway" <aconway@redhat.
> com> wrote:
> 
> Hi Adel,
> 
> I've put a workaround for one GCC problem on https://github.com/alanc
> on
> way/qpid-proton/tree/absolaris, otherwise I'm happy with this. I'll
> wait for Andrew's OK and then commit if he's happy.
> 
> One question: this makes GCC choke:
> 
> index b1aff89..5285e4b 100644
> --- a/proton-c/bindings/cpp/include/proton/codec/encoder.hpp
> +++ b/proton-c/bindings/cpp/include/proton/codec/encoder.hpp
> @@ -175,14 +175,14 @@ namespace is_encodable_impl {   // Protected
> the
> world from wildcard operator<<
>  
>  using namespace internal;
>  
> -sfinae::no operator<<(sfinae::wildcard, sfinae::wildcard); //
> Fallback
> +sfinae::no operator<<(encoder const&, const sfinae::any_t &); //
> Fallback
>  
>  template<typename T> struct is_encodable : public sfinae {
> -    static yes test(encoder);
> +    static yes test(encoder&);
>      static no test(...);         // Failed test, no match.
> -    static encoder* e;
> -    static const T* t;
> -    static bool const value = sizeof(test(*e << *t)) == sizeof(yes);
> +    static encoder& e;
> +    static const T& t;
> ^^^^^^^THIS LINE^^^^^^^
> +    static bool const value = sizeof(test(e << t)) == sizeof(yes);
>  };
>  
> Is the change from T* to T& required to compile on Solaris? If not I
> would probably revert it, but if it is needed then the workaround
> seems
> to be OK. Windows & clang compilers don't have any problem so I
> suspect
> this is GCC's fault.
> 
> Cheers,
> Alan.


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org

Reply via email to