Skip to content

Commit ef3e3f0

Browse files
paolopasgrafikrobot
authored andcommitted
Minor cleanup of bindjam.h and mp.h.
* Fixed comments in bindjam.h * Make mp.h properly include independent. And clang-reformat. fixes #578
1 parent 60681b3 commit ef3e3f0

2 files changed

Lines changed: 35 additions & 44 deletions

File tree

src/engine/bindjam.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ struct jam_binder : b2::bind::binder_<jam_binder>
5959
::b2::bind::args_<A...> args);
6060

6161
/*
62-
Bind the given method of a class. THe function can be any invocable whose
62+
Bind the given method of a class. The function can be any invocable whose
6363
interface will be reflected to Jam.
6464
*/
6565
template <class Function, class... A>
@@ -84,7 +84,7 @@ struct jam_binder : b2::bind::binder_<jam_binder>
8484
void eval_data(const char * module_name, const char * data);
8585

8686
/*
87-
Mark the module as loaded. Future attempts at loading, with `module.load`,
87+
Mark the module as loaded. Future attempts at loading, with `modules.load`,
8888
will fail (as noop).
8989
*/
9090
void set_loaded(const char * module_name);

src/engine/mp.h

Lines changed: 33 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1,96 +1,87 @@
1-
/* Copyright 2019 Rene Rivera
1+
/* Copyright 2019-2026 Rene Rivera
22
* Distributed under the Boost Software License, Version 1.0.
3-
* (See accompanying file LICENSE.txt or https://www.bfgroup.xyz/b2/LICENSE.txt)
3+
* (See accompanying file LICENSE.txt or
4+
* https://www.bfgroup.xyz/b2/LICENSE.txt)
45
*/
56

67
#ifndef B2_MP_H
78
#define B2_MP_H
89

9-
namespace b2
10-
{
11-
namespace mp
12-
{
10+
#include <cstddef>
11+
#include <type_traits>
12+
#include <utility>
13+
14+
namespace b2 { namespace mp {
1315

1416
// Simulate C++14 (make_)index_sequence..
1517

1618
template <std::size_t... Ns>
1719
struct index_sequence
1820
{
19-
using type = index_sequence;
21+
using type = index_sequence;
2022
};
2123

2224
template <typename A, typename B>
2325
struct merge_index_sequence;
2426
template <std::size_t... A, std::size_t... B>
25-
struct merge_index_sequence<
26-
index_sequence<A...>, index_sequence<B...>>
27-
: index_sequence<A..., (sizeof...(A) + B)...>
28-
{
29-
};
27+
struct merge_index_sequence<index_sequence<A...>, index_sequence<B...>>
28+
: index_sequence<A..., (sizeof...(A) + B)...>
29+
{ };
3030

3131
template <std::size_t N>
3232
struct make_index_sequence
33-
: merge_index_sequence<
34-
typename make_index_sequence<N / 2>::type,
35-
typename make_index_sequence<N - (N / 2)>::type>
36-
{
37-
};
33+
: merge_index_sequence<typename make_index_sequence<N / 2>::type,
34+
typename make_index_sequence<N - (N / 2)>::type>
35+
{ };
3836
template <>
3937
struct make_index_sequence<0> : index_sequence<>
40-
{
41-
};
38+
{ };
4239
template <>
4340
struct make_index_sequence<1> : index_sequence<0>
44-
{
45-
};
41+
{ };
4642

4743
// Shallow, simulated, invoke..
4844

4945
template <typename Return, typename Call, typename ArgsTuple, std::size_t... I>
50-
Return invoke(Call &&call, ArgsTuple &&args, index_sequence<I...>)
46+
Return invoke(Call && call, ArgsTuple && args, index_sequence<I...>)
5147
{
52-
using std::get;
53-
return call(get<I>(args)...);
48+
using std::get;
49+
return call(get<I>(args)...);
5450
}
5551

5652
// Simulate C++ 20 remove_cvref..
5753

5854
template <typename T>
5955
struct remove_cvref
6056
{
61-
using type = typename std::remove_cv<
62-
typename std::remove_reference<T>::type>::type;
57+
using type =
58+
typename std::remove_cv<typename std::remove_reference<T>::type>::type;
6359
};
6460

6561
// Fusion style for_each..
6662

6763
template <typename Call, typename... Args>
68-
void for_each_arg(Call &&call, Args &&... args)
64+
void for_each_arg(Call && call, Args &&... args)
6965
{
70-
using x = int[];
71-
(void)x{0, ((void)call(std::forward<Args>(args)), 0)...};
66+
using x = int[];
67+
(void)x { 0, ((void)call(std::forward<Args>(args)), 0)... };
7268
}
7369

7470
template <typename Call, typename Tuple, std::size_t... I>
75-
void for_each(Tuple &&tuple, Call &&call, index_sequence<I...>)
71+
void for_each(Tuple && tuple, Call && call, index_sequence<I...>)
7672
{
77-
using std::get;
78-
for_each_arg(
79-
std::forward<Call>(call),
80-
get<I>(std::forward<Tuple>(tuple))...);
73+
using std::get;
74+
for_each_arg(std::forward<Call>(call), get<I>(std::forward<Tuple>(tuple))...);
8175
}
8276

8377
template <typename Call, typename Tuple>
84-
void for_each(Tuple &&tuple, Call &&call)
78+
void for_each(Tuple && tuple, Call && call)
8579
{
86-
using std::get;
87-
for_each(
88-
std::forward<Tuple>(tuple),
89-
std::forward<Call>(call),
90-
make_index_sequence<std::tuple_size<Tuple>::value>{});
80+
using std::get;
81+
for_each(std::forward<Tuple>(tuple), std::forward<Call>(call),
82+
make_index_sequence<std::tuple_size<Tuple>::value> { });
9183
}
9284

93-
} // namespace mp
94-
} // namespace b2
85+
}} // namespace b2::mp
9586

9687
#endif

0 commit comments

Comments
 (0)