123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230 |
- // 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. All rights reserved.
- //
- // 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
|