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.