This is the mail archive of the gcc-help@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: GCC support for C++ noexcept


On Mon, Jul 27, 2015 at 10:58 AM, Jonathan Wakely <jwakely.gcc@gmail.com> wrote:
> On 27 July 2015 at 15:36, Jeffrey Walton wrote:
>> __GXX_EXPERIMENTAL_CXX0X breaks on Apple platforms and some Clang
>> based gear. Been there, done that....
>
> Breaks in what way?

You are the one who helped me through it years ago :)

It breaks the compile. You helped us with the out GXX_EXPERIMETAL
guard. testing on Apple and Clang revealed the need for the inner
guard (from https://code.google.com/p/owasp-esapi-cplusplus/source/browse/trunk/esapi/util/zAllocator.h):

#if defined(__GXX_EXPERIMENTAL_CXX0X__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
        // Why is Apple defining __GXX_EXPERIMENTAL_CXX0X__
# if !(defined(ESAPI_OS_APPLE) || defined(ESAPI_OS_ANDROID))
        template<typename U, typename... Args>
        void construct(U* p, Args&&... a)
        {
            ::new ((void*)p) U(std::forward<Args>(a)...);
        }

        template<typename U>
        void destroy(U* p)
        {
            ASSERT(p);
            if(p)
                p->~U();
        }
# endif
#endif

Jeff


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]