File indexing completed on 2025-01-18 09:30:34
0001 #ifndef GREG_DAY_HPP___
0002 #define GREG_DAY_HPP___
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012 #include <boost/date_time/constrained_value.hpp>
0013 #include <boost/date_time/compiler_config.hpp>
0014 #include <stdexcept>
0015 #include <string>
0016
0017 namespace boost {
0018 namespace gregorian {
0019
0020
0021 struct BOOST_SYMBOL_VISIBLE bad_day_of_month : public std::out_of_range
0022 {
0023 bad_day_of_month() :
0024 std::out_of_range(std::string("Day of month value is out of range 1..31"))
0025 {}
0026
0027 bad_day_of_month(const std::string& s) :
0028 std::out_of_range(s)
0029 {}
0030 };
0031
0032 typedef CV::simple_exception_policy<unsigned short, 1, 31, bad_day_of_month> greg_day_policies;
0033
0034
0035 typedef CV::constrained_value<greg_day_policies> greg_day_rep;
0036
0037
0038
0039
0040
0041
0042
0043 class BOOST_SYMBOL_VISIBLE greg_day : public greg_day_rep {
0044 public:
0045 BOOST_CXX14_CONSTEXPR greg_day(value_type day_of_month) : greg_day_rep(day_of_month) {}
0046 BOOST_CXX14_CONSTEXPR value_type as_number() const {return value_;}
0047 BOOST_CXX14_CONSTEXPR operator value_type() const {return value_;}
0048 private:
0049
0050 };
0051
0052
0053
0054 } }
0055
0056
0057
0058 #endif