1 /*============================================================================= 2 Copyright (C) 2006 Tobias Schwinger 3 http://spirit.sourceforge.net/ 4 5 Distributed under the Boost Software License, Version 1.0. (See accompanying 6 file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 7 =============================================================================*/ 8 #if !defined(BOOST_SPIRIT_NUMERICS_FWD_HPP) 9 # define BOOST_SPIRIT_NUMERICS_FWD_HPP 10 11 #include <boost/spirit/home/classic/namespace.hpp> 12 13 namespace boost { namespace spirit { 14 15 BOOST_SPIRIT_CLASSIC_NAMESPACE_BEGIN 16 17 /////////////////////////////////////////////////////////////////////////// 18 // 19 // uint_parser class 20 // 21 /////////////////////////////////////////////////////////////////////////// 22 template < 23 typename T = unsigned, 24 int Radix = 10, 25 unsigned MinDigits = 1, 26 int MaxDigits = -1 27 > 28 struct uint_parser; 29 30 /////////////////////////////////////////////////////////////////////////// 31 // 32 // int_parser class 33 // 34 /////////////////////////////////////////////////////////////////////////// 35 template < 36 typename T = unsigned, 37 int Radix = 10, 38 unsigned MinDigits = 1, 39 int MaxDigits = -1 40 > 41 struct int_parser; 42 43 /////////////////////////////////////////////////////////////////////////// 44 // 45 // sign_parser class 46 // 47 /////////////////////////////////////////////////////////////////////////// 48 struct sign_parser; 49 50 /////////////////////////////////////////////////////////////////////////// 51 // 52 // default real number policies 53 // 54 /////////////////////////////////////////////////////////////////////////// 55 template <typename T> 56 struct ureal_parser_policies; 57 58 template <typename T> 59 struct real_parser_policies; 60 61 /////////////////////////////////////////////////////////////////////////// 62 // 63 // real_parser class 64 // 65 /////////////////////////////////////////////////////////////////////////// 66 template < 67 typename T = double, 68 typename RealPoliciesT = ureal_parser_policies<T> 69 > 70 struct real_parser; 71 72 /////////////////////////////////////////////////////////////////////////// 73 // 74 // strict reals (do not allow plain integers (no decimal point)) 75 // 76 /////////////////////////////////////////////////////////////////////////// 77 template <typename T> 78 struct strict_ureal_parser_policies; 79 80 template <typename T> 81 struct strict_real_parser_policies; 82 83 BOOST_SPIRIT_CLASSIC_NAMESPACE_END 84 85 }} // namespace BOOST_SPIRIT_CLASSIC_NS 86 87 #endif 88 89