]> git.proxmox.com Git - ceph.git/blame - ceph/src/boost/boost/date_time/gregorian/greg_day.hpp
update source to Ceph Pacific 16.2.2
[ceph.git] / ceph / src / boost / boost / date_time / gregorian / greg_day.hpp
CommitLineData
7c673cae
FG
1#ifndef GREG_DAY_HPP___
2#define GREG_DAY_HPP___
3
f67539c2 4/* Copyright (c) 2002,2003,2020 CrystalClear Software, Inc.
7c673cae
FG
5 * Use, modification and distribution is subject to the
6 * Boost Software License, Version 1.0. (See accompanying
7 * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
8 * Author: Jeff Garland
9 * $Date$
10 */
11
b32b8144
FG
12#include <boost/date_time/constrained_value.hpp>
13#include <boost/date_time/compiler_config.hpp>
7c673cae
FG
14#include <stdexcept>
15#include <string>
16
17namespace boost {
18namespace gregorian {
19
20 //! Exception type for gregorian day of month (1..31)
b32b8144 21 struct BOOST_SYMBOL_VISIBLE bad_day_of_month : public std::out_of_range
7c673cae
FG
22 {
23 bad_day_of_month() :
24 std::out_of_range(std::string("Day of month value is out of range 1..31"))
25 {}
26 //! Allow other classes to throw with unique string for bad day like Feb 29
27 bad_day_of_month(const std::string& s) :
28 std::out_of_range(s)
29 {}
30 };
31 //! Policy class that declares error handling and day of month ranges
32 typedef CV::simple_exception_policy<unsigned short, 1, 31, bad_day_of_month> greg_day_policies;
33
34 //! Generated represetation for gregorian day of month
35 typedef CV::constrained_value<greg_day_policies> greg_day_rep;
36
37 //! Represent a day of the month (range 1 - 31)
38 /*! This small class allows for simple conversion an integer value into
39 a day of the month for a standard gregorian calendar. The type
40 is automatically range checked so values outside of the range 1-31
41 will cause a bad_day_of_month exception
42 */
b32b8144 43 class BOOST_SYMBOL_VISIBLE greg_day : public greg_day_rep {
7c673cae 44 public:
f67539c2
TL
45 BOOST_CXX14_CONSTEXPR greg_day(value_type day_of_month) : greg_day_rep(day_of_month) {}
46 BOOST_CXX14_CONSTEXPR value_type as_number() const {return value_;}
47 BOOST_CXX14_CONSTEXPR operator value_type() const {return value_;}
7c673cae
FG
48 private:
49
50 };
51
52
53
54} } //namespace gregorian
55
56
57
58#endif