[Global]: loading init
This commit is contained in:
230
deps/rapidjson/test/unittest/fwdtest.cpp
vendored
Normal file
230
deps/rapidjson/test/unittest/fwdtest.cpp
vendored
Normal file
@ -0,0 +1,230 @@
|
||||
// Tencent is pleased to support the open source community by making RapidJSON available.
|
||||
//
|
||||
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
|
||||
//
|
||||
// Licensed under the MIT License (the "License"); you may not use this file except
|
||||
// in compliance with the License. You may obtain a copy of the License at
|
||||
//
|
||||
// http://opensource.org/licenses/MIT
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software distributed
|
||||
// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
|
||||
// CONDITIONS OF ANY KIND, either express or implied. See the License for the
|
||||
// specific language governing permissions and limitations under the License.
|
||||
|
||||
#include "unittest.h"
|
||||
|
||||
// Using forward declared types here.
|
||||
|
||||
#include "rapidjson/fwd.h"
|
||||
|
||||
#ifdef __GNUC__
|
||||
RAPIDJSON_DIAG_PUSH
|
||||
RAPIDJSON_DIAG_OFF(effc++)
|
||||
#endif
|
||||
|
||||
using namespace rapidjson;
|
||||
|
||||
struct Foo {
|
||||
Foo();
|
||||
~Foo();
|
||||
|
||||
// encodings.h
|
||||
UTF8<char>* utf8;
|
||||
UTF16<wchar_t>* utf16;
|
||||
UTF16BE<wchar_t>* utf16be;
|
||||
UTF16LE<wchar_t>* utf16le;
|
||||
UTF32<unsigned>* utf32;
|
||||
UTF32BE<unsigned>* utf32be;
|
||||
UTF32LE<unsigned>* utf32le;
|
||||
ASCII<char>* ascii;
|
||||
AutoUTF<unsigned>* autoutf;
|
||||
Transcoder<UTF8<char>, UTF8<char> >* transcoder;
|
||||
|
||||
// allocators.h
|
||||
CrtAllocator* crtallocator;
|
||||
MemoryPoolAllocator<CrtAllocator>* memorypoolallocator;
|
||||
|
||||
// stream.h
|
||||
StringStream* stringstream;
|
||||
InsituStringStream* insitustringstream;
|
||||
|
||||
// stringbuffer.h
|
||||
StringBuffer* stringbuffer;
|
||||
|
||||
// // filereadstream.h
|
||||
// FileReadStream* filereadstream;
|
||||
|
||||
// // filewritestream.h
|
||||
// FileWriteStream* filewritestream;
|
||||
|
||||
// memorybuffer.h
|
||||
MemoryBuffer* memorybuffer;
|
||||
|
||||
// memorystream.h
|
||||
MemoryStream* memorystream;
|
||||
|
||||
// reader.h
|
||||
BaseReaderHandler<UTF8<char>, void>* basereaderhandler;
|
||||
Reader* reader;
|
||||
|
||||
// writer.h
|
||||
Writer<StringBuffer, UTF8<char>, UTF8<char>, CrtAllocator, 0>* writer;
|
||||
|
||||
// prettywriter.h
|
||||
PrettyWriter<StringBuffer, UTF8<char>, UTF8<char>, CrtAllocator, 0>* prettywriter;
|
||||
|
||||
// document.h
|
||||
Value* value;
|
||||
Document* document;
|
||||
|
||||
// pointer.h
|
||||
Pointer* pointer;
|
||||
|
||||
// schema.h
|
||||
SchemaDocument* schemadocument;
|
||||
SchemaValidator* schemavalidator;
|
||||
|
||||
// char buffer[16];
|
||||
};
|
||||
|
||||
// Using type definitions here.
|
||||
|
||||
#include "rapidjson/stringbuffer.h"
|
||||
#include "rapidjson/filereadstream.h"
|
||||
#include "rapidjson/filewritestream.h"
|
||||
#include "rapidjson/memorybuffer.h"
|
||||
#include "rapidjson/memorystream.h"
|
||||
#include "rapidjson/document.h" // -> reader.h
|
||||
#include "rapidjson/writer.h"
|
||||
#include "rapidjson/prettywriter.h"
|
||||
#include "rapidjson/schema.h" // -> pointer.h
|
||||
|
||||
typedef Transcoder<UTF8<>, UTF8<> > TranscoderUtf8ToUtf8;
|
||||
typedef BaseReaderHandler<UTF8<>, void> BaseReaderHandlerUtf8Void;
|
||||
|
||||
Foo::Foo() :
|
||||
// encodings.h
|
||||
utf8(RAPIDJSON_NEW(UTF8<>)),
|
||||
utf16(RAPIDJSON_NEW(UTF16<>)),
|
||||
utf16be(RAPIDJSON_NEW(UTF16BE<>)),
|
||||
utf16le(RAPIDJSON_NEW(UTF16LE<>)),
|
||||
utf32(RAPIDJSON_NEW(UTF32<>)),
|
||||
utf32be(RAPIDJSON_NEW(UTF32BE<>)),
|
||||
utf32le(RAPIDJSON_NEW(UTF32LE<>)),
|
||||
ascii(RAPIDJSON_NEW(ASCII<>)),
|
||||
autoutf(RAPIDJSON_NEW(AutoUTF<unsigned>)),
|
||||
transcoder(RAPIDJSON_NEW(TranscoderUtf8ToUtf8)),
|
||||
|
||||
// allocators.h
|
||||
crtallocator(RAPIDJSON_NEW(CrtAllocator)),
|
||||
memorypoolallocator(RAPIDJSON_NEW(MemoryPoolAllocator<>)),
|
||||
|
||||
// stream.h
|
||||
stringstream(RAPIDJSON_NEW(StringStream)(NULL)),
|
||||
insitustringstream(RAPIDJSON_NEW(InsituStringStream)(NULL)),
|
||||
|
||||
// stringbuffer.h
|
||||
stringbuffer(RAPIDJSON_NEW(StringBuffer)),
|
||||
|
||||
// // filereadstream.h
|
||||
// filereadstream(RAPIDJSON_NEW(FileReadStream)(stdout, buffer, sizeof(buffer))),
|
||||
|
||||
// // filewritestream.h
|
||||
// filewritestream(RAPIDJSON_NEW(FileWriteStream)(stdout, buffer, sizeof(buffer))),
|
||||
|
||||
// memorybuffer.h
|
||||
memorybuffer(RAPIDJSON_NEW(MemoryBuffer)),
|
||||
|
||||
// memorystream.h
|
||||
memorystream(RAPIDJSON_NEW(MemoryStream)(NULL, 0)),
|
||||
|
||||
// reader.h
|
||||
basereaderhandler(RAPIDJSON_NEW(BaseReaderHandlerUtf8Void)),
|
||||
reader(RAPIDJSON_NEW(Reader)),
|
||||
|
||||
// writer.h
|
||||
writer(RAPIDJSON_NEW(Writer<StringBuffer>)),
|
||||
|
||||
// prettywriter.h
|
||||
prettywriter(RAPIDJSON_NEW(PrettyWriter<StringBuffer>)),
|
||||
|
||||
// document.h
|
||||
value(RAPIDJSON_NEW(Value)),
|
||||
document(RAPIDJSON_NEW(Document)),
|
||||
|
||||
// pointer.h
|
||||
pointer(RAPIDJSON_NEW(Pointer)),
|
||||
|
||||
// schema.h
|
||||
schemadocument(RAPIDJSON_NEW(SchemaDocument)(*document)),
|
||||
schemavalidator(RAPIDJSON_NEW(SchemaValidator)(*schemadocument))
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
Foo::~Foo() {
|
||||
// encodings.h
|
||||
RAPIDJSON_DELETE(utf8);
|
||||
RAPIDJSON_DELETE(utf16);
|
||||
RAPIDJSON_DELETE(utf16be);
|
||||
RAPIDJSON_DELETE(utf16le);
|
||||
RAPIDJSON_DELETE(utf32);
|
||||
RAPIDJSON_DELETE(utf32be);
|
||||
RAPIDJSON_DELETE(utf32le);
|
||||
RAPIDJSON_DELETE(ascii);
|
||||
RAPIDJSON_DELETE(autoutf);
|
||||
RAPIDJSON_DELETE(transcoder);
|
||||
|
||||
// allocators.h
|
||||
RAPIDJSON_DELETE(crtallocator);
|
||||
RAPIDJSON_DELETE(memorypoolallocator);
|
||||
|
||||
// stream.h
|
||||
RAPIDJSON_DELETE(stringstream);
|
||||
RAPIDJSON_DELETE(insitustringstream);
|
||||
|
||||
// stringbuffer.h
|
||||
RAPIDJSON_DELETE(stringbuffer);
|
||||
|
||||
// // filereadstream.h
|
||||
// RAPIDJSON_DELETE(filereadstream);
|
||||
|
||||
// // filewritestream.h
|
||||
// RAPIDJSON_DELETE(filewritestream);
|
||||
|
||||
// memorybuffer.h
|
||||
RAPIDJSON_DELETE(memorybuffer);
|
||||
|
||||
// memorystream.h
|
||||
RAPIDJSON_DELETE(memorystream);
|
||||
|
||||
// reader.h
|
||||
RAPIDJSON_DELETE(basereaderhandler);
|
||||
RAPIDJSON_DELETE(reader);
|
||||
|
||||
// writer.h
|
||||
RAPIDJSON_DELETE(writer);
|
||||
|
||||
// prettywriter.h
|
||||
RAPIDJSON_DELETE(prettywriter);
|
||||
|
||||
// document.h
|
||||
RAPIDJSON_DELETE(value);
|
||||
RAPIDJSON_DELETE(document);
|
||||
|
||||
// pointer.h
|
||||
RAPIDJSON_DELETE(pointer);
|
||||
|
||||
// schema.h
|
||||
RAPIDJSON_DELETE(schemadocument);
|
||||
RAPIDJSON_DELETE(schemavalidator);
|
||||
}
|
||||
|
||||
TEST(Fwd, Fwd) {
|
||||
Foo f;
|
||||
}
|
||||
|
||||
#ifdef __GNUC__
|
||||
RAPIDJSON_DIAG_POP
|
||||
#endif
|
Reference in New Issue
Block a user