Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:12:11

0001 #ifndef FWCore_Framework_make_shared_noexcept_false_h
0002 #define FWCore_Framework_make_shared_noexcept_false_h
0003 #include <memory>
0004 namespace edm {
0005   template <typename T, typename... Args>
0006   std::shared_ptr<T> make_shared_noexcept_false(Args&&... args) {
0007 #if defined(__APPLE__)
0008     // libc++ from Apple Clang does not allow non-default destructors
0009     // in some cases the destructor uses noexcept(false).
0010     return std::shared_ptr<T>(new T(std::forward<Args>(args)...));
0011 #else
0012     return std::make_shared<T>(std::forward<Args>(args)...);
0013 #endif
0014   }
0015 }  // namespace edm
0016 #endif