Line data Source code
1 : //
2 : // Copyright (c) 2025 Vinnie Falco (vinnie.falco@gmail.com)
3 : //
4 : // Distributed under the Boost Software License, Version 1.0. (See accompanying
5 : // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
6 : //
7 : // Official repository: https://github.com/cppalliance/capy
8 : //
9 :
10 : #include <boost/capy/error.hpp>
11 :
12 : namespace boost {
13 : namespace capy {
14 :
15 : namespace detail {
16 :
17 : const char*
18 26 : error_cat_type::
19 : name() const noexcept
20 : {
21 26 : return "boost.capy";
22 : }
23 :
24 : std::string
25 26 : error_cat_type::
26 : message(int code) const
27 : {
28 52 : return message(code, nullptr, 0);
29 : }
30 :
31 : char const*
32 26 : error_cat_type::
33 : message(
34 : int code,
35 : char*,
36 : std::size_t) const noexcept
37 : {
38 26 : switch(static_cast<error>(code))
39 : {
40 0 : case error::eof: return "eof";
41 0 : case error::canceled: return "operation canceled";
42 26 : case error::test_failure: return "test failure";
43 0 : case error::stream_truncated: return "stream truncated";
44 0 : default:
45 0 : return "unknown";
46 : }
47 : }
48 :
49 : //-----------------------------------------------
50 :
51 : // msvc 14.0 has a bug that warns about inability
52 : // to use constexpr construction here, even though
53 : // there's no constexpr construction
54 : #if defined(_MSC_VER) && _MSC_VER <= 1900
55 : # pragma warning( push )
56 : # pragma warning( disable : 4592 )
57 : #endif
58 :
59 : #if defined(__cpp_constinit) && __cpp_constinit >= 201907L
60 : constinit error_cat_type error_cat;
61 : #else
62 : error_cat_type error_cat;
63 : #endif
64 :
65 : #if defined(_MSC_VER) && _MSC_VER <= 1900
66 : # pragma warning( pop )
67 : #endif
68 :
69 : } // detail
70 :
71 : } // capy
72 : } // boost
|