Support for C++20/23 modules#395
Conversation
|
I didn't manage to get |
|
I'm having trouble pairing modules and tests with GTest, primarily related to this issue: google/googletest#4851. I'll see what I can do tomorrow. All examples appear to work |
|
Hi I am looking forward to using this. What's the problem you are seeing? if it is the import-#include ordering thing, can we just have #include before import in the tests? And it is not so strict, see: https://github.com/alibaba/async_simple/blob/CXX20Modules/async_simple_module/test/coro/SleepTest.cpp |
|
Hi. Great to see that somebody is interested in this. I’m away this weekend, so I’ll be able to finish it on Monday.
…________________________________
From: Chuanqi Xu ***@***.***>
Sent: Saturday, March 14, 2026 1:53:25 AM
To: Thalhammer/jwt-cpp ***@***.***>
Cc: Yan Romao ***@***.***>; Author ***@***.***>
Subject: Re: [Thalhammer/jwt-cpp] Support for C++20/23 modules (PR #395)
[https://avatars.githubusercontent.com/u/68680648?s=20&v=4]ChuanqiXu9 left a comment (Thalhammer/jwt-cpp#395)<#395 (comment)>
Hi I am looking forward to using this. What's the problem you are seeing? if it is the import-#include ordering thing, can we just have #include before import in the tests? And it is not so strict, see: https://github.com/alibaba/async_simple/blob/CXX20Modules/async_simple_module/test/coro/SleepTest.cpp
—
Reply to this email directly, view it on GitHub<#395 (comment)>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/AMEFH5FNJJXC5IR76DJXH2L4QS3RLAVCNFSM6AAAAACHQ2GNRCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHM2DANJZGEZTOMJZGI>.
You are receiving this because you authored the thread.Message ID: ***@***.***>
|
|
@ChuanqiXu9 Hi. Sorry for the delay. I’ve just pushed a commit that now uses ABI-breaking wrapper style. Could you have a look at the current implementation and tell whether you're satisfied with it? Thank you. |
|
@prince-chrismc Thank you for resolving conflicts. I'll add a workflow for modules tomorrow and do some minor cleanups, so I think this will be ready soon. Sorry for the delay. |
prince-chrismc
left a comment
There was a problem hiding this comment.
Few small questions
| #ifndef picojson_h | ||
| #define picojson_h | ||
|
|
||
| #if defined(JWT_CPP_MODULE_INTERFACE_BUILD) && defined(JWT_USE_IMPORT_STD) |
There was a problem hiding this comment.
Picojson is a vendored dep, we shouldn't be making changes to it.
There was a problem hiding this comment.
This doesn't make any behavioural changes, just exports necessary interfaces. I'm not sure how to implement support for modules without modifying it.
| target_compile_features(jwt-cpp ${JWT_LIBRARY_TYPE} cxx_std_20) | ||
| else() | ||
| target_compile_features(jwt-cpp ${JWT_LIBRARY_TYPE} cxx_std_23) | ||
| target_compile_definitions(jwt-cpp PRIVATE JWT_USE_IMPORT_STD) |
There was a problem hiding this comment.
If this was public, could we remove the extra defines in the examples and test apps?
|
Just wanted to give an update. I'm currently waiting for the Ubuntu 26 image to be available in GitHub Actions, so I can setup a CI to test modules. |
This adds support for C++20/23 modules.
JWT_ENABLE_MODULES- to enable modulesModules are tested in CI with MSVC 14.51, Clang-22 and GCC-15.
UPD: The latest implementation was tested with MSVC (14.51 and 14.52) and Clang-22