Line data Source code
1 : #ifndef BOOST_SMART_PTR_BAD_WEAK_PTR_HPP_INCLUDED 2 : #define BOOST_SMART_PTR_BAD_WEAK_PTR_HPP_INCLUDED 3 : 4 : // MS compatible compilers support #pragma once 5 : 6 : #if defined(_MSC_VER) && (_MSC_VER >= 1020) 7 : # pragma once 8 : #endif 9 : 10 : // 11 : // boost/smart_ptr/bad_weak_ptr.hpp 12 : // 13 : // Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd. 14 : // 15 : // Distributed under the Boost Software License, Version 1.0. (See 16 : // accompanying file LICENSE_1_0.txt or copy at 17 : // http://www.boost.org/LICENSE_1_0.txt) 18 : // 19 : 20 : #include <boost/config.hpp> 21 : #include <exception> 22 : 23 : #ifdef __BORLANDC__ 24 : # pragma warn -8026 // Functions with excep. spec. are not expanded inline 25 : #endif 26 : 27 : namespace boost 28 : { 29 : 30 : // The standard library that comes with Borland C++ 5.5.1, 5.6.4 31 : // defines std::exception and its members as having C calling 32 : // convention (-pc). When the definition of bad_weak_ptr 33 : // is compiled with -ps, the compiler issues an error. 34 : // Hence, the temporary #pragma option -pc below. 35 : 36 : #if defined(__BORLANDC__) && __BORLANDC__ <= 0x564 37 : # pragma option push -pc 38 : #endif 39 : 40 : #if defined(BOOST_CLANG) 41 : // Intel C++ on Mac defines __clang__ but doesn't support the pragma 42 : # pragma clang diagnostic push 43 : # pragma clang diagnostic ignored "-Wweak-vtables" 44 : #endif 45 : 46 0 : class bad_weak_ptr: public std::exception 47 : { 48 : public: 49 : 50 0 : virtual char const * what() const BOOST_NOEXCEPT_OR_NOTHROW 51 : { 52 0 : return "tr1::bad_weak_ptr"; 53 : } 54 : }; 55 : 56 : #if defined(BOOST_CLANG) 57 : # pragma clang diagnostic pop 58 : #endif 59 : 60 : #if defined(__BORLANDC__) && __BORLANDC__ <= 0x564 61 : # pragma option pop 62 : #endif 63 : 64 : } // namespace boost 65 : 66 : #ifdef __BORLANDC__ 67 : # pragma warn .8026 // Functions with excep. spec. are not expanded inline 68 : #endif 69 : 70 : #endif // #ifndef BOOST_SMART_PTR_BAD_WEAK_PTR_HPP_INCLUDED