BVB Source Codes

mars Show greg_day.hpp Source code

Return Download mars: download greg_day.hpp Source code - Download mars Source code - Type:.hpp
  1. #ifndef GREG_DAY_HPP___
  2. #define GREG_DAY_HPP___
  3.  
  4. /* Copyright (c) 2002,2003 CrystalClear Software, Inc.
  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.  
  12. #include "boost/date_time/constrained_value.hpp"
  13. #include <stdexcept>
  14. #include <string>
  15.  
  16. namespace mars_boost {} namespace boost = mars_boost; namespace mars_boost {
  17. namespace gregorian {
  18.  
  19.   //! Exception type for gregorian day of month (1..31)
  20.   struct bad_day_of_month : public std::out_of_range
  21.   {
  22.     bad_day_of_month() :
  23.       std::out_of_range(std::string("Day of month value is out of range 1..31"))
  24.     {}
  25.     //! Allow other classes to throw with unique string for bad day like Feb 29
  26.     bad_day_of_month(const std::string& s) :
  27.       std::out_of_range(s)
  28.     {}
  29.   };
  30.   //! Policy class that declares error handling and day of month ranges
  31.   typedef CV::simple_exception_policy<unsigned short, 1, 31, bad_day_of_month> greg_day_policies;
  32.  
  33.   //! Generated represetation for gregorian day of month
  34.   typedef CV::constrained_value<greg_day_policies> greg_day_rep;
  35.  
  36.   //! Represent a day of the month (range 1 - 31)
  37.   /*! This small class allows for simple conversion an integer value into
  38.       a day of the month for a standard gregorian calendar.  The type
  39.       is automatically range checked so values outside of the range 1-31
  40.       will cause a bad_day_of_month exception
  41.   */
  42.   class greg_day : public greg_day_rep {
  43.   public:
  44.     greg_day(unsigned short day_of_month) : greg_day_rep(day_of_month) {}
  45.     unsigned short as_number() const {return value_;}
  46.     operator unsigned short()  const {return value_;}
  47.   private:
  48.    
  49.   };
  50.  
  51.  
  52.  
  53. } } //namespace gregorian
  54.  
  55.  
  56.  
  57. #endif
  58.  
downloadgreg_day.hpp Source code - Download mars Source code
Related Source Codes/Software:
Hero - Elegant transition library for iOS & tvOS 2017-06-09
deep-photo-styletransfer - Code and data for paper "Deep Photo Style Transfer... 2017-06-09
mastodon - A GNU Social-compatible microblogging server ... 2017-06-09
plyr - A simple HTML5, YouTube and Vimeo player ... 2017-06-08
prepack - Prepack is a partial evaluator for JavaScript. Pre... 2017-06-08
Public-APIs - 2017-06-09
lottie-ios - An iOS library to natively render After Effects ve... 2017-06-09
Awesome-Hacking - A collection of various awesome lists for hackers,... 2017-06-09
algorithms - Minimal examples of data structures and algorithms... 2017-06-10
lectures - Oxford Deep NLP 2017 course 2017-06-10
CRYENGINE - CRYENGINE is a powerful real-time game development... 2017-06-11
postal - 2017-06-11
reactide - Reactide is the first dedicated IDE for React web ... 2017-06-11
rkt - rkt is a pod-native container engine for Linux. It... 2017-06-11
uWebSockets - Tiny WebSockets https://for... 2017-06-11
realworld - TodoMVC for the RealWorld - Exemplary fullstack Me... 2017-06-11
goreplay - GoReplay is an open-source tool for capturing and ... 2017-06-10
pyenv - Simple Python version management 2017-06-10
redux-saga - An alternative side effect model for Redux apps ... 2017-06-10
angular-starter - 2017-06-10

 Back to top