StdAir Logo  1.00.0
C++ Standard Airline IT Object Library
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
BasParserHelperTypes.hpp
Go to the documentation of this file.
1 #ifndef __STDAIR_BAS_BASCOMPARSERHELPERTYPES_HPP
2 #define __STDAIR_BAS_BASCOMPARSERHELPERTYPES_HPP
3 
4 // //////////////////////////////////////////////////////////////////////
5 // Import section
6 // //////////////////////////////////////////////////////////////////////
7 // STL
8 #include <string>
9 #include <sstream>
10 // StdAir
13 
14 namespace stdair {
15 
16  // ////////////////////////////////////////////////////////////////////
17  //
18  // Parser structure helper
19  //
20  // ////////////////////////////////////////////////////////////////////
22  template <int MIN = 0, int MAX = 0>
24  unsigned int _value;
25 
26  // ////////// Constructors ///////////
32  date_time_element (int i) : _value (i) { }
34  void check () const {
35  if (_value < MIN || _value > MAX) {
36  std::ostringstream oMessage;
37  oMessage << "The value: " << _value << " is out of range ("
38  << MIN << ", " << MAX << ")";
39  throw stdair::ParserException (oMessage.str());
40  }
41  }
42  };
43 
45  template <int MIN, int MAX>
46  inline date_time_element<MIN,
48  const date_time_element<MIN, MAX>& o2){
49  return date_time_element<MIN, MAX> (o1._value * o2._value);
50  }
51 
53  template <int MIN, int MAX>
54  inline date_time_element<MIN,
56  const date_time_element<MIN, MAX>& o2){
57  return date_time_element<MIN, MAX> (o1._value + o2._value);
58  }
59 
67 
68 }
69 #endif // __STDAIR_BAS_BASCOMPARSERHELPERTYPES_HPP