Index: boost/smart_ptr/shared_ptr.hpp =================================================================== --- boost/smart_ptr/shared_ptr.hpp (revision 78094) +++ boost/smart_ptr/shared_ptr.hpp (working copy) @@ -665,6 +665,37 @@ #if !defined(BOOST_SP_NO_ATOMIC_ACCESS) +#if defined(BOOST_INTEL) + +#pragma push_macro("atomic_is_lock_free") +#undef atomic_is_lock_free + +#pragma push_macro("atomic_load") +#undef atomic_load + +#pragma push_macro("atomic_load_explicit") +#undef atomic_load_explicit + +#pragma push_macro("atomic_store") +#undef atomic_store + +#pragma push_macro("atomic_store_explicit") +#undef atomic_store_explicit + +#pragma push_macro("atomic_exchange") +#undef atomic_exchange + +#pragma push_macro("atomic_exchange_explicit") +#undef atomic_exchange_explicit + +#pragma push_macro("atomic_compare_exchange") +#undef atomic_compare_exchange + +#pragma push_macro("atomic_compare_exchange_explicit") +#undef atomic_compare_exchange_explicit + +#endif // #if defined(BOOST_INTEL) + template inline bool atomic_is_lock_free( shared_ptr const * /*p*/ ) { return false; @@ -738,6 +769,20 @@ return atomic_compare_exchange( p, v, w ); // std::move( w ) } +#if defined(BOOST_INTEL) + +#pragma pop_macro("atomic_is_lock_free") +#pragma pop_macro("atomic_load") +#pragma pop_macro("atomic_load_explicit") +#pragma pop_macro("atomic_store") +#pragma pop_macro("atomic_store_explicit") +#pragma pop_macro("atomic_exchange") +#pragma pop_macro("atomic_exchange_explicit") +#pragma pop_macro("atomic_compare_exchange") +#pragma pop_macro("atomic_compare_exchange_explicit") + +#endif // #if defined(BOOST_INTEL) + #endif // !defined(BOOST_SP_NO_ATOMIC_ACCESS) // hash_value