Skip to content

Commit 47b837e

Browse files
authored
Merge pull request Tencent#1485 from ylavic/MemberMap
Object members stored in std::multimap
2 parents 7d801bb + be4a5a9 commit 47b837e

File tree

9 files changed

+933
-86
lines changed

9 files changed

+933
-86
lines changed

.travis.yml

Lines changed: 27 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -28,59 +28,65 @@ env:
2828
matrix:
2929
include:
3030
# gcc
31-
- env: CONF=release ARCH=x86 CXX11=ON CXX17=OFF
31+
- env: CONF=release ARCH=x86 CXX11=ON CXX17=OFF MEMBERSMAP=OFF
3232
compiler: gcc
3333
arch: amd64
34-
- env: CONF=release ARCH=x86_64 CXX11=ON CXX17=OFF
34+
- env: CONF=release ARCH=x86_64 CXX11=ON CXX17=OFF MEMBERSMAP=OFF
3535
compiler: gcc
3636
arch: amd64
37-
- env: CONF=debug ARCH=x86 CXX11=OFF CXX17=OFF
37+
- env: CONF=release ARCH=x86_64 CXX11=ON CXX17=OFF MEMBERSMAP=ON
3838
compiler: gcc
3939
arch: amd64
40-
- env: CONF=debug ARCH=x86_64 CXX11=OFF CXX17=OFF
40+
- env: CONF=debug ARCH=x86 CXX11=OFF CXX17=OFF MEMBERSMAP=OFF
4141
compiler: gcc
4242
arch: amd64
43-
- env: CONF=debug ARCH=x86 CXX11=OFF CXX17=ON CXX_FLAGS='-D_GLIBCXX_DEBUG'
43+
- env: CONF=debug ARCH=x86_64 CXX11=OFF CXX17=OFF MEMBERSMAP=OFF
4444
compiler: gcc
45-
arch: amd64/
46-
- env: CONF=debug ARCH=x86_64 CXX11=OFF CXX17=ON CXX_FLAGS='-D_GLIBCXX_DEBUG'
45+
arch: amd64
46+
- env: CONF=debug ARCH=x86 CXX11=OFF CXX17=ON MEMBERSMAP=ON CXX_FLAGS='-D_GLIBCXX_DEBUG'
47+
compiler: gcc
48+
arch: amd64
49+
- env: CONF=debug ARCH=x86_64 CXX11=OFF CXX17=ON MEMBERSMAP=ON CXX_FLAGS='-D_GLIBCXX_DEBUG'
4750
compiler: gcc
4851
arch: amd64
49-
- env: CONF=release ARCH=aarch64 CXX11=ON CXX17=OFF
52+
- env: CONF=release ARCH=aarch64 CXX11=ON CXX17=OFF MEMBERSMAP=OFF
5053
compiler: gcc
5154
arch: arm64
52-
- env: CONF=release ARCH=aarch64 CXX11=OFF CXX17=OFF
55+
- env: CONF=release ARCH=aarch64 CXX11=OFF CXX17=OFF MEMBERSMAP=OFF
5356
compiler: gcc
5457
arch: arm64
55-
- env: CONF=release ARCH=aarch64 CXX11=OFF CXX17=ON
58+
- env: CONF=release ARCH=aarch64 CXX11=OFF CXX17=ON MEMBERSMAP=ON
5659
compiler: gcc
5760
arch: arm64
5861
# clang
59-
- env: CONF=release ARCH=x86 CXX11=ON CXX17=OFF CCACHE_CPP2=yes
62+
- env: CONF=release ARCH=x86 CXX11=ON CXX17=OFF MEMBERSMAP=ON CCACHE_CPP2=yes
63+
compiler: clang
64+
arch: amd64
65+
- env: CONF=release ARCH=x86_64 CXX11=ON CXX17=OFF MEMBERSMAP=ON CCACHE_CPP2=yes
6066
compiler: clang
6167
arch: amd64
62-
- env: CONF=release ARCH=x86_64 CXX11=ON CXX17=OFF CCACHE_CPP2=yes
68+
- env: CONF=release ARCH=x86_64 CXX11=ON CXX17=OFF MEMBERSMAP=OFF CCACHE_CPP2=yes
6369
compiler: clang
6470
arch: amd64
65-
- env: CONF=debug ARCH=x86 CXX11=OFF CXX17=OFF CCACHE_CPP2=yes
71+
- env: CONF=debug ARCH=x86 CXX11=OFF CXX17=OFF MEMBERSMAP=ON CCACHE_CPP2=yes
6672
compiler: clang
6773
arch: amd64
68-
- env: CONF=debug ARCH=x86_64 CXX11=OFF CXX17=OFF CCACHE_CPP2=yes
74+
- env: CONF=debug ARCH=x86_64 CXX11=OFF CXX17=OFF MEMBERSMAP=ON CCACHE_CPP2=yes
6975
compiler: clang
7076
arch: amd64
71-
- env: CONF=debug ARCH=x86 CXX11=OFF CXX17=ON CCACHE_CPP2=yes
77+
- env: CONF=debug ARCH=x86 CXX11=OFF CXX17=ON MEMBERSMAP=OFF CCACHE_CPP2=yes
7278
compiler: clang
7379
arch: amd64
74-
- env: CONF=debug ARCH=x86_64 CXX11=OFF CXX17=ON CCACHE_CPP2=yes
80+
- env: CONF=debug ARCH=x86_64 CXX11=OFF CXX17=ON MEMBERSMAP=OFF CCACHE_CPP2=yes
7581
compiler: clang
7682
arch: amd64
77-
- env: CONF=debug ARCH=aarch64 CXX11=ON CXX17=OFF CCACHE_CPP2=yes
83+
- env: CONF=debug ARCH=aarch64 CXX11=ON CXX17=OFF MEMBERSMAP=ON CCACHE_CPP2=yes
7884
compiler: clang
7985
arch: arm64
80-
- env: CONF=debug ARCH=aarch64 CXX11=OFF CXX17=OFF CCACHE_CPP2=yes
86+
- env: CONF=debug ARCH=aarch64 CXX11=OFF CXX17=OFF MEMBERSMAP=ON CCACHE_CPP2=yes
8187
compiler: clang
8288
arch: arm64
83-
- env: CONF=debug ARCH=aarch64 CXX11=OFF CXX17=ON CCACHE_CPP2=yes
89+
- env: CONF=debug ARCH=aarch64 CXX11=OFF CXX17=ON MEMBERSMAP=OFF CCACHE_CPP2=yes
8490
compiler: clang
8591
arch: arm64
8692
# coverage report
@@ -93,7 +99,7 @@ matrix:
9399
after_success:
94100
- pip install --user cpp-coveralls
95101
- coveralls -r .. --gcov-options '\-lp' -e thirdparty -e example -e test -e build/CMakeFiles -e include/rapidjson/msinttypes -e include/rapidjson/internal/meta.h -e include/rapidjson/error/en.h
96-
- env: CONF=debug ARCH=x86_64 GCOV_FLAGS='--coverage' CXX_FLAGS='-O0' CXX11=ON CXX17=OFF
102+
- env: CONF=debug ARCH=x86_64 GCOV_FLAGS='--coverage' CXX_FLAGS='-O0' CXX11=ON CXX17=OFF MEMBERSMAP=ON
97103
compiler: gcc
98104
arch: amd64
99105
cache:
@@ -146,6 +152,7 @@ script:
146152
eval "ARCH_FLAGS=\${ARCH_FLAGS_${ARCH}}" ;
147153
(cd build && cmake
148154
-DRAPIDJSON_HAS_STDSTRING=ON
155+
-DRAPIDJSON_USE_MEMBERSMAP=$MEMBERSMAP
149156
-DRAPIDJSON_BUILD_CXX11=$CXX11
150157
-DRAPIDJSON_BUILD_CXX17=$CXX17
151158
-DCMAKE_VERBOSE_MAKEFILE=ON

CMakeLists.txt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,11 @@ if(RAPIDJSON_HAS_STDSTRING)
5252
add_definitions(-DRAPIDJSON_HAS_STDSTRING)
5353
endif()
5454

55+
option(RAPIDJSON_USE_MEMBERSMAP "" OFF)
56+
if(RAPIDJSON_USE_MEMBERSMAP)
57+
add_definitions(-DRAPIDJSON_USE_MEMBERSMAP=1)
58+
endif()
59+
5560
find_program(CCACHE_FOUND ccache)
5661
if(CCACHE_FOUND)
5762
set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ccache)

appveyor.yml

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,70 +15,83 @@ environment:
1515
VS_PLATFORM: win32
1616
CXX11: OFF
1717
CXX17: OFF
18+
MEMBERSMAP: OFF
1819
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2013
1920
VS_VERSION: 10 2010
2021
VS_PLATFORM: x64
2122
CXX11: OFF
2223
CXX17: OFF
24+
MEMBERSMAP: ON
2325
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2013
2426
VS_VERSION: 11 2012
2527
VS_PLATFORM: win32
2628
CXX11: OFF
2729
CXX17: OFF
30+
MEMBERSMAP: ON
2831
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2013
2932
VS_VERSION: 11 2012
3033
VS_PLATFORM: x64
3134
CXX11: OFF
3235
CXX17: OFF
36+
MEMBERSMAP: OFF
3337
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2013
3438
VS_VERSION: 12 2013
3539
VS_PLATFORM: win32
3640
CXX11: OFF
3741
CXX17: OFF
42+
MEMBERSMAP: OFF
3843
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2013
3944
VS_VERSION: 12 2013
4045
VS_PLATFORM: x64
4146
CXX11: OFF
4247
CXX17: OFF
48+
MEMBERSMAP: ON
4349
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
4450
VS_VERSION: 14 2015
4551
VS_PLATFORM: win32
4652
CXX11: OFF
4753
CXX17: OFF
54+
MEMBERSMAP: ON
4855
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
4956
VS_VERSION: 14 2015
5057
VS_PLATFORM: x64
5158
CXX11: OFF
5259
CXX17: OFF
60+
MEMBERSMAP: OFF
5361
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
5462
VS_VERSION: 15 2017
5563
VS_PLATFORM: win32
5664
CXX11: OFF
5765
CXX17: OFF
66+
MEMBERSMAP: OFF
5867
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
5968
VS_VERSION: 15 2017
6069
VS_PLATFORM: x64
6170
CXX11: OFF
6271
CXX17: OFF
72+
MEMBERSMAP: ON
6373
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
6474
VS_VERSION: 15 2017
6575
VS_PLATFORM: x64
6676
CXX11: ON
6777
CXX17: OFF
78+
MEMBERSMAP: OFF
6879
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
6980
VS_VERSION: 15 2017
7081
VS_PLATFORM: x64
7182
CXX11: OFF
7283
CXX17: ON
84+
MEMBERSMAP: OFF
7385
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
7486
VS_VERSION: 16 2019
7587
VS_PLATFORM: x64
7688
CXX11: OFF
7789
CXX17: ON
90+
MEMBERSMAP: ON
7891

7992
before_build:
8093
- git submodule update --init --recursive
81-
- cmake -H. -BBuild/VS -G "Visual Studio %VS_VERSION%" -DCMAKE_GENERATOR_PLATFORM=%VS_PLATFORM% -DCMAKE_VERBOSE_MAKEFILE=ON -DBUILD_SHARED_LIBS=true -DRAPIDJSON_BUILD_CXX11=%CXX11% -DRAPIDJSON_BUILD_CXX17=%CXX17% -Wno-dev
94+
- cmake -H. -BBuild/VS -G "Visual Studio %VS_VERSION%" -DCMAKE_GENERATOR_PLATFORM=%VS_PLATFORM% -DCMAKE_VERBOSE_MAKEFILE=ON -DBUILD_SHARED_LIBS=true -DRAPIDJSON_BUILD_CXX11=%CXX11% -DRAPIDJSON_BUILD_CXX17=%CXX17% -DRAPIDJSON_USE_MEMBERSMAP=%MEMBERSMAP% -Wno-dev
8295

8396
build:
8497
project: Build\VS\RapidJSON.sln

0 commit comments

Comments
 (0)