, .
, - . , , . , - .
, , , , Boost, , .
[](doc/README.md).
`std::sort` `std::stable_sort` , . , . [ ](https://ru.wikipedia.org/wiki/%D0%9F%D0%BE%D1%80%D0%B0%D0%B7%D1%80%D1%8F%D0%B4%D0%BD%D0%B0%D1%8F_%D1%81%D0%BE%D1%80%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B0). , , , , , , , . , , , . , .
`std::sort` `std::stable_sort` ( [`boost::integer_sort`](https://www.boost.org/doc/libs/1_71_0/libs/sort/doc/html/boost/sort/spreadsort/integer__idm46709765154208.html)) , .
, , :
burst::radix_sort
burst::counting_sort
.
, , , , .
(`tuple`, `vector`, `any`) .
`burst::dynamic_tuple`, , .
burst::dynamic_tuple t(std::string("123"));
t.push_back(std::vector<int>{1, 2, 3});
t.push_back(true);
t.push_back(123u);
assert(t.size() == 4);
assert(t.get<std::string>(0) == "123");
assert((t.get<std::vector<int>>(1) == std::vector<int>{1, 2, 3}));
assert(t.get<bool>(2) == true);
t.get<unsigned>(3) = 789u;
assert(t.get<unsigned>(3) == 789u);
, , , , .. (`std::set_intersection` ..) , , , , .
, , , (, ..) " ".
, , :
auto natural = std::vector<int>{1, 2, 3, 4, 5, 6, 7};
auto prime = std::list<int> { 2, 3, 5, 7};
auto odd = std::deque<int> {1, 3, 5, 7};
// ^ ^ ^
auto intersected_range = burst::intersect(std::tie(natural, prime, odd));
auto expected_collection = {3, 5, 7};
assert(intersected_range == expected_collection);
:
1
libc++
libstdc++
7 .
2 ,
CMake
BURST_TESTING
:cmake -DBURST_TESTING=OFF < ...>
, Burst .
- , doctest , CMake FetchContent.
3
Boost.Program_options
,BURST_BENCHMARKING
:cmake -DBURST_BENCHMARKING=OFF < ...>
, Burst .
4
Boost.System
(,radix_sort
).
.
cd path/to/build/directory
cmake -DCMAKE_BUILD_TYPE=Release path/to/burst
cmake --build . --target install
CMake `Burst`:
find_package(Burst)
`Burst::burst`, :
add_executable(program program.cpp)
target_link_libraries(program PRIVATE Burst::burst)
add_subdirectory("path/to/burst")
CMake `Burst::burst`, :
add_executable(program program.cpp)
target_link_libraries(program PRIVATE Burst::burst)
CMake 3.14 FetchContent. Burst
:
include(FetchContent)
FetchContent_Declare(Burst GIT_REPOSITORY https://github.com/izvolov/burst.git)
FetchContent_MakeAvailable(Burst)
Burst::burst, :
add_executable(program program.cpp)
target_link_libraries(program PRIVATE Burst::burst)