mirror of
https://github.com/nlohmann/json.git
synced 2025-11-24 03:44:06 +08:00
Improve MSVC C++ modules compatibility for nlohmann_json (#4952)
* Improve MSVC C++ modules compatibility for nlohmann_json - Keep complete module interface with all exports - Export all standard types: json, basic_json, adl_serializer, json_pointer, ordered_json, ordered_map - Export detail namespace symbols for advanced usage - Ensure compatibility with MSVC C++20/23 modules - Maintain full functionality without breaking changes Signed-off-by: yudaichen <250074249@qq.com> * Add C++20 module Windows CI test and fix file ending - Add ci_module_cpp20 job to Windows workflow to verify module support with MSVC - Add missing newline at end of json.cppm file Signed-off-by: yudaichen <250074249@qq.com> --------- Signed-off-by: yudaichen <250074249@qq.com>
This commit is contained in:
10
.github/workflows/windows.yml
vendored
10
.github/workflows/windows.yml
vendored
@@ -112,3 +112,13 @@ jobs:
|
||||
run: cmake --build build --config Debug --parallel 10
|
||||
- name: Test
|
||||
run: cd build ; ctest -j 10 -C Debug --exclude-regex "test-unicode" --output-on-failure
|
||||
|
||||
ci_module_cpp20:
|
||||
runs-on: windows-latest
|
||||
steps:
|
||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
- name: Run CMake (Debug)
|
||||
run: cmake -S . -B build -G "Visual Studio 17 2022" -DJSON_CI=ON -DCMAKE_CXX_FLAGS="/permissive- /std:c++latest /utf-8 /W4 /WX"
|
||||
- name: Build
|
||||
run: cmake --build build --config Debug --target ci_module_cpp20
|
||||
|
||||
@@ -12,3 +12,21 @@ export namespace nlohmann {
|
||||
using ::nlohmann::ordered_json;
|
||||
using ::nlohmann::ordered_map;
|
||||
} // namespace nlohmann
|
||||
|
||||
NLOHMANN_JSON_NAMESPACE_BEGIN
|
||||
|
||||
namespace detail
|
||||
{
|
||||
export using NLOHMANN_JSON_NAMESPACE::detail::json_sax_dom_callback_parser;
|
||||
export using NLOHMANN_JSON_NAMESPACE::detail::unknown_size;
|
||||
} // namespace detail
|
||||
|
||||
export using NLOHMANN_JSON_NAMESPACE::adl_serializer;
|
||||
export using NLOHMANN_JSON_NAMESPACE::basic_json;
|
||||
export using NLOHMANN_JSON_NAMESPACE::json;
|
||||
export using NLOHMANN_JSON_NAMESPACE::json_pointer;
|
||||
export using NLOHMANN_JSON_NAMESPACE::ordered_json;
|
||||
export using NLOHMANN_JSON_NAMESPACE::ordered_map;
|
||||
export using NLOHMANN_JSON_NAMESPACE::to_string;
|
||||
|
||||
NLOHMANN_JSON_NAMESPACE_END
|
||||
|
||||
Reference in New Issue
Block a user