For example, use the following cmake config
```
include(FetchContent)
FetchContent_Declare(
yalantinglibs
GIT_REPOSITORY https://github.com/alibaba/yalantinglibs.git
GIT_TAG xxx # use the least commit id
GIT_SHALLOW 1 # optional ( --depth=1 )
)
FetchContent_MakeAvailable(yalantinglibs)
add_executable(demo main.cpp)
target_link_libraries(demo PRIVATE yalantinglibs)
```
you can use `cmake -DENABLE_STRUCT_PACK_UNPORTABLE_TYPE=ON ..`,
the option `ENABLE_STRUCT_PACK_UNPORTABLE_TYPE=ON` will be used when building yalantinglibs
* ## Why
Closes#18
Made this repo available to MSVC.
## What is changing
Added:
- util/magic_names.hpp
- util/meta_string.hpp
- A uniform MSVC/GCC/Clang implementation of reflecting qualified function names.
- A meta_string class for template programming as non-type parameter when enabling C++20.
Added:
- util/benchmark
- util/examples
- util/tests
Some static asserts for ensuring correctness of newly added code.
Modified/Fixed:
- coro_rpc: CMakeLists.txt
- coro_rpc/tests/ServerTester.hpp
- coro_rpc/tests/test_coro_rpc_server.hpp
- util/function_name.h
Fixed fatal issues when compiling with MSVC.
Fixed incorrect function names when using MSVC.
All unit tests have passed on MSVC 19.3x/GCC11.x/12.x/Clang 15+.
Core logics have passed on GoldBolt.
## Example
Please view src/util/tests
* ## Why
Closes#18
Made this repo available to MSVC.
## What is changing
Added:
- util/magic_names.hpp
- util/meta_string.hpp
- A uniform MSVC/GCC/Clang implementation of reflecting qualified function names.
- A meta_string class for template programming as non-type parameter when enabling C++20.
Added:
- util/benchmark
- util/examples
- util/tests
Some static asserts for ensuring correctness of newly added code.
Modified/Fixed:
- coro_rpc: CMakeLists.txt
- coro_rpc/tests/ServerTester.hpp
- coro_rpc/tests/test_coro_rpc_server.hpp
- util/function_name.h
Fixed fatal issues when compiling with MSVC.
Fixed incorrect function names when using MSVC.
All unit tests have passed on MSVC 19.3x/GCC11.x/12.x/Clang 15+.
Core logics have passed on GoldBolt.
## Example
Please view src/util/tests
* Removed the dependency <ranges>
* Fixed:
A workaround for no support for std::string_view::<=> with Apple Clang.
Fixed the Clang 14.0.0 crash when compiling util/tests/static_asserts.cpp
* clang_format fixes.
* Fixed:
x86-64 clang in some versions crashed when compiling util/tests/static_asserts.cpp.
Apple Clang did not compile.
* comment template function assert
* Update static_asserts.cpp
* Update static_asserts.cpp
remove some test code
* win ci enable all projects
* fix -pthread
* ignore data_gen
* fix
* Added:
util/string_finder.hpp
A uniform implementation of string finder with find, find_first_of, rfind, find_last_of.
Modified:
Keeps identical output from GCC, Clang, Apple Clang, etc.
* Added operator+ for meta_string.
Added data() members for meta_string.
* Modified:
Extracted duplicate macro condition tests of different access to function signatures into a macro.
* Added the __thiscall calling convention for function signature extraction.
Fixed the failure in unit tests on x86 architecture.
* Matched the coding principle.
* disable x86
* Update CMakeLists.txt
* Update test_variadic.cpp
* Update windows.yml
* Update test_variadic.cpp
Co-authored-by: saipubw <1.048590@gmail.com>
Co-authored-by: qicosmos <qicosmos@linux.alibaba.com>
Co-authored-by: PikachuHy <pikachuhy@linux.alibaba.com>
* [struct_pack] Add type: trival_class_t & non_trival_class_t. Add more type cast test. Fix type calculate bug. Fix tuplet::tuple. Fix serialize_to with compatible_member.
* add tuplet::get
* add bigobj for msvc
* add forward declaration for get.
* close a test case, will open later.
Co-authored-by: qicosmos <qicosmos@linux.alibaba.com>