1 // Copyright (C) 2014, Andrzej Krzemienski. 2 // 3 // Use, modification, and distribution is subject to the Boost Software 4 // License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 5 // http://www.boost.org/LICENSE_1_0.txt) 6 // 7 // See http://www.boost.org/libs/optional for documentation. 8 // 9 // You are welcome to contact the author at: 10 // [email protected] 11 // 12 #ifndef BOOST_BAD_OPTIONAL_ACCESS_22MAY2014_HPP 13 #define BOOST_BAD_OPTIONAL_ACCESS_22MAY2014_HPP 14 15 #include <stdexcept> 16 #if __cplusplus < 201103L 17 #include <string> // to make converting-ctor std::string(char const*) visible 18 #endif 19 20 namespace boost { 21 22 #if defined(__clang__) 23 # pragma clang diagnostic push 24 # pragma clang diagnostic ignored "-Wweak-vtables" 25 #endif 26 27 class bad_optional_access : public std::logic_error 28 { 29 public: bad_optional_access()30 bad_optional_access() 31 : std::logic_error("Attempted to access the value of an uninitialized optional object.") 32 {} 33 }; 34 35 #if defined(__clang__) 36 # pragma clang diagnostic pop 37 #endif 38 39 } // namespace boost 40 41 #endif 42