19720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block/*
29720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * Copyright (c) 1999
39720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * Silicon Graphics Computer Systems, Inc.
49720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block *
59720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * Copyright (c) 1999
69720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * Boris Fomitchev
79720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block *
89720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * This material is provided "as is", with absolutely no warranty expressed
99720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * or implied. Any use is at your own risk.
109720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block *
119720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * Permission to use or copy this software for any purpose is hereby granted
129720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * without fee, provided the above notices are retained on all copies.
139720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * Permission to modify the code and to distribute modified code is granted,
149720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * provided the above notices are retained, and a notice that the code was
159720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * modified is included with the above copyright notice.
169720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block *
179720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block */
189720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block// WARNING: This is an internal header file, included by other C++
199720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block// standard library headers.  You should not attempt to use this header
209720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block// file directly.
219720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
229720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
239720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#ifndef _STLP_INTERNAL_NUM_GET_H
249720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#define _STLP_INTERNAL_NUM_GET_H
259720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
269720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#ifndef _STLP_INTERNAL_ISTREAMBUF_ITERATOR_H
279720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#  include <stl/_istreambuf_iterator.h>
289720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#endif
299720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
309720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#ifndef _STLP_C_LOCALE_H
319720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#  include <stl/c_locale.h>
329720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#endif
339720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
349720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#ifndef _STLP_INTERNAL_NUMPUNCT_H
359720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#  include <stl/_numpunct.h>
369720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#endif
379720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
389720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#ifndef _STLP_INTERNAL_CTYPE_H
399720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#  include <stl/_ctype.h>
409720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#endif
419720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
429720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#ifndef _STLP_INTERNAL_IOSTREAM_STRING_H
439720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#  include <stl/_iostream_string.h>
449720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#endif
459720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
46e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#ifndef _STLP_FACETS_FWD_H
47e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#  include <stl/_facets_fwd.h>
48e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#endif
49e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott
509720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block_STLP_BEGIN_NAMESPACE
519720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
529720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block//----------------------------------------------------------------------
539720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block// num_get facets
549720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
559720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blocktemplate <class _CharT, class _InputIter>
569720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockclass num_get: public locale::facet {
579720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockpublic:
589720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block  typedef _CharT     char_type;
599720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block  typedef _InputIter iter_type;
609720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
619720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block  explicit num_get(size_t __refs = 0): locale::facet(__refs) {}
629720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
639720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#if !defined (_STLP_NO_BOOL)
649720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block  _InputIter get(_InputIter __ii, _InputIter __end, ios_base& __str,
659720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block                 ios_base::iostate& __err, bool& __val) const
669720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block  { return do_get(__ii, __end, __str, __err, __val); }
679720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#endif
689720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
699720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#if defined (_STLP_FIX_LIBRARY_ISSUES)
709720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block  _InputIter get(_InputIter __ii, _InputIter __end, ios_base& __str,
719720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block                 ios_base::iostate& __err, short& __val) const
729720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block  { return do_get(__ii, __end, __str, __err, __val); }
739720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
749720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block  _InputIter get(_InputIter __ii, _InputIter __end, ios_base& __str,
759720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block                 ios_base::iostate& __err, int& __val) const
769720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block  { return do_get(__ii, __end, __str, __err, __val); }
779720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#endif
789720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
799720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block  _InputIter get(_InputIter __ii, _InputIter __end, ios_base& __str,
809720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block                 ios_base::iostate& __err, long& __val) const
819720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block  { return do_get(__ii, __end, __str, __err, __val); }
829720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
839720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block  _InputIter get(_InputIter __ii, _InputIter __end, ios_base& __str,
849720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block                 ios_base::iostate& __err, unsigned short& __val) const
859720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block  { return do_get(__ii, __end, __str, __err, __val); }
869720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
879720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block  _InputIter get(_InputIter __ii, _InputIter __end, ios_base& __str,
889720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block                 ios_base::iostate& __err, unsigned int& __val) const
899720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block  { return do_get(__ii, __end, __str, __err, __val); }
909720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
919720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block  _InputIter get(_InputIter __ii, _InputIter __end, ios_base& __str,
929720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block                 ios_base::iostate& __err, unsigned long& __val) const
939720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block  { return do_get(__ii, __end, __str, __err, __val); }
949720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
959720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#if defined (_STLP_LONG_LONG)
969720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block  _InputIter get(_InputIter __ii, _InputIter __end, ios_base& __str,
979720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block                 ios_base::iostate& __err, _STLP_LONG_LONG& __val) const
989720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block  { return do_get(__ii, __end, __str, __err, __val); }
999720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
1009720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block  _InputIter get(_InputIter __ii, _InputIter __end, ios_base& __str,
1019720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block                 ios_base::iostate& __err, unsigned _STLP_LONG_LONG& __val) const
1029720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block  { return do_get(__ii, __end, __str, __err, __val); }
1039720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#endif /* _STLP_LONG_LONG */
1049720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
1059720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block  _InputIter get(_InputIter __ii, _InputIter __end, ios_base& __str,
1069720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block                 ios_base::iostate& __err, float& __val) const
1079720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block  { return do_get(__ii, __end, __str, __err, __val); }
1089720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
1099720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block  _InputIter get(_InputIter __ii, _InputIter __end, ios_base& __str,
1109720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block                 ios_base::iostate& __err, double& __val) const
1119720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block  { return do_get(__ii, __end, __str, __err, __val); }
1129720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
1139720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#if !defined (_STLP_NO_LONG_DOUBLE)
1149720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block  _InputIter get(_InputIter __ii, _InputIter __end, ios_base& __str,
1159720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block                 ios_base::iostate& __err, long double& __val) const
1169720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block  { return do_get(__ii, __end, __str, __err, __val); }
1179720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block# endif
1189720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
1199720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block  _InputIter get(_InputIter __ii, _InputIter __end, ios_base& __str,
1209720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block                 ios_base::iostate& __err, void*& __val) const
1219720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block  { return do_get(__ii, __end, __str, __err, __val); }
1229720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
123e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott  static locale::id id;
1249720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
1259720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockprotected:
1269720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block  ~num_get() {}
1279720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
1289720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block  typedef string               string_type;
1299720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block  typedef ctype<_CharT>        _Ctype;
1309720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block  typedef numpunct<_CharT>     _Numpunct;
1319720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
1329720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#if !defined (_STLP_NO_BOOL)
1339720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block  virtual _InputIter do_get(_InputIter __ii, _InputIter __end, ios_base& __str,
1349720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block                            ios_base::iostate& __err, bool& __val) const;
1359720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#endif
1369720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
1379720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block  virtual _InputIter do_get(_InputIter __ii, _InputIter __end, ios_base& __str,
1389720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block                            ios_base::iostate& __err, long& __val) const;
1399720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block  virtual _InputIter do_get(_InputIter __ii, _InputIter __end, ios_base& __str,
1409720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block                            ios_base::iostate& __err, unsigned short& __val) const;
1419720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block  virtual _InputIter do_get(_InputIter __ii, _InputIter __end, ios_base& __str,
1429720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block                            ios_base::iostate& __err, unsigned int& __val) const;
1439720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block  virtual _InputIter do_get(_InputIter __ii, _InputIter __end, ios_base& __str,
1449720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block                            ios_base::iostate& __err, unsigned long& __val) const;
1459720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
1469720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#if defined (_STLP_FIX_LIBRARY_ISSUES)
1479720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block  // issue 118 : those are actually not supposed to be here
1489720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block  virtual _InputIter do_get(_InputIter __ii, _InputIter __end, ios_base& __str,
1499720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block                            ios_base::iostate& __err, short& __val) const;
1509720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block  virtual _InputIter do_get(_InputIter __ii, _InputIter __end, ios_base& __str,
1519720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block                            ios_base::iostate& __err, int& __val) const;
1529720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#endif
1539720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
1549720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block  virtual _InputIter do_get(_InputIter __ii, _InputIter __end, ios_base& __str,
1559720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block                            ios_base::iostate& __err, float& __val) const;
1569720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block  virtual _InputIter do_get(_InputIter __ii, _InputIter __end, ios_base& __str,
1579720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block                            ios_base::iostate& __err, double& __val) const;
1589720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block  virtual _InputIter do_get(_InputIter __ii, _InputIter __end, ios_base& __str,
1599720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block                            ios_base::iostate& __err, void*& __p) const;
1609720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
1619720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#if !defined (_STLP_NO_LONG_DOUBLE)
1629720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block  virtual _InputIter do_get(_InputIter __ii, _InputIter __end, ios_base& __str,
1639720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block                            ios_base::iostate& __err, long double& __val) const;
1649720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#endif
1659720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
1669720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#if defined (_STLP_LONG_LONG)
1679720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block  virtual _InputIter do_get(_InputIter __ii, _InputIter __end, ios_base& __str,
1689720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block                            ios_base::iostate& __err, _STLP_LONG_LONG& __val) const;
1699720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block  virtual _InputIter do_get(_InputIter __ii, _InputIter __end, ios_base& __str,
1709720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block                            ios_base::iostate& __err, unsigned _STLP_LONG_LONG& __val) const;
1719720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#endif
1729720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
1739720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block};
1749720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
1759720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
1769720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#if defined (_STLP_USE_TEMPLATE_EXPORT)
1779720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block_STLP_EXPORT_TEMPLATE_CLASS num_get<char, istreambuf_iterator<char, char_traits<char> > >;
1789720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block// _STLP_EXPORT_TEMPLATE_CLASS num_get<char, const char*>;
1799720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#  if !defined (_STLP_NO_WCHAR_T)
1809720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block_STLP_EXPORT_TEMPLATE_CLASS num_get<wchar_t, istreambuf_iterator<wchar_t, char_traits<wchar_t> > >;
1819720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block// _STLP_EXPORT_TEMPLATE_CLASS num_get<wchar_t, const wchar_t*>;
1829720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#  endif
1839720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#endif
1849720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
1859720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#if defined (_STLP_EXPOSE_STREAM_IMPLEMENTATION)
1869720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
1879720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block_STLP_MOVE_TO_PRIV_NAMESPACE
1889720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
1899720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block_STLP_DECLSPEC bool _STLP_CALL __valid_grouping(const char*, const char*, const char*, const char*);
1909720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
1919720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blocktemplate <class _InputIter, class _Integer, class _CharT>
1929720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockbool _STLP_CALL
1939720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block__get_decimal_integer(_InputIter& __first, _InputIter& __last, _Integer& __val, _CharT*);
1949720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
1959720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#  if !defined (_STLP_NO_WCHAR_T)
1969720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockbool _STLP_DECLSPEC _STLP_CALL __get_fdigit(wchar_t&, const wchar_t*);
1979720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockbool _STLP_DECLSPEC _STLP_CALL __get_fdigit_or_sep(wchar_t&, wchar_t, const wchar_t*);
1989720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#  endif
1999720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
2009720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockinline void  _STLP_CALL
2019720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block_Initialize_get_float(const ctype<char>&,
2029720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block                       char& Plus, char& Minus,
2039720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block                       char& pow_e, char& pow_E,
2049720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block                       char*) {
2059720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block  Plus = '+';
2069720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block  Minus = '-';
2079720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block  pow_e = 'e';
2089720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block  pow_E = 'E';
2099720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block}
2109720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
2119720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#  if !defined (_STLP_NO_WCHAR_T)
2129720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockvoid _STLP_DECLSPEC _STLP_CALL _Initialize_get_float(const ctype<wchar_t>&,
2139720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block                                                     wchar_t&, wchar_t&, wchar_t&, wchar_t&, wchar_t*);
2149720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#  endif
2159720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockvoid _STLP_DECLSPEC _STLP_CALL __string_to_float(const __iostring&, float&);
2169720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockvoid _STLP_DECLSPEC _STLP_CALL __string_to_float(const __iostring&, double&);
2179720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#  if !defined (_STLP_NO_LONG_DOUBLE)
2189720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockvoid _STLP_DECLSPEC _STLP_CALL __string_to_float(const __iostring&, long double&);
2199720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#  endif
2209720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
2219720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block_STLP_MOVE_TO_STD_NAMESPACE
2229720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
2239720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#endif /* _STLP_EXPOSE_STREAM_IMPLEMENTATION */
2249720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
225e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott
2269720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block_STLP_END_NAMESPACE
2279720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
2289720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#if defined (_STLP_EXPOSE_STREAM_IMPLEMENTATION) && !defined (_STLP_LINK_TIME_INSTANTIATION)
2299720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#  include <stl/_num_get.c>
2309720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#endif
2319720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
2329720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#endif /* _STLP_INTERNAL_NUM_GET_H */
2339720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
2349720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block// Local Variables:
2359720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block// mode:C++
2369720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block// End:
2379720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
238