On Mon, Jul 27, 2015 at 10:58 AM, Jonathan Wakely <jwakely.gcc@xxxxxxxxx> 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