/usr/include/Poco/NumberParser.h is in libpoco-dev 1.8.0.1-1ubuntu4.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 | //
// NumberParser.h
//
// Library: Foundation
// Package: Core
// Module: NumberParser
//
// Definition of the NumberParser class.
//
// Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH.
// and Contributors.
//
// SPDX-License-Identifier: BSL-1.0
//
#ifndef Foundation_NumberParser_INCLUDED
#define Foundation_NumberParser_INCLUDED
#include "Poco/Foundation.h"
#include <string>
#undef min
#undef max
#include <limits>
namespace Poco {
class Foundation_API NumberParser
/// The NumberParser class provides static methods
/// for parsing numbers out of strings.
///
/// Note that leading or trailing whitespace is not allowed
/// in the string. Poco::trim() or Poco::trimInPlace()
/// can be used to remove leading or trailing whitespace.
{
public:
static const unsigned short NUM_BASE_OCT = 010;
static const unsigned short NUM_BASE_DEC = 10;
static const unsigned short NUM_BASE_HEX = 0x10;
static int parse(const std::string& s, char thousandSeparator = ',');
/// Parses an integer value in decimal notation from the given string.
/// Throws a SyntaxException if the string does not hold a number in decimal notation.
static bool tryParse(const std::string& s, int& value, char thousandSeparator = ',');
/// Parses an integer value in decimal notation from the given string.
/// Returns true if a valid integer has been found, false otherwise.
/// If parsing was not successful, value is undefined.
static unsigned parseUnsigned(const std::string& s, char thousandSeparator = ',');
/// Parses an unsigned integer value in decimal notation from the given string.
/// Throws a SyntaxException if the string does not hold a number in decimal notation.
static bool tryParseUnsigned(const std::string& s, unsigned& value, char thousandSeparator = ',');
/// Parses an unsigned integer value in decimal notation from the given string.
/// Returns true if a valid integer has been found, false otherwise.
/// If parsing was not successful, value is undefined.
static unsigned parseHex(const std::string& s);
/// Parses an integer value in hexadecimal notation from the given string.
/// Throws a SyntaxException if the string does not hold a number in
/// hexadecimal notation.
static bool tryParseHex(const std::string& s, unsigned& value);
/// Parses an unsigned integer value in hexadecimal notation from the given string.
/// Returns true if a valid integer has been found, false otherwise.
/// If parsing was not successful, value is undefined.
static unsigned parseOct(const std::string& s);
/// Parses an integer value in octal notation from the given string.
/// Throws a SyntaxException if the string does not hold a number in
/// hexadecimal notation.
static bool tryParseOct(const std::string& s, unsigned& value);
/// Parses an unsigned integer value in octal notation from the given string.
/// Returns true if a valid integer has been found, false otherwise.
/// If parsing was not successful, value is undefined.
#if defined(POCO_HAVE_INT64)
static Int64 parse64(const std::string& s, char thousandSeparator = ',');
/// Parses a 64-bit integer value in decimal notation from the given string.
/// Throws a SyntaxException if the string does not hold a number in decimal notation.
static bool tryParse64(const std::string& s, Int64& value, char thousandSeparator = ',');
/// Parses a 64-bit integer value in decimal notation from the given string.
/// Returns true if a valid integer has been found, false otherwise.
/// If parsing was not successful, value is undefined.
static UInt64 parseUnsigned64(const std::string& s, char thousandSeparator = ',');
/// Parses an unsigned 64-bit integer value in decimal notation from the given string.
/// Throws a SyntaxException if the string does not hold a number in decimal notation.
static bool tryParseUnsigned64(const std::string& s, UInt64& value, char thousandSeparator = ',');
/// Parses an unsigned 64-bit integer value in decimal notation from the given string.
/// Returns true if a valid integer has been found, false otherwise.
/// If parsing was not successful, value is undefined.
static UInt64 parseHex64(const std::string& s);
/// Parses a 64 bit-integer value in hexadecimal notation from the given string.
/// Throws a SyntaxException if the string does not hold a number in hexadecimal notation.
static bool tryParseHex64(const std::string& s, UInt64& value);
/// Parses an unsigned 64-bit integer value in hexadecimal notation from the given string.
/// Returns true if a valid integer has been found, false otherwise.
/// If parsing was not successful, value is undefined.
static UInt64 parseOct64(const std::string& s);
/// Parses a 64 bit-integer value in octal notation from the given string.
/// Throws a SyntaxException if the string does not hold a number in hexadecimal notation.
static bool tryParseOct64(const std::string& s, UInt64& value);
/// Parses an unsigned 64-bit integer value in octal notation from the given string.
/// Returns true if a valid integer has been found, false otherwise.
/// If parsing was not successful, value is undefined.
#endif // defined(POCO_HAVE_INT64)
static double parseFloat(const std::string& s, char decimalSeparator = '.', char thousandSeparator = ',');
/// Parses a double value in decimal floating point notation
/// from the given string.
/// Throws a SyntaxException if the string does not hold a floating-point
/// number in decimal notation.
static bool tryParseFloat(const std::string& s, double& value, char decimalSeparator = '.', char thousandSeparator = ',');
/// Parses a double value in decimal floating point notation
/// from the given string.
/// Returns true if a valid floating point number has been found,
/// false otherwise.
/// If parsing was not successful, value is undefined.
static bool parseBool(const std::string& s);
/// Parses a bool value in decimal or string notation
/// from the given string.
/// Valid forms are: "0", "1", "true", "on", false", "yes", "no", "off".
/// String forms are NOT case sensitive.
/// Throws a SyntaxException if the string does not hold a valid bool number
static bool tryParseBool(const std::string& s, bool& value);
/// Parses a bool value in decimal or string notation
/// from the given string.
/// Valid forms are: "0", "1", "true", "on", false", "yes", "no", "off".
/// String forms are NOT case sensitive.
/// Returns true if a valid bool number has been found,
/// false otherwise.
/// If parsing was not successful, value is undefined.
};
} // namespace Poco
#endif // Foundation_NumberParser_INCLUDED
|