Great news!! Thanks for your efforts.

Once they are merged, we can test them with the following configuration:

* Linux: GCC 4.9.1

* Solaris SunOS x86: SunStudio 12.1

* Solaris SunOS sparc: SunStudio 12.1

Regards,
Adel

________________________________
From: Alan Conway <acon...@redhat.com>
Sent: Tuesday, October 18, 2016 7:24:33 PM
To: Adel Boutros; dev
Cc: Andrew Stitcher; rabih.prom...@gmail.com
Subject: Re: [Proton-c][Solaris][SunStudio-2.1] Compiling Qpid Proton-c and C++ 
bindings on Solaris


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.

Reply via email to