-
-
Save crespo2014/8a40a9053b2c21fbc840 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include "rapidjson/rapidjson.h" | |
#include "rapidjson/document.h" | |
#include "rapidjson/writer.h" | |
#include "rapidjson/stringbuffer.h" | |
#include "rapidjson/reader.h" | |
using namespace rapidjson; | |
class Handler | |
{ | |
public: | |
bool Default() { return true; } | |
bool Null() { return Default(); } | |
bool Bool(bool) { return Default(); } | |
bool Int(int) { return Default(); } | |
bool Uint(unsigned) { return Default(); } | |
bool Int64(int64_t) { return Default(); } | |
bool Uint64(uint64_t) { return Default(); } | |
bool Double(double) { return Default(); } | |
bool String(const char*, SizeType, bool) { return Default(); } | |
bool StartObject() { return Default(); } | |
bool EndObject(SizeType) { return Default(); } | |
bool StartArray() { return Default(); } | |
bool EndArray(SizeType) { return Default(); } | |
}; | |
int main() | |
{ | |
char json[] = "{}"; | |
Handler handler; | |
rapidjson::Reader reader; | |
rapidjson::InsituStringStream ss(json); | |
rapidjson::ParseResult pr = reader.Parse(ss, handler); | |
(void)(pr); | |
rapidjson::StringBuffer reply; | |
rapidjson::Document doc; | |
rapidjson::Value nv_o(rapidjson::kObjectType); | |
doc.AddMember(rapidjson::StringRef(""),nv_o,doc.GetAllocator()); | |
rapidjson::Value nv_a(rapidjson::kArrayType); | |
doc.AddMember(rapidjson::StringRef(""),nv_a,doc.GetAllocator()); | |
rapidjson::Value nv_s(rapidjson::kStringType); | |
doc.AddMember(rapidjson::StringRef(""),nv_s,doc.GetAllocator()); | |
doc.AddMember(rapidjson::StringRef(""),(bool)true,doc.GetAllocator()); | |
doc.AddMember(rapidjson::StringRef(""),(double)0,doc.GetAllocator()); | |
doc.AddMember(rapidjson::StringRef(""),(unsigned)0,doc.GetAllocator()); | |
doc.AddMember(rapidjson::StringRef(""),(signed)0,doc.GetAllocator()); | |
Writer<StringBuffer> writer(reply); | |
doc.Accept(writer); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/opt/OSELAS.Toolchain-2012.12.1/arm-cortexa9-linux-gnueabihf/gcc-4.7.3-glibc-2.16.0-binutils-2.22-kernel-3.6-sanitized/bin/arm-cortexa9-linux-gnueabihf-g++ -v | |
rm rapidjson | |
ln -s rapidjson_1 rapidjson | |
/opt/OSELAS.Toolchain-2012.12.1/arm-cortexa9-linux-gnueabihf/gcc-4.7.3-glibc-2.16.0-binutils-2.22-kernel-3.6-sanitized/bin/arm-cortexa9-linux-gnueabihf-g++ -c -g -D_DEBUG -std=c++11 -DBYTE_ORDER=1234 -D_POSIX_C_SOURCE=200809L -D__STDC_CONSTANT_MACROS -Wall -Wextra -pedantic -Wmissing-declarations -Wpointer-arith -Wwrite-strings -Wformat=2 -Wlogical-op -Wcast-align -Wcast-qual -Wundef -Wmissing-include-dirs -Wfloat-equal -Wconversion main.cpp | |
rm rapidjson | |
ln -s rapidjson_2 rapidjson | |
/opt/OSELAS.Toolchain-2012.12.1/arm-cortexa9-linux-gnueabihf/gcc-4.7.3-glibc-2.16.0-binutils-2.22-kernel-3.6-sanitized/bin/arm-cortexa9-linux-gnueabihf-g++ -c -g -D_DEBUG -std=c++11 -DBYTE_ORDER=1234 -D_POSIX_C_SOURCE=200809L -D__STDC_CONSTANT_MACROS -Wall -Wextra -pedantic -Wmissing-declarations -Wpointer-arith -Wwrite-strings -Wformat=2 -Wlogical-op -Wcast-align -Wcast-qual -Wundef -Wmissing-include-dirs -Wfloat-equal -Wconversion main.cpp | |
diff -Naur --exclude=.svn rapidjson_1 rapidjson_2 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
++ /opt/OSELAS.Toolchain-2012.12.1/arm-cortexa9-linux-gnueabihf/gcc-4.7.3-glibc-2.16.0-binutils-2.22-kernel-3.6-sanitized/bin/arm-cortexa9-linux-gnueabihf-g++ -v | |
Using built-in specs. | |
COLLECT_GCC=/opt/OSELAS.Toolchain-2012.12.1/arm-cortexa9-linux-gnueabihf/gcc-4.7.3-glibc-2.16.0-binutils-2.22-kernel-3.6-sanitized/bin/arm-cortexa9-linux-gnueabihf-g++ | |
COLLECT_LTO_WRAPPER=/opt/OSELAS.Toolchain-2012.12.1/arm-cortexa9-linux-gnueabihf/gcc-4.7.3-glibc-2.16.0-binutils-2.22-kernel-3.6-sanitized/bin/../libexec/gcc/arm-cortexa9-linux-gnueabihf/4.7.3/lto-wrapper | |
Target: arm-cortexa9-linux-gnueabihf | |
Configured with: /home/mol/himalia/tmp/OSELAS.Toolchain-2012.12.1/platform-arm-cortexa9-linux-gnueabihf-gcc-4.7.3-glibc-2.16.0-binutils-2.22-kernel-3.6-sanitized/build-cross/gcc-linaro-4.7-2012.11/configure --build=i686-host-linux-gnu --host=i686-host-linux-gnu --target=arm-cortexa9-linux-gnueabihf --with-sysroot=/home/mol/himalia/tmp/OSELAS.Toolchain-2012.12.1/inst/opt/OSELAS.Toolchain-2012.12.1/arm-cortexa9-linux-gnueabihf/gcc-4.7.3-glibc-2.16.0-binutils-2.22-kernel-3.6-sanitized/sysroot-arm-cortexa9-linux-gnueabihf --disable-multilib --with-float=hard --with-fpu=neon --with-cpu=cortex-a9 --enable-__cxa_atexit --disable-sjlj-exceptions --disable-nls --disable-decimal-float --disable-fixed-point --disable-win32-registry --enable-symvers=gnu --with-pkgversion='OSELAS.Toolchain-2012.12.1 linaro-4.7-2012.11' --enable-threads=posix --with-system-zlib --with-gmp=/home/mol/himalia/tmp/OSELAS.Toolchain-2012.12.1/platform-arm-cortexa9-linux-gnueabihf-gcc-4.7.3-glibc-2.16.0-binutils-2.22-kernel-3.6-sanitized/sysroot-host --with-mpfr=/home/mol/himalia/tmp/OSELAS.Toolchain-2012.12.1/platform-arm-cortexa9-linux-gnueabihf-gcc-4.7.3-glibc-2.16.0-binutils-2.22-kernel-3.6-sanitized/sysroot-host --prefix=/home/mol/himalia/tmp/OSELAS.Toolchain-2012.12.1/inst/opt/OSELAS.Toolchain-2012.12.1/arm-cortexa9-linux-gnueabihf/gcc-4.7.3-glibc-2.16.0-binutils-2.22-kernel-3.6-sanitized --enable-languages=c,c++ --enable-c99 --enable-long-long --enable-libstdcxx-debug --enable-profile --enable-shared --disable-libssp --enable-checking=release | |
Thread model: posix | |
gcc version 4.7.3 20121106 (prerelease) (OSELAS.Toolchain-2012.12.1 linaro-4.7-2012.11) | |
++ rm rapidjson | |
++ ln -s rapidjson_1 rapidjson | |
++ /opt/OSELAS.Toolchain-2012.12.1/arm-cortexa9-linux-gnueabihf/gcc-4.7.3-glibc-2.16.0-binutils-2.22-kernel-3.6-sanitized/bin/arm-cortexa9-linux-gnueabihf-g++ -c -g -D_DEBUG -std=c++11 -DBYTE_ORDER=1234 -D_POSIX_C_SOURCE=200809L -D__STDC_CONSTANT_MACROS -Wall -Wextra -pedantic -Wmissing-declarations -Wpointer-arith -Wwrite-strings -Wformat=2 -Wlogical-op -Wcast-align -Wcast-qual -Wundef -Wmissing-include-dirs -Wfloat-equal -Wconversion main.cpp | |
In file included from rapidjson/writer.h:7:0, | |
from main.cpp:3: | |
rapidjson/internal/itoa.h: In function 'char* rapidjson::internal::u32toa(uint32_t, char*)': | |
rapidjson/internal/itoa.h:77:50: warning: conversion to 'char' from 'int' may alter its value [-Wconversion] | |
rapidjson/internal/itoa.h: In function 'char* rapidjson::internal::u64toa(uint64_t, char*)': | |
rapidjson/internal/itoa.h:204:50: warning: conversion to 'char' from 'int' may alter its value [-Wconversion] | |
rapidjson/internal/itoa.h:211:56: warning: conversion to 'char' from 'int' may alter its value [-Wconversion] | |
In file included from rapidjson/reader.h:10:0, | |
from rapidjson/document.h:4, | |
from main.cpp:2: | |
rapidjson/internal/stack.h: In instantiation of 'T* rapidjson::internal::Stack<Allocator>::Push(size_t) [with T = rapidjson::Writer<rapidjson::GenericStringBuffer<rapidjson::UTF8<> > >::Level; Allocator = rapidjson::MemoryPoolAllocator<>; size_t = unsigned int]': | |
rapidjson/writer.h:134:3: required from 'bool rapidjson::Writer<OutputStream, SourceEncoding, TargetEncoding, Allocator>::StartObject() [with OutputStream = rapidjson::GenericStringBuffer<rapidjson::UTF8<> >; SourceEncoding = rapidjson::UTF8<>; TargetEncoding = rapidjson::UTF8<>; Allocator = rapidjson::MemoryPoolAllocator<>]' | |
rapidjson/document.h:1025:4: required from 'bool rapidjson::GenericValue<Encoding, Allocator>::Accept(Handler&) const [with Handler = rapidjson::Writer<rapidjson::GenericStringBuffer<rapidjson::UTF8<> > >; Encoding = rapidjson::UTF8<>; Allocator = rapidjson::MemoryPoolAllocator<>]' | |
main.cpp:55:20: required from here | |
rapidjson/internal/stack.h:39:43: warning: cast from 'char*' to 'rapidjson::Writer<rapidjson::GenericStringBuffer<rapidjson::UTF8<> > >::Level*' increases required alignment of target type [-Wcast-align] | |
In file included from main.cpp:3:0: | |
rapidjson/writer.h: In instantiation of 'bool rapidjson::Writer<OutputStream, SourceEncoding, TargetEncoding, Allocator>::WriteString(const Ch*, rapidjson::SizeType) [with OutputStream = rapidjson::GenericStringBuffer<rapidjson::UTF8<> >; SourceEncoding = rapidjson::UTF8<>; TargetEncoding = rapidjson::UTF8<>; Allocator = rapidjson::MemoryPoolAllocator<>; rapidjson::Writer<OutputStream, SourceEncoding, TargetEncoding, Allocator>::Ch = char; rapidjson::SizeType = unsigned int]': | |
rapidjson/writer.h:129:33: required from 'bool rapidjson::Writer<OutputStream, SourceEncoding, TargetEncoding, Allocator>::String(const Ch*, rapidjson::SizeType, bool) [with OutputStream = rapidjson::GenericStringBuffer<rapidjson::UTF8<> >; SourceEncoding = rapidjson::UTF8<>; TargetEncoding = rapidjson::UTF8<>; Allocator = rapidjson::MemoryPoolAllocator<>; rapidjson::Writer<OutputStream, SourceEncoding, TargetEncoding, Allocator>::Ch = char; rapidjson::SizeType = unsigned int]' | |
rapidjson/document.h:1028:5: required from 'bool rapidjson::GenericValue<Encoding, Allocator>::Accept(Handler&) const [with Handler = rapidjson::Writer<rapidjson::GenericStringBuffer<rapidjson::UTF8<> > >; Encoding = rapidjson::UTF8<>; Allocator = rapidjson::MemoryPoolAllocator<>]' | |
main.cpp:55:20: required from here | |
rapidjson/writer.h:315:9: warning: comparison is always true due to limited range of data type [-Wtype-limits] | |
In file included from rapidjson/reader.h:10:0, | |
from rapidjson/document.h:4, | |
from main.cpp:2: | |
rapidjson/internal/stack.h: In instantiation of 'T* rapidjson::internal::Stack<Allocator>::Top() [with T = rapidjson::Writer<rapidjson::GenericStringBuffer<rapidjson::UTF8<> > >::Level; Allocator = rapidjson::MemoryPoolAllocator<>]': | |
rapidjson/writer.h:141:3: required from 'bool rapidjson::Writer<OutputStream, SourceEncoding, TargetEncoding, Allocator>::EndObject(rapidjson::SizeType) [with OutputStream = rapidjson::GenericStringBuffer<rapidjson::UTF8<> >; SourceEncoding = rapidjson::UTF8<>; TargetEncoding = rapidjson::UTF8<>; Allocator = rapidjson::MemoryPoolAllocator<>; rapidjson::SizeType = unsigned int]' | |
rapidjson/document.h:1033:41: required from 'bool rapidjson::GenericValue<Encoding, Allocator>::Accept(Handler&) const [with Handler = rapidjson::Writer<rapidjson::GenericStringBuffer<rapidjson::UTF8<> > >; Encoding = rapidjson::UTF8<>; Allocator = rapidjson::MemoryPoolAllocator<>]' | |
main.cpp:55:20: required from here | |
rapidjson/internal/stack.h:54:53: warning: cast from 'char*' to 'rapidjson::Writer<rapidjson::GenericStringBuffer<rapidjson::UTF8<> > >::Level*' increases required alignment of target type [-Wcast-align] | |
rapidjson/internal/stack.h: In instantiation of 'T* rapidjson::internal::Stack<Allocator>::Pop(size_t) [with T = rapidjson::Writer<rapidjson::GenericStringBuffer<rapidjson::UTF8<> > >::Level; Allocator = rapidjson::MemoryPoolAllocator<>; size_t = unsigned int]': | |
rapidjson/writer.h:142:3: required from 'bool rapidjson::Writer<OutputStream, SourceEncoding, TargetEncoding, Allocator>::EndObject(rapidjson::SizeType) [with OutputStream = rapidjson::GenericStringBuffer<rapidjson::UTF8<> >; SourceEncoding = rapidjson::UTF8<>; TargetEncoding = rapidjson::UTF8<>; Allocator = rapidjson::MemoryPoolAllocator<>; rapidjson::SizeType = unsigned int]' | |
rapidjson/document.h:1033:41: required from 'bool rapidjson::GenericValue<Encoding, Allocator>::Accept(Handler&) const [with Handler = rapidjson::Writer<rapidjson::GenericStringBuffer<rapidjson::UTF8<> > >; Encoding = rapidjson::UTF8<>; Allocator = rapidjson::MemoryPoolAllocator<>]' | |
main.cpp:55:20: required from here | |
rapidjson/internal/stack.h:48:41: warning: cast from 'char*' to 'rapidjson::Writer<rapidjson::GenericStringBuffer<rapidjson::UTF8<> > >::Level*' increases required alignment of target type [-Wcast-align] | |
In file included from rapidjson/document.h:4:0, | |
from main.cpp:2: | |
rapidjson/reader.h: In instantiation of 'rapidjson::GenericReader<SourceEncoding, TargetEncoding, Allocator>::Token rapidjson::GenericReader<SourceEncoding, TargetEncoding, Allocator>::Tokenize(rapidjson::GenericReader<SourceEncoding, TargetEncoding, Allocator>::Ch) [with SourceEncoding = rapidjson::UTF8<>; TargetEncoding = rapidjson::UTF8<>; Allocator = rapidjson::MemoryPoolAllocator<>; rapidjson::GenericReader<SourceEncoding, TargetEncoding, Allocator>::Ch = char]': | |
rapidjson/reader.h:1246:32: required from 'rapidjson::ParseResult rapidjson::GenericReader<SourceEncoding, TargetEncoding, Allocator>::IterativeParse(InputStream&, Handler&) [with unsigned int parseFlags = 0u; InputStream = rapidjson::GenericInsituStringStream<rapidjson::UTF8<> >; Handler = Handler; SourceEncoding = rapidjson::UTF8<>; TargetEncoding = rapidjson::UTF8<>; Allocator = rapidjson::MemoryPoolAllocator<>]' | |
rapidjson/reader.h:351:49: required from 'rapidjson::ParseResult rapidjson::GenericReader<SourceEncoding, TargetEncoding, Allocator>::Parse(InputStream&, Handler&) [with unsigned int parseFlags = 0u; InputStream = rapidjson::GenericInsituStringStream<rapidjson::UTF8<> >; Handler = Handler; SourceEncoding = rapidjson::UTF8<>; TargetEncoding = rapidjson::UTF8<>; Allocator = rapidjson::MemoryPoolAllocator<>]' | |
rapidjson/reader.h:393:47: required from 'rapidjson::ParseResult rapidjson::GenericReader<SourceEncoding, TargetEncoding, Allocator>::Parse(InputStream&, Handler&) [with InputStream = rapidjson::GenericInsituStringStream<rapidjson::UTF8<> >; Handler = Handler; SourceEncoding = rapidjson::UTF8<>; TargetEncoding = rapidjson::UTF8<>; Allocator = rapidjson::MemoryPoolAllocator<>]' | |
main.cpp:34:55: required from here | |
rapidjson/reader.h:919:3: warning: comparison is always true due to limited range of data type [-Wtype-limits] | |
In file included from rapidjson/reader.h:10:0, | |
from rapidjson/document.h:4, | |
from main.cpp:2: | |
rapidjson/internal/stack.h: In instantiation of 'T* rapidjson::internal::Stack<Allocator>::Push(size_t) [with T = unsigned int; Allocator = rapidjson::MemoryPoolAllocator<>; size_t = unsigned int]': | |
rapidjson/reader.h:1109:4: required from 'rapidjson::GenericReader<SourceEncoding, TargetEncoding, Allocator>::IterativeParsingState rapidjson::GenericReader<SourceEncoding, TargetEncoding, Allocator>::Transit(rapidjson::GenericReader<SourceEncoding, TargetEncoding, Allocator>::IterativeParsingState, rapidjson::GenericReader<SourceEncoding, TargetEncoding, Allocator>::Token, rapidjson::GenericReader<SourceEncoding, TargetEncoding, Allocator>::IterativeParsingState, InputStream&, Handler&) [with unsigned int parseFlags = 0u; InputStream = rapidjson::GenericInsituStringStream<rapidjson::UTF8<> >; Handler = Handler; SourceEncoding = rapidjson::UTF8<>; TargetEncoding = rapidjson::UTF8<>; Allocator = rapidjson::MemoryPoolAllocator<>]' | |
rapidjson/reader.h:1248:74: required from 'rapidjson::ParseResult rapidjson::GenericReader<SourceEncoding, TargetEncoding, Allocator>::IterativeParse(InputStream&, Handler&) [with unsigned int parseFlags = 0u; InputStream = rapidjson::GenericInsituStringStream<rapidjson::UTF8<> >; Handler = Handler; SourceEncoding = rapidjson::UTF8<>; TargetEncoding = rapidjson::UTF8<>; Allocator = rapidjson::MemoryPoolAllocator<>]' | |
rapidjson/reader.h:351:49: required from 'rapidjson::ParseResult rapidjson::GenericReader<SourceEncoding, TargetEncoding, Allocator>::Parse(InputStream&, Handler&) [with unsigned int parseFlags = 0u; InputStream = rapidjson::GenericInsituStringStream<rapidjson::UTF8<> >; Handler = Handler; SourceEncoding = rapidjson::UTF8<>; TargetEncoding = rapidjson::UTF8<>; Allocator = rapidjson::MemoryPoolAllocator<>]' | |
rapidjson/reader.h:393:47: required from 'rapidjson::ParseResult rapidjson::GenericReader<SourceEncoding, TargetEncoding, Allocator>::Parse(InputStream&, Handler&) [with InputStream = rapidjson::GenericInsituStringStream<rapidjson::UTF8<> >; Handler = Handler; SourceEncoding = rapidjson::UTF8<>; TargetEncoding = rapidjson::UTF8<>; Allocator = rapidjson::MemoryPoolAllocator<>]' | |
main.cpp:34:55: required from here | |
rapidjson/internal/stack.h:39:43: warning: cast from 'char*' to 'unsigned int*' increases required alignment of target type [-Wcast-align] | |
rapidjson/internal/stack.h: In instantiation of 'T* rapidjson::internal::Stack<Allocator>::Top() [with T = unsigned int; Allocator = rapidjson::MemoryPoolAllocator<>]': | |
rapidjson/reader.h:1160:4: required from 'rapidjson::GenericReader<SourceEncoding, TargetEncoding, Allocator>::IterativeParsingState rapidjson::GenericReader<SourceEncoding, TargetEncoding, Allocator>::Transit(rapidjson::GenericReader<SourceEncoding, TargetEncoding, Allocator>::IterativeParsingState, rapidjson::GenericReader<SourceEncoding, TargetEncoding, Allocator>::Token, rapidjson::GenericReader<SourceEncoding, TargetEncoding, Allocator>::IterativeParsingState, InputStream&, Handler&) [with unsigned int parseFlags = 0u; InputStream = rapidjson::GenericInsituStringStream<rapidjson::UTF8<> >; Handler = Handler; SourceEncoding = rapidjson::UTF8<>; TargetEncoding = rapidjson::UTF8<>; Allocator = rapidjson::MemoryPoolAllocator<>]' | |
rapidjson/reader.h:1248:74: required from 'rapidjson::ParseResult rapidjson::GenericReader<SourceEncoding, TargetEncoding, Allocator>::IterativeParse(InputStream&, Handler&) [with unsigned int parseFlags = 0u; InputStream = rapidjson::GenericInsituStringStream<rapidjson::UTF8<> >; Handler = Handler; SourceEncoding = rapidjson::UTF8<>; TargetEncoding = rapidjson::UTF8<>; Allocator = rapidjson::MemoryPoolAllocator<>]' | |
rapidjson/reader.h:351:49: required from 'rapidjson::ParseResult rapidjson::GenericReader<SourceEncoding, TargetEncoding, Allocator>::Parse(InputStream&, Handler&) [with unsigned int parseFlags = 0u; InputStream = rapidjson::GenericInsituStringStream<rapidjson::UTF8<> >; Handler = Handler; SourceEncoding = rapidjson::UTF8<>; TargetEncoding = rapidjson::UTF8<>; Allocator = rapidjson::MemoryPoolAllocator<>]' | |
rapidjson/reader.h:393:47: required from 'rapidjson::ParseResult rapidjson::GenericReader<SourceEncoding, TargetEncoding, Allocator>::Parse(InputStream&, Handler&) [with InputStream = rapidjson::GenericInsituStringStream<rapidjson::UTF8<> >; Handler = Handler; SourceEncoding = rapidjson::UTF8<>; TargetEncoding = rapidjson::UTF8<>; Allocator = rapidjson::MemoryPoolAllocator<>]' | |
main.cpp:34:55: required from here | |
rapidjson/internal/stack.h:54:53: warning: cast from 'char*' to 'unsigned int*' increases required alignment of target type [-Wcast-align] | |
rapidjson/internal/stack.h: In instantiation of 'T* rapidjson::internal::Stack<Allocator>::Pop(size_t) [with T = unsigned int; Allocator = rapidjson::MemoryPoolAllocator<>; size_t = unsigned int]': | |
rapidjson/reader.h:1166:49: required from 'rapidjson::GenericReader<SourceEncoding, TargetEncoding, Allocator>::IterativeParsingState rapidjson::GenericReader<SourceEncoding, TargetEncoding, Allocator>::Transit(rapidjson::GenericReader<SourceEncoding, TargetEncoding, Allocator>::IterativeParsingState, rapidjson::GenericReader<SourceEncoding, TargetEncoding, Allocator>::Token, rapidjson::GenericReader<SourceEncoding, TargetEncoding, Allocator>::IterativeParsingState, InputStream&, Handler&) [with unsigned int parseFlags = 0u; InputStream = rapidjson::GenericInsituStringStream<rapidjson::UTF8<> >; Handler = Handler; SourceEncoding = rapidjson::UTF8<>; TargetEncoding = rapidjson::UTF8<>; Allocator = rapidjson::MemoryPoolAllocator<>]' | |
rapidjson/reader.h:1248:74: required from 'rapidjson::ParseResult rapidjson::GenericReader<SourceEncoding, TargetEncoding, Allocator>::IterativeParse(InputStream&, Handler&) [with unsigned int parseFlags = 0u; InputStream = rapidjson::GenericInsituStringStream<rapidjson::UTF8<> >; Handler = Handler; SourceEncoding = rapidjson::UTF8<>; TargetEncoding = rapidjson::UTF8<>; Allocator = rapidjson::MemoryPoolAllocator<>]' | |
rapidjson/reader.h:351:49: required from 'rapidjson::ParseResult rapidjson::GenericReader<SourceEncoding, TargetEncoding, Allocator>::Parse(InputStream&, Handler&) [with unsigned int parseFlags = 0u; InputStream = rapidjson::GenericInsituStringStream<rapidjson::UTF8<> >; Handler = Handler; SourceEncoding = rapidjson::UTF8<>; TargetEncoding = rapidjson::UTF8<>; Allocator = rapidjson::MemoryPoolAllocator<>]' | |
rapidjson/reader.h:393:47: required from 'rapidjson::ParseResult rapidjson::GenericReader<SourceEncoding, TargetEncoding, Allocator>::Parse(InputStream&, Handler&) [with InputStream = rapidjson::GenericInsituStringStream<rapidjson::UTF8<> >; Handler = Handler; SourceEncoding = rapidjson::UTF8<>; TargetEncoding = rapidjson::UTF8<>; Allocator = rapidjson::MemoryPoolAllocator<>]' | |
main.cpp:34:55: required from here | |
rapidjson/internal/stack.h:48:41: warning: cast from 'char*' to 'unsigned int*' increases required alignment of target type [-Wcast-align] | |
In file included from rapidjson/document.h:4:0, | |
from main.cpp:2: | |
rapidjson/reader.h: In instantiation of 'void rapidjson::GenericReader<SourceEncoding, TargetEncoding, Allocator>::ParseStringToStream(InputStream&, OutputStream&) [with unsigned int parseFlags = 0u; SEncoding = rapidjson::UTF8<>; TEncoding = rapidjson::UTF8<>; InputStream = rapidjson::GenericInsituStringStream<rapidjson::UTF8<> >; OutputStream = rapidjson::GenericInsituStringStream<rapidjson::UTF8<> >; SourceEncoding = rapidjson::UTF8<>; TargetEncoding = rapidjson::UTF8<>; Allocator = rapidjson::MemoryPoolAllocator<>]': | |
rapidjson/reader.h:596:4: required from 'void rapidjson::GenericReader<SourceEncoding, TargetEncoding, Allocator>::ParseString(InputStream&, Handler&) [with unsigned int parseFlags = 0u; InputStream = rapidjson::GenericInsituStringStream<rapidjson::UTF8<> >; Handler = Handler; SourceEncoding = rapidjson::UTF8<>; TargetEncoding = rapidjson::UTF8<>; Allocator = rapidjson::MemoryPoolAllocator<>]' | |
rapidjson/reader.h:444:4: required from 'void rapidjson::GenericReader<SourceEncoding, TargetEncoding, Allocator>::ParseObject(InputStream&, Handler&) [with unsigned int parseFlags = 0u; InputStream = rapidjson::GenericInsituStringStream<rapidjson::UTF8<> >; Handler = Handler; SourceEncoding = rapidjson::UTF8<>; TargetEncoding = rapidjson::UTF8<>; Allocator = rapidjson::MemoryPoolAllocator<>]' | |
rapidjson/reader.h:365:15: required from 'rapidjson::ParseResult rapidjson::GenericReader<SourceEncoding, TargetEncoding, Allocator>::Parse(InputStream&, Handler&) [with unsigned int parseFlags = 0u; InputStream = rapidjson::GenericInsituStringStream<rapidjson::UTF8<> >; Handler = Handler; SourceEncoding = rapidjson::UTF8<>; TargetEncoding = rapidjson::UTF8<>; Allocator = rapidjson::MemoryPoolAllocator<>]' | |
rapidjson/reader.h:393:47: required from 'rapidjson::ParseResult rapidjson::GenericReader<SourceEncoding, TargetEncoding, Allocator>::Parse(InputStream&, Handler&) [with InputStream = rapidjson::GenericInsituStringStream<rapidjson::UTF8<> >; Handler = Handler; SourceEncoding = rapidjson::UTF8<>; TargetEncoding = rapidjson::UTF8<>; Allocator = rapidjson::MemoryPoolAllocator<>]' | |
main.cpp:34:55: required from here | |
rapidjson/reader.h:634:5: warning: comparison is always true due to limited range of data type [-Wtype-limits] | |
rapidjson/reader.h: In instantiation of 'void rapidjson::GenericReader<SourceEncoding, TargetEncoding, Allocator>::ParseStringToStream(InputStream&, OutputStream&) [with unsigned int parseFlags = 0u; SEncoding = rapidjson::UTF8<>; TEncoding = rapidjson::UTF8<>; InputStream = rapidjson::GenericInsituStringStream<rapidjson::UTF8<> >; OutputStream = rapidjson::GenericReader<rapidjson::UTF8<>, rapidjson::UTF8<> >::StackStream; SourceEncoding = rapidjson::UTF8<>; TargetEncoding = rapidjson::UTF8<>; Allocator = rapidjson::MemoryPoolAllocator<>]': | |
rapidjson/reader.h:605:4: required from 'void rapidjson::GenericReader<SourceEncoding, TargetEncoding, Allocator>::ParseString(InputStream&, Handler&) [with unsigned int parseFlags = 0u; InputStream = rapidjson::GenericInsituStringStream<rapidjson::UTF8<> >; Handler = Handler; SourceEncoding = rapidjson::UTF8<>; TargetEncoding = rapidjson::UTF8<>; Allocator = rapidjson::MemoryPoolAllocator<>]' | |
rapidjson/reader.h:444:4: required from 'void rapidjson::GenericReader<SourceEncoding, TargetEncoding, Allocator>::ParseObject(InputStream&, Handler&) [with unsigned int parseFlags = 0u; InputStream = rapidjson::GenericInsituStringStream<rapidjson::UTF8<> >; Handler = Handler; SourceEncoding = rapidjson::UTF8<>; TargetEncoding = rapidjson::UTF8<>; Allocator = rapidjson::MemoryPoolAllocator<>]' | |
rapidjson/reader.h:365:15: required from 'rapidjson::ParseResult rapidjson::GenericReader<SourceEncoding, TargetEncoding, Allocator>::Parse(InputStream&, Handler&) [with unsigned int parseFlags = 0u; InputStream = rapidjson::GenericInsituStringStream<rapidjson::UTF8<> >; Handler = Handler; SourceEncoding = rapidjson::UTF8<>; TargetEncoding = rapidjson::UTF8<>; Allocator = rapidjson::MemoryPoolAllocator<>]' | |
rapidjson/reader.h:393:47: required from 'rapidjson::ParseResult rapidjson::GenericReader<SourceEncoding, TargetEncoding, Allocator>::Parse(InputStream&, Handler&) [with InputStream = rapidjson::GenericInsituStringStream<rapidjson::UTF8<> >; Handler = Handler; SourceEncoding = rapidjson::UTF8<>; TargetEncoding = rapidjson::UTF8<>; Allocator = rapidjson::MemoryPoolAllocator<>]' | |
main.cpp:34:55: required from here | |
rapidjson/reader.h:634:5: warning: comparison is always true due to limited range of data type [-Wtype-limits] | |
++ rm rapidjson | |
++ ln -s rapidjson_2 rapidjson | |
++ /opt/OSELAS.Toolchain-2012.12.1/arm-cortexa9-linux-gnueabihf/gcc-4.7.3-glibc-2.16.0-binutils-2.22-kernel-3.6-sanitized/bin/arm-cortexa9-linux-gnueabihf-g++ -c -g -D_DEBUG -std=c++11 -DBYTE_ORDER=1234 -D_POSIX_C_SOURCE=200809L -D__STDC_CONSTANT_MACROS -Wall -Wextra -pedantic -Wmissing-declarations -Wpointer-arith -Wwrite-strings -Wformat=2 -Wlogical-op -Wcast-align -Wcast-qual -Wundef -Wmissing-include-dirs -Wfloat-equal -Wconversion main.cpp | |
++ diff -Naur --exclude=.svn rapidjson_1 rapidjson_2 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff -Naur '--exclude=.svn' rapidjson_1/document.h rapidjson_2/document.h | |
--- rapidjson_1/document.h 2014-08-21 09:29:03.940987095 +0100 | |
+++ rapidjson_2/document.h 2014-08-18 13:57:48.762218790 +0100 | |
@@ -1405,7 +1405,7 @@ | |
} | |
static const size_t kDefaultStackCapacity = 1024; | |
- internal::Stack<Allocator> stack_; | |
+ internal::Stack<ValueType,Allocator> stack_; | |
ParseResult parseResult_; | |
}; | |
diff -Naur '--exclude=.svn' rapidjson_1/internal/itoa.h rapidjson_2/internal/itoa.h | |
--- rapidjson_1/internal/itoa.h 2014-08-21 09:29:04.104323176 +0100 | |
+++ rapidjson_2/internal/itoa.h 2014-08-18 13:57:48.822994480 +0100 | |
@@ -74,7 +74,7 @@ | |
*buffer++ = cDigitsLut[i + 1]; | |
} | |
else | |
- *buffer++ = '0' + static_cast<char>(a); | |
+ *buffer++ = static_cast<char>('0' + a); | |
const uint32_t b = value / 10000; // 0 to 9999 | |
const uint32_t c = value % 10000; // 0 to 9999 | |
@@ -201,14 +201,14 @@ | |
value %= UINT64_C(10000000000000000); | |
if (a < 10) | |
- *buffer++ = '0' + static_cast<char>(a); | |
+ *buffer++ = (char)('0' + a); | |
else if (a < 100) { | |
const uint32_t i = a << 1; | |
*buffer++ = cDigitsLut[i]; | |
*buffer++ = cDigitsLut[i + 1]; | |
} | |
else if (a < 1000) { | |
- *buffer++ = '0' + static_cast<char>(a / 100); | |
+ *buffer++ = static_cast<char>('0' + a / 100); | |
const uint32_t i = (a % 100) << 1; | |
*buffer++ = cDigitsLut[i]; | |
diff -Naur '--exclude=.svn' rapidjson_1/internal/stack.h rapidjson_2/internal/stack.h | |
--- rapidjson_1/internal/stack.h 2014-08-21 09:29:04.030263135 +0100 | |
+++ rapidjson_2/internal/stack.h 2014-08-21 15:14:03.535338401 +0100 | |
@@ -10,14 +10,14 @@ | |
//! A type-unsafe stack for storing different types of data. | |
/*! \tparam Allocator Allocator for allocating stack memory. | |
*/ | |
-template <typename Allocator> | |
+template <typename T,typename Allocator> | |
class Stack { | |
public: | |
- Stack(Allocator* allocator, size_t stack_capacity) : allocator_(allocator), own_allocator_(0), stack_(0), stack_top_(0), stack_end_(0), stack_capacity_(stack_capacity) { | |
+ Stack(Allocator* allocator, size_t stack_capacity) : allocator_(allocator), own_allocator_(0), stack_(0), stack_top_(0), stack_end_(0), stack_capacity_(stack_capacity/sizeof(T)) { | |
RAPIDJSON_ASSERT(stack_capacity_ > 0); | |
if (!allocator_) | |
own_allocator_ = allocator_ = new Allocator(); | |
- stack_top_ = stack_ = (char*)allocator_->Malloc(stack_capacity_); | |
+ stack_top_ = stack_ = (T*)allocator_->Malloc(stack_capacity_*sizeof(T)); | |
stack_end_ = stack_ + stack_capacity_; | |
} | |
@@ -30,31 +30,31 @@ | |
// Optimization note: try to minimize the size of this function for force inline. | |
// Expansion is run very infrequently, so it is moved to another (probably non-inline) function. | |
- template<typename T> | |
+ //template<typename T> | |
RAPIDJSON_FORCEINLINE T* Push(size_t count = 1) { | |
// Expand the stack if needed | |
- if (stack_top_ + sizeof(T) * count >= stack_end_) | |
- Expand<T>(count); | |
+ if (stack_top_ + count >= stack_end_) | |
+ Expand(count); | |
- T* ret = reinterpret_cast<T*>(stack_top_); | |
- stack_top_ += sizeof(T) * count; | |
+ T* ret = stack_top_; | |
+ stack_top_ += count; | |
return ret; | |
} | |
- template<typename T> | |
+ //template<typename T> | |
T* Pop(size_t count) { | |
- RAPIDJSON_ASSERT(GetSize() >= count * sizeof(T)); | |
- stack_top_ -= count * sizeof(T); | |
+ RAPIDJSON_ASSERT(GetSize() >= count); | |
+ stack_top_ -= count; | |
return reinterpret_cast<T*>(stack_top_); | |
} | |
- template<typename T> | |
+ //template<typename T> | |
T* Top() { | |
- RAPIDJSON_ASSERT(GetSize() >= sizeof(T)); | |
- return reinterpret_cast<T*>(stack_top_ - sizeof(T)); | |
+ RAPIDJSON_ASSERT(GetSize() >= 1); | |
+ return reinterpret_cast<T*>(stack_top_ - 1); | |
} | |
- template<typename T> | |
+ //template<typename T> | |
T* Bottom() { return (T*)stack_; } | |
Allocator& GetAllocator() { return *allocator_; } | |
@@ -63,14 +63,14 @@ | |
size_t GetCapacity() const { return stack_capacity_; } | |
private: | |
- template<typename T> | |
+ //template<typename T> | |
void Expand(size_t count) { | |
size_t new_capacity = stack_capacity_ * 2; | |
size_t size = GetSize(); | |
- size_t new_size = GetSize() + sizeof(T) * count; | |
+ size_t new_size = GetSize() + count; | |
if (new_capacity < new_size) | |
new_capacity = new_size; | |
- stack_ = (char*)allocator_->Realloc(stack_, stack_capacity_, new_capacity); | |
+ stack_ = (T*)allocator_->Realloc(stack_, stack_capacity_*sizeof(T), new_capacity * sizeof(T)); | |
stack_capacity_ = new_capacity; | |
stack_top_ = stack_ + size; | |
stack_end_ = stack_ + stack_capacity_; | |
@@ -82,9 +82,9 @@ | |
Allocator* allocator_; | |
Allocator* own_allocator_; | |
- char *stack_; | |
- char *stack_top_; | |
- char *stack_end_; | |
+ T *stack_; | |
+ T *stack_top_; | |
+ T *stack_end_; | |
size_t stack_capacity_; | |
}; | |
diff -Naur '--exclude=.svn' rapidjson_1/reader.h rapidjson_2/reader.h | |
--- rapidjson_1/reader.h 2014-08-21 09:29:04.667779746 +0100 | |
+++ rapidjson_2/reader.h 2014-08-18 13:57:49.406770223 +0100 | |
@@ -572,12 +572,12 @@ | |
public: | |
typedef typename TargetEncoding::Ch Ch; | |
- StackStream(internal::Stack<Allocator>& stack) : stack_(stack), length_(0) {} | |
+ StackStream(internal::Stack<Ch,Allocator>& stack) : stack_(stack), length_(0) {} | |
RAPIDJSON_FORCEINLINE void Put(Ch c) { | |
- *stack_.template Push<Ch>() = c; | |
+ *stack_.Push() = c; | |
++length_; | |
} | |
- internal::Stack<Allocator>& stack_; | |
+ internal::Stack<Ch,Allocator>& stack_; | |
SizeType length_; | |
private: | |
@@ -604,7 +604,7 @@ | |
StackStream stackStream(stack_); | |
ParseStringToStream<parseFlags, SourceEncoding, TargetEncoding>(s, stackStream); | |
RAPIDJSON_PARSE_ERROR_EARLY_RETURN_VOID; | |
- if (!handler.String(stack_.template Pop<typename TargetEncoding::Ch>(stackStream.length_), stackStream.length_ - 1, true)) | |
+ if (!handler.String(stack_.Pop(stackStream.length_), stackStream.length_ - 1, true)) | |
RAPIDJSON_PARSE_ERROR(kParseErrorTermination, s.Tell()); | |
} | |
} | |
@@ -631,7 +631,7 @@ | |
if (c == '\\') { // Escape | |
is.Take(); | |
Ch e = is.Take(); | |
- if ((sizeof(Ch) == 1 || unsigned(e) < 256) && escape[(unsigned char)e]) { | |
+ if ((sizeof(Ch) == 1 || ((c & 0xFF) == c) ) && escape[(unsigned char)e]) { | |
os.Put(escape[(unsigned char)e]); | |
} | |
else if (e == 'u') { // Unicode | |
@@ -916,7 +916,7 @@ | |
#undef N | |
#undef N16 | |
- if (sizeof(Ch) == 1 || unsigned(c) < 256) | |
+ if (sizeof(Ch) == 1 || ((c & 0xFF) == c) ) | |
return (Token)tokenMap[(unsigned char)c]; | |
else | |
return NumberToken; | |
@@ -1106,9 +1106,9 @@ | |
else if (src == IterativeParsingKeyValueDelimiterState) | |
n = IterativeParsingMemberValueState; | |
// Push current state. | |
- *stack_.template Push<SizeType>(1) = n; | |
+ *stack_.Push(1) = n; | |
// Initialize and push the member/element count. | |
- *stack_.template Push<SizeType>(1) = 0; | |
+ *stack_.Push(1) = 0; | |
// Call handler | |
bool hr = (dst == IterativeParsingObjectInitialState) ? handler.StartObject() : handler.StartArray(); | |
// On handler short circuits the parsing. | |
@@ -1157,18 +1157,18 @@ | |
case IterativeParsingElementDelimiterState: | |
is.Take(); | |
// Update member/element count. | |
- *stack_.template Top<SizeType>() = *stack_.template Top<SizeType>() + 1; | |
+ *stack_.Top() = (typename TargetEncoding::Ch)(*stack_.Top() + 1); | |
return dst; | |
case IterativeParsingObjectFinishState: | |
{ | |
// Get member count. | |
- SizeType c = *stack_.template Pop<SizeType>(1); | |
+ SizeType c = *stack_.Pop(1); | |
// If the object is not empty, count the last member. | |
if (src == IterativeParsingMemberValueState) | |
++c; | |
// Restore the state. | |
- IterativeParsingState n = static_cast<IterativeParsingState>(*stack_.template Pop<SizeType>(1)); | |
+ IterativeParsingState n = static_cast<IterativeParsingState>(*stack_.Pop(1)); | |
// Transit to Finish state if this is the topmost scope. | |
if (n == IterativeParsingStartState) | |
n = IterativeParsingFinishState; | |
@@ -1188,12 +1188,12 @@ | |
case IterativeParsingArrayFinishState: | |
{ | |
// Get element count. | |
- SizeType c = *stack_.template Pop<SizeType>(1); | |
+ SizeType c = *stack_.Pop(1); | |
// If the array is not empty, count the last element. | |
if (src == IterativeParsingElementState) | |
++c; | |
// Restore the state. | |
- IterativeParsingState n = static_cast<IterativeParsingState>(*stack_.template Pop<SizeType>(1)); | |
+ IterativeParsingState n = static_cast<IterativeParsingState>(*stack_.Pop(1)); | |
// Transit to Finish state if this is the topmost scope. | |
if (n == IterativeParsingStartState) | |
n = IterativeParsingFinishState; | |
@@ -1269,7 +1269,7 @@ | |
} | |
static const size_t kDefaultStackCapacity = 256; //!< Default stack capacity in bytes for storing a single decoded string. | |
- internal::Stack<Allocator> stack_; //!< A stack for storing decoded string temporarily during non-destructive parsing. | |
+ internal::Stack<typename TargetEncoding::Ch,Allocator> stack_; //!< A stack for storing decoded string temporarily during non-destructive parsing. | |
ParseResult parseResult_; | |
}; // class GenericReader | |
diff -Naur '--exclude=.svn' rapidjson_1/stringbuffer.h rapidjson_2/stringbuffer.h | |
--- rapidjson_1/stringbuffer.h 2014-08-21 09:29:04.621450889 +0100 | |
+++ rapidjson_2/stringbuffer.h 2014-08-20 10:50:05.488896697 +0100 | |
@@ -18,25 +18,25 @@ | |
GenericStringBuffer(Allocator* allocator = 0, size_t capacity = kDefaultCapacity) : stack_(allocator, capacity) {} | |
- void Put(Ch c) { *stack_.template Push<Ch>() = c; } | |
+ void Put(Ch c) { *stack_.Push() = c; } | |
void Flush() {} | |
void Clear() { stack_.Clear(); } | |
- Ch* Push(size_t count) { return stack_.template Push<Ch>(count); } | |
- void Pop(size_t count) { stack_.template Pop<Ch>(count); } | |
+ Ch* Push(size_t count) { return stack_.Push(count); } | |
+ void Pop(size_t count) { stack_.Pop(count); } | |
const Ch* GetString() const { | |
// Push and pop a null terminator. This is safe. | |
- *stack_.template Push<Ch>() = '\0'; | |
- stack_.template Pop<Ch>(1); | |
+ *stack_.Push() = '\0'; | |
+ stack_.Pop(1); | |
- return stack_.template Bottom<Ch>(); | |
+ return stack_.Bottom(); | |
} | |
- size_t GetSize() const { return stack_.GetSize(); } | |
+ size_t GetSize() const { return stack_.GetSize() * sizeof(Ch); } | |
static const size_t kDefaultCapacity = 256; | |
- mutable internal::Stack<Allocator> stack_; | |
+ mutable internal::Stack<Ch,Allocator> stack_; | |
}; | |
//! String buffer with UTF8 encoding | |
@@ -45,7 +45,7 @@ | |
//! Implement specialized version of PutN() with memset() for better performance. | |
template<> | |
inline void PutN(GenericStringBuffer<UTF8<> >& stream, char c, size_t n) { | |
- memset(stream.stack_.Push<char>(n), c, n * sizeof(c)); | |
+ memset(stream.stack_.Push(n), c, n * sizeof(c)); | |
} | |
} // namespace rapidjson | |
diff -Naur '--exclude=.svn' rapidjson_1/writer.h rapidjson_2/writer.h | |
--- rapidjson_1/writer.h 2014-08-21 09:29:03.888829377 +0100 | |
+++ rapidjson_2/writer.h 2014-08-18 16:21:52.983248448 +0100 | |
@@ -131,15 +131,15 @@ | |
bool StartObject() { | |
Prefix(kObjectType); | |
- new (level_stack_.template Push<Level>()) Level(false); | |
+ new (level_stack_.Push()) Level(false); | |
return WriteStartObject(); | |
} | |
bool EndObject(SizeType memberCount = 0) { | |
(void)memberCount; | |
- RAPIDJSON_ASSERT(level_stack_.GetSize() >= sizeof(Level)); | |
- RAPIDJSON_ASSERT(!level_stack_.template Top<Level>()->inArray); | |
- level_stack_.template Pop<Level>(1); | |
+ RAPIDJSON_ASSERT(level_stack_.GetSize() >= 1); | |
+ RAPIDJSON_ASSERT(!level_stack_.Top()->inArray); | |
+ level_stack_.Pop(1); | |
bool ret = WriteEndObject(); | |
if (level_stack_.Empty()) // end of json text | |
os_->Flush(); | |
@@ -148,15 +148,15 @@ | |
bool StartArray() { | |
Prefix(kArrayType); | |
- new (level_stack_.template Push<Level>()) Level(true); | |
+ new (level_stack_.Push()) Level(true); | |
return WriteStartArray(); | |
} | |
bool EndArray(SizeType elementCount = 0) { | |
(void)elementCount; | |
- RAPIDJSON_ASSERT(level_stack_.GetSize() >= sizeof(Level)); | |
- RAPIDJSON_ASSERT(level_stack_.template Top<Level>()->inArray); | |
- level_stack_.template Pop<Level>(1); | |
+ RAPIDJSON_ASSERT(level_stack_.GetSize() >= 1); | |
+ RAPIDJSON_ASSERT(level_stack_.Top()->inArray); | |
+ level_stack_.Pop(1); | |
bool ret = WriteEndArray(); | |
if (level_stack_.Empty()) // end of json text | |
os_->Flush(); | |
@@ -312,7 +312,7 @@ | |
else | |
return false; // invalid code point | |
} | |
- else if ((sizeof(Ch) == 1 || (unsigned)c < 256) && escape[(unsigned char)c]) { | |
+ else if ( ((sizeof(Ch) == 1) | ((c & 0xFF) == c)) && escape[(unsigned char)c]) { | |
is.Take(); | |
os_->Put('\\'); | |
os_->Put(escape[(unsigned char)c]); | |
@@ -338,7 +338,7 @@ | |
void Prefix(Type type) { | |
(void)type; | |
if (level_stack_.GetSize() != 0) { // this value is not at root | |
- Level* level = level_stack_.template Top<Level>(); | |
+ Level* level = level_stack_.Top(); | |
if (level->valueCount > 0) { | |
if (level->inArray) | |
os_->Put(','); // add comma if it is not the first element in array | |
@@ -357,7 +357,7 @@ | |
} | |
OutputStream* os_; | |
- internal::Stack<Allocator> level_stack_; | |
+ internal::Stack<Level,Allocator> level_stack_; | |
int doublePrecision_; | |
bool hasRoot_; | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment