Fixed compilation of jsonfile on gcc/clang
This commit is contained in:
parent
4d4a751e75
commit
efab1c3707
@ -52,60 +52,53 @@ namespace base
|
|||||||
FILE* m_fp;
|
FILE* m_fp;
|
||||||
};
|
};
|
||||||
|
|
||||||
class JsonReaderObject;
|
|
||||||
class JsonReaderIterator
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
using JsonValue = rapidjson::GenericValue<rapidjson::ASCII<>>;
|
|
||||||
|
|
||||||
public:
|
|
||||||
explicit JsonReaderIterator(JsonValue* value, bool& hasReadError);
|
|
||||||
|
|
||||||
JsonReaderObject operator*() const;
|
|
||||||
JsonReaderIterator& operator++();
|
|
||||||
bool operator==(const JsonReaderIterator& other) const;
|
|
||||||
bool operator!=(const JsonReaderIterator& other) const;
|
|
||||||
|
|
||||||
private:
|
|
||||||
JsonValue* m_value;
|
|
||||||
bool& m_hasReadError;
|
|
||||||
};
|
|
||||||
|
|
||||||
class JsonReaderArray
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
using JsonValue = rapidjson::GenericValue<rapidjson::ASCII<>>;
|
|
||||||
|
|
||||||
public:
|
|
||||||
explicit JsonReaderArray(JsonValue& value, bool& parseError);
|
|
||||||
|
|
||||||
bool HasReadError() const;
|
|
||||||
|
|
||||||
std::size_t size() const;
|
|
||||||
JsonReaderIterator begin();
|
|
||||||
JsonReaderIterator end();
|
|
||||||
|
|
||||||
template<typename Container, typename Fn>
|
|
||||||
void TransformTo(Container& c, Fn fn)
|
|
||||||
{
|
|
||||||
c.resize(m_value.Size());
|
|
||||||
std::size_t index = 0;
|
|
||||||
for (base::JsonReaderObject obj : *this)
|
|
||||||
{
|
|
||||||
fn(obj, c[index++]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private:
|
|
||||||
JsonValue& m_value;
|
|
||||||
bool& m_hasReadError;
|
|
||||||
};
|
|
||||||
|
|
||||||
class JsonReaderObject
|
class JsonReaderObject
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
using JsonValue = rapidjson::GenericValue<rapidjson::ASCII<>>;
|
using JsonValue = rapidjson::GenericValue<rapidjson::ASCII<>>;
|
||||||
|
|
||||||
|
class JsonReaderIterator
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
explicit JsonReaderIterator(JsonValue* value, bool& hasReadError);
|
||||||
|
|
||||||
|
JsonReaderObject operator*() const;
|
||||||
|
JsonReaderIterator& operator++();
|
||||||
|
bool operator==(const JsonReaderIterator& other) const;
|
||||||
|
bool operator!=(const JsonReaderIterator& other) const;
|
||||||
|
|
||||||
|
private:
|
||||||
|
JsonValue* m_value;
|
||||||
|
bool& m_hasReadError;
|
||||||
|
};
|
||||||
|
|
||||||
|
class JsonReaderArray
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
explicit JsonReaderArray(JsonValue& value, bool& parseError);
|
||||||
|
|
||||||
|
bool HasReadError() const;
|
||||||
|
|
||||||
|
std::size_t size() const;
|
||||||
|
JsonReaderIterator begin();
|
||||||
|
JsonReaderIterator end();
|
||||||
|
|
||||||
|
template<typename Container, typename Fn>
|
||||||
|
void TransformTo(Container& c, Fn fn)
|
||||||
|
{
|
||||||
|
c.resize(m_value.Size());
|
||||||
|
std::size_t index = 0;
|
||||||
|
for (base::JsonReaderObject obj : *this)
|
||||||
|
{
|
||||||
|
fn(obj, c[index++]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
JsonValue& m_value;
|
||||||
|
bool& m_hasReadError;
|
||||||
|
};
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit JsonReaderObject(JsonValue& value, bool& parseError);
|
explicit JsonReaderObject(JsonValue& value, bool& parseError);
|
||||||
|
|
||||||
@ -132,6 +125,9 @@ namespace base
|
|||||||
bool& m_hasReadError;
|
bool& m_hasReadError;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
using JsonReaderIterator = JsonReaderObject::JsonReaderIterator;
|
||||||
|
using JsonReaderArray = JsonReaderObject::JsonReaderArray;
|
||||||
|
|
||||||
class JsonReaderFile
|
class JsonReaderFile
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
Loading…
Reference in New Issue
Block a user