return (ElementPtr(new IntElement(static_cast<int64_t>(i), pos)));
}
+ElementPtr
+Element::create(const int i, const Position& pos) {
+ return (create(static_cast<long long int>(i), pos));
+};
+
+ElementPtr
+Element::create(const long int i, const Position& pos) {
+ return (create(static_cast<long long int>(i), pos));
+};
+
ElementPtr
Element::create(const double d, const Position& pos) {
return (ElementPtr(new DoubleElement(d, pos)));
}
+ElementPtr
+Element::create(const bool b, const Position& pos) {
+ return (ElementPtr(new BoolElement(b, pos)));
+}
+
ElementPtr
Element::create(const std::string& s, const Position& pos) {
return (ElementPtr(new StringElement(s, pos)));
}
ElementPtr
-Element::create(const bool b, const Position& pos) {
- return (ElementPtr(new BoolElement(b, pos)));
+Element::create(const char *s, const Position& pos) {
+ return (create(std::string(s), pos));
}
ElementPtr
return (Element::create(boost::lexical_cast<double>(number),
Element::Position(line, start_pos)));
} catch (const boost::bad_lexical_cast&) {
- isc_throw(JSONError, std::string("Number overflow: ") + number);
+ throwJSONError(std::string("Number overflow: ") + number,
+ file, line, start_pos);
}
} else {
try {
static ElementPtr create(const long long int i,
const Position& pos = ZERO_POSITION());
static ElementPtr create(const int i,
- const Position& pos = ZERO_POSITION()) {
- return (create(static_cast<long long int>(i), pos));
- };
+ const Position& pos = ZERO_POSITION());
static ElementPtr create(const long int i,
- const Position& pos = ZERO_POSITION()) {
- return (create(static_cast<long long int>(i), pos));
- };
+ const Position& pos = ZERO_POSITION());
static ElementPtr create(const double d,
const Position& pos = ZERO_POSITION());
-
static ElementPtr create(const bool b,
const Position& pos = ZERO_POSITION());
static ElementPtr create(const std::string& s,
// need both std:string and char *, since c++ will match
// bool before std::string when you pass it a char *
static ElementPtr create(const char *s,
- const Position& pos = ZERO_POSITION()) {
- return (create(std::string(s), pos));
- }
+ const Position& pos = ZERO_POSITION());
/// \brief Creates an empty ListElement type ElementPtr.
///
/// (C++ tries to convert integer type values and reference/pointer
/// if value types do not match exactly)
/// We decided the storage as int64_t,
-/// three (long long, long, int) override function defintions
+/// three (long long, long, int) override function definitions
/// and cast int/long/long long to int64_t via long long.
/// Therefore, call by value methods (create, setValue) have three
/// (int,long,long long) definitions. Others use int64_t.