1 // 2 // detail/push_options.hpp 3 // ~~~~~~~~~~~~~~~~~~~~~~~ 4 // 5 // Copyright (c) 2003-2015 Christopher M. Kohlhoff (chris at kohlhoff dot com) 6 // 7 // Distributed under the Boost Software License, Version 1.0. (See accompanying 8 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 9 // 10 11 // No header guard 12 13 #if defined(__COMO__) 14 15 // Comeau C++ 16 17 #elif defined(__DMC__) 18 19 // Digital Mars C++ 20 21 #elif defined(__INTEL_COMPILER) || defined(__ICL) || defined(__ICC) || defined(__ECC) 22 23 // Intel C++ 24 25 # if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4) 26 # pragma GCC visibility push (default) 27 # endif // (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4) 28 29 #else 30 31 // Clang 32 33 # if defined(__OBJC__) 34 # if !defined(__APPLE_CC__) || (__APPLE_CC__ <= 1) 35 # if !defined(ASIO_DISABLE_OBJC_WORKAROUND) 36 # if !defined(Protocol) && !defined(id) 37 # define Protocol cpp_Protocol 38 # define id cpp_id 39 # define ASIO_OBJC_WORKAROUND 40 # endif 41 # endif 42 # endif 43 # endif 44 45 # pragma GCC visibility push (default) 46 47 #endif 48