mirror of
https://github.com/bolero-MURAKAMI/Sprout.git
synced 2024-12-23 21:25:49 +00:00
add SPROUT_FORWARD - workaround for ICC
This commit is contained in:
parent
7831105add
commit
274122efb2
202 changed files with 750 additions and 741 deletions
|
@ -27,7 +27,7 @@ namespace sprout {
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
return sprout::sub_copy(
|
return sprout::sub_copy(
|
||||||
sprout::get_internal(sprout::fixed::bogo_sort(cont, sprout::forward<UniformRandomNumberGenerator>(g), comp)),
|
sprout::get_internal(sprout::fixed::bogo_sort(cont, SPROUT_FORWARD(UniformRandomNumberGenerator, g), comp)),
|
||||||
offset,
|
offset,
|
||||||
offset + sprout::size(cont)
|
offset + sprout::size(cont)
|
||||||
);
|
);
|
||||||
|
@ -40,7 +40,7 @@ namespace sprout {
|
||||||
inline SPROUT_CONSTEXPR typename sprout::fit::results::algorithm<Container>::type
|
inline SPROUT_CONSTEXPR typename sprout::fit::results::algorithm<Container>::type
|
||||||
bogo_sort(Container const& cont, UniformRandomNumberGenerator&& g, Compare comp) {
|
bogo_sort(Container const& cont, UniformRandomNumberGenerator&& g, Compare comp) {
|
||||||
return sprout::fit::detail::bogo_sort_impl(
|
return sprout::fit::detail::bogo_sort_impl(
|
||||||
cont, sprout::forward<UniformRandomNumberGenerator>(g), comp,
|
cont, SPROUT_FORWARD(UniformRandomNumberGenerator, g), comp,
|
||||||
sprout::internal_begin_offset(cont)
|
sprout::internal_begin_offset(cont)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -54,7 +54,7 @@ namespace sprout {
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
return sprout::sub_copy(
|
return sprout::sub_copy(
|
||||||
sprout::get_internal(sprout::fixed::bogo_sort(cont, sprout::forward<UniformRandomNumberGenerator>(g))),
|
sprout::get_internal(sprout::fixed::bogo_sort(cont, SPROUT_FORWARD(UniformRandomNumberGenerator, g))),
|
||||||
offset,
|
offset,
|
||||||
offset + sprout::size(cont)
|
offset + sprout::size(cont)
|
||||||
);
|
);
|
||||||
|
@ -67,7 +67,7 @@ namespace sprout {
|
||||||
inline SPROUT_CONSTEXPR typename sprout::fit::results::algorithm<Container>::type
|
inline SPROUT_CONSTEXPR typename sprout::fit::results::algorithm<Container>::type
|
||||||
bogo_sort(Container const& cont, UniformRandomNumberGenerator&& g) {
|
bogo_sort(Container const& cont, UniformRandomNumberGenerator&& g) {
|
||||||
return sprout::fit::detail::bogo_sort_impl(
|
return sprout::fit::detail::bogo_sort_impl(
|
||||||
cont, sprout::forward<UniformRandomNumberGenerator>(g),
|
cont, SPROUT_FORWARD(UniformRandomNumberGenerator, g),
|
||||||
sprout::internal_begin_offset(cont)
|
sprout::internal_begin_offset(cont)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -56,7 +56,7 @@ namespace sprout {
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
return sprout::fit::detail::bogo_sort_result_impl_1<Container, UniformRandomNumberGenerator>(
|
return sprout::fit::detail::bogo_sort_result_impl_1<Container, UniformRandomNumberGenerator>(
|
||||||
sprout::fixed::bogo_sort_result(cont, sprout::forward<UniformRandomNumberGenerator>(g), comp),
|
sprout::fixed::bogo_sort_result(cont, SPROUT_FORWARD(UniformRandomNumberGenerator, g), comp),
|
||||||
offset
|
offset
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -70,7 +70,7 @@ namespace sprout {
|
||||||
typename std::decay<UniformRandomNumberGenerator>::type
|
typename std::decay<UniformRandomNumberGenerator>::type
|
||||||
> bogo_sort_result(Container const& cont, UniformRandomNumberGenerator&& g, Compare comp) {
|
> bogo_sort_result(Container const& cont, UniformRandomNumberGenerator&& g, Compare comp) {
|
||||||
return sprout::fit::detail::bogo_sort_result_impl(
|
return sprout::fit::detail::bogo_sort_result_impl(
|
||||||
cont, sprout::forward<UniformRandomNumberGenerator>(g), comp,
|
cont, SPROUT_FORWARD(UniformRandomNumberGenerator, g), comp,
|
||||||
sprout::internal_begin_offset(cont)
|
sprout::internal_begin_offset(cont)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -87,7 +87,7 @@ namespace sprout {
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
return sprout::fit::detail::bogo_sort_result_impl_1<Container, UniformRandomNumberGenerator>(
|
return sprout::fit::detail::bogo_sort_result_impl_1<Container, UniformRandomNumberGenerator>(
|
||||||
sprout::fixed::bogo_sort_result(cont, sprout::forward<UniformRandomNumberGenerator>(g)),
|
sprout::fixed::bogo_sort_result(cont, SPROUT_FORWARD(UniformRandomNumberGenerator, g)),
|
||||||
offset
|
offset
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -102,7 +102,7 @@ namespace sprout {
|
||||||
>
|
>
|
||||||
bogo_sort_result(Container const& cont, UniformRandomNumberGenerator&& g) {
|
bogo_sort_result(Container const& cont, UniformRandomNumberGenerator&& g) {
|
||||||
return sprout::fit::detail::bogo_sort_result_impl(
|
return sprout::fit::detail::bogo_sort_result_impl(
|
||||||
cont, sprout::forward<UniformRandomNumberGenerator>(g),
|
cont, SPROUT_FORWARD(UniformRandomNumberGenerator, g),
|
||||||
sprout::internal_begin_offset(cont)
|
sprout::internal_begin_offset(cont)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,7 +27,7 @@ namespace sprout {
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
return sprout::sub_copy(
|
return sprout::sub_copy(
|
||||||
sprout::get_internal(sprout::fixed::bozo_sort(cont, sprout::forward<UniformRandomNumberGenerator>(g), comp)),
|
sprout::get_internal(sprout::fixed::bozo_sort(cont, SPROUT_FORWARD(UniformRandomNumberGenerator, g), comp)),
|
||||||
offset,
|
offset,
|
||||||
offset + sprout::size(cont)
|
offset + sprout::size(cont)
|
||||||
);
|
);
|
||||||
|
@ -40,7 +40,7 @@ namespace sprout {
|
||||||
inline SPROUT_CONSTEXPR typename sprout::fit::results::algorithm<Container>::type
|
inline SPROUT_CONSTEXPR typename sprout::fit::results::algorithm<Container>::type
|
||||||
bozo_sort(Container const& cont, UniformRandomNumberGenerator&& g, Compare comp) {
|
bozo_sort(Container const& cont, UniformRandomNumberGenerator&& g, Compare comp) {
|
||||||
return sprout::fit::detail::bozo_sort_impl(
|
return sprout::fit::detail::bozo_sort_impl(
|
||||||
cont, sprout::forward<UniformRandomNumberGenerator>(g), comp,
|
cont, SPROUT_FORWARD(UniformRandomNumberGenerator, g), comp,
|
||||||
sprout::internal_begin_offset(cont)
|
sprout::internal_begin_offset(cont)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -54,7 +54,7 @@ namespace sprout {
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
return sprout::sub_copy(
|
return sprout::sub_copy(
|
||||||
sprout::get_internal(sprout::fixed::bozo_sort(cont, sprout::forward<UniformRandomNumberGenerator>(g))),
|
sprout::get_internal(sprout::fixed::bozo_sort(cont, SPROUT_FORWARD(UniformRandomNumberGenerator, g))),
|
||||||
offset,
|
offset,
|
||||||
offset + sprout::size(cont)
|
offset + sprout::size(cont)
|
||||||
);
|
);
|
||||||
|
@ -67,7 +67,7 @@ namespace sprout {
|
||||||
inline SPROUT_CONSTEXPR typename sprout::fit::results::algorithm<Container>::type
|
inline SPROUT_CONSTEXPR typename sprout::fit::results::algorithm<Container>::type
|
||||||
bozo_sort(Container const& cont, UniformRandomNumberGenerator&& g) {
|
bozo_sort(Container const& cont, UniformRandomNumberGenerator&& g) {
|
||||||
return sprout::fit::detail::bozo_sort_impl(
|
return sprout::fit::detail::bozo_sort_impl(
|
||||||
cont, sprout::forward<UniformRandomNumberGenerator>(g),
|
cont, SPROUT_FORWARD(UniformRandomNumberGenerator, g),
|
||||||
sprout::internal_begin_offset(cont)
|
sprout::internal_begin_offset(cont)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -56,7 +56,7 @@ namespace sprout {
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
return sprout::fit::detail::bozo_sort_result_impl_1<Container, UniformRandomNumberGenerator>(
|
return sprout::fit::detail::bozo_sort_result_impl_1<Container, UniformRandomNumberGenerator>(
|
||||||
sprout::fixed::bozo_sort_result(cont, sprout::forward<UniformRandomNumberGenerator>(g), comp),
|
sprout::fixed::bozo_sort_result(cont, SPROUT_FORWARD(UniformRandomNumberGenerator, g), comp),
|
||||||
offset
|
offset
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -71,7 +71,7 @@ namespace sprout {
|
||||||
>
|
>
|
||||||
bozo_sort_result(Container const& cont, UniformRandomNumberGenerator&& g, Compare comp) {
|
bozo_sort_result(Container const& cont, UniformRandomNumberGenerator&& g, Compare comp) {
|
||||||
return sprout::fit::detail::bozo_sort_result_impl(
|
return sprout::fit::detail::bozo_sort_result_impl(
|
||||||
cont, sprout::forward<UniformRandomNumberGenerator>(g), comp,
|
cont, SPROUT_FORWARD(UniformRandomNumberGenerator, g), comp,
|
||||||
sprout::internal_begin_offset(cont)
|
sprout::internal_begin_offset(cont)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -88,7 +88,7 @@ namespace sprout {
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
return sprout::fit::detail::bozo_sort_result_impl_1<Container, UniformRandomNumberGenerator>(
|
return sprout::fit::detail::bozo_sort_result_impl_1<Container, UniformRandomNumberGenerator>(
|
||||||
sprout::fixed::bozo_sort_result(cont, sprout::forward<UniformRandomNumberGenerator>(g)),
|
sprout::fixed::bozo_sort_result(cont, SPROUT_FORWARD(UniformRandomNumberGenerator, g)),
|
||||||
offset
|
offset
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -103,7 +103,7 @@ namespace sprout {
|
||||||
>
|
>
|
||||||
bozo_sort_result(Container const& cont, UniformRandomNumberGenerator&& g) {
|
bozo_sort_result(Container const& cont, UniformRandomNumberGenerator&& g) {
|
||||||
return sprout::fit::detail::bozo_sort_result_impl(
|
return sprout::fit::detail::bozo_sort_result_impl(
|
||||||
cont, sprout::forward<UniformRandomNumberGenerator>(g),
|
cont, SPROUT_FORWARD(UniformRandomNumberGenerator, g),
|
||||||
sprout::internal_begin_offset(cont)
|
sprout::internal_begin_offset(cont)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -28,7 +28,7 @@ namespace sprout {
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
return sprout::sub_copy(
|
return sprout::sub_copy(
|
||||||
sprout::get_internal(sprout::fixed::random_swap(cont, sprout::forward<UniformRandomNumberGenerator>(g))),
|
sprout::get_internal(sprout::fixed::random_swap(cont, SPROUT_FORWARD(UniformRandomNumberGenerator, g))),
|
||||||
offset,
|
offset,
|
||||||
offset + sprout::size(cont)
|
offset + sprout::size(cont)
|
||||||
);
|
);
|
||||||
|
@ -41,7 +41,7 @@ namespace sprout {
|
||||||
inline SPROUT_CONSTEXPR typename sprout::fit::results::algorithm<Container>::type
|
inline SPROUT_CONSTEXPR typename sprout::fit::results::algorithm<Container>::type
|
||||||
random_swap(Container const& cont, UniformRandomNumberGenerator&& g) {
|
random_swap(Container const& cont, UniformRandomNumberGenerator&& g) {
|
||||||
return sprout::fit::detail::random_swap_impl(
|
return sprout::fit::detail::random_swap_impl(
|
||||||
cont, sprout::forward<UniformRandomNumberGenerator>(g),
|
cont, SPROUT_FORWARD(UniformRandomNumberGenerator, g),
|
||||||
sprout::internal_begin_offset(cont)
|
sprout::internal_begin_offset(cont)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -56,7 +56,7 @@ namespace sprout {
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
return sprout::fit::detail::random_swap_result_impl_1<Container, UniformRandomNumberGenerator>(
|
return sprout::fit::detail::random_swap_result_impl_1<Container, UniformRandomNumberGenerator>(
|
||||||
sprout::fixed::random_swap_result(cont, sprout::forward<UniformRandomNumberGenerator>(g)),
|
sprout::fixed::random_swap_result(cont, SPROUT_FORWARD(UniformRandomNumberGenerator, g)),
|
||||||
offset
|
offset
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -71,7 +71,7 @@ namespace sprout {
|
||||||
>
|
>
|
||||||
random_swap_result(Container const& cont, UniformRandomNumberGenerator&& g) {
|
random_swap_result(Container const& cont, UniformRandomNumberGenerator&& g) {
|
||||||
return sprout::fit::detail::random_swap_result_impl(
|
return sprout::fit::detail::random_swap_result_impl(
|
||||||
cont, sprout::forward<UniformRandomNumberGenerator>(g),
|
cont, SPROUT_FORWARD(UniformRandomNumberGenerator, g),
|
||||||
sprout::internal_begin_offset(cont)
|
sprout::internal_begin_offset(cont)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -28,7 +28,7 @@ namespace sprout {
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
return sprout::sub_copy(
|
return sprout::sub_copy(
|
||||||
sprout::get_internal(sprout::fixed::shuffle(cont, sprout::forward<UniformRandomNumberGenerator>(g))),
|
sprout::get_internal(sprout::fixed::shuffle(cont, SPROUT_FORWARD(UniformRandomNumberGenerator, g))),
|
||||||
offset,
|
offset,
|
||||||
offset + sprout::size(cont)
|
offset + sprout::size(cont)
|
||||||
);
|
);
|
||||||
|
@ -41,7 +41,7 @@ namespace sprout {
|
||||||
inline SPROUT_CONSTEXPR typename sprout::fit::results::algorithm<Container>::type
|
inline SPROUT_CONSTEXPR typename sprout::fit::results::algorithm<Container>::type
|
||||||
shuffle(Container const& cont, UniformRandomNumberGenerator&& g) {
|
shuffle(Container const& cont, UniformRandomNumberGenerator&& g) {
|
||||||
return sprout::fit::detail::shuffle_impl(
|
return sprout::fit::detail::shuffle_impl(
|
||||||
cont, sprout::forward<UniformRandomNumberGenerator>(g),
|
cont, SPROUT_FORWARD(UniformRandomNumberGenerator, g),
|
||||||
sprout::internal_begin_offset(cont)
|
sprout::internal_begin_offset(cont)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -56,7 +56,7 @@ namespace sprout {
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
return sprout::fit::detail::shuffle_result_impl_1<Container, UniformRandomNumberGenerator>(
|
return sprout::fit::detail::shuffle_result_impl_1<Container, UniformRandomNumberGenerator>(
|
||||||
sprout::fixed::shuffle_result(cont, sprout::forward<UniformRandomNumberGenerator>(g)),
|
sprout::fixed::shuffle_result(cont, SPROUT_FORWARD(UniformRandomNumberGenerator, g)),
|
||||||
offset
|
offset
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -71,7 +71,7 @@ namespace sprout {
|
||||||
>
|
>
|
||||||
shuffle_result(Container const& cont, UniformRandomNumberGenerator&& g) {
|
shuffle_result(Container const& cont, UniformRandomNumberGenerator&& g) {
|
||||||
return sprout::fit::detail::shuffle_result_impl(
|
return sprout::fit::detail::shuffle_result_impl(
|
||||||
cont, sprout::forward<UniformRandomNumberGenerator>(g),
|
cont, SPROUT_FORWARD(UniformRandomNumberGenerator, g),
|
||||||
sprout::internal_begin_offset(cont)
|
sprout::internal_begin_offset(cont)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,14 +24,14 @@ namespace sprout {
|
||||||
inline SPROUT_CONSTEXPR typename sprout::fixed::results::algorithm<Container>::type
|
inline SPROUT_CONSTEXPR typename sprout::fixed::results::algorithm<Container>::type
|
||||||
bogo_sort(Container const& cont, UniformRandomNumberGenerator&& g, Compare comp) {
|
bogo_sort(Container const& cont, UniformRandomNumberGenerator&& g, Compare comp) {
|
||||||
return sprout::first(
|
return sprout::first(
|
||||||
sprout::fixed::bogo_sort_result(cont, sprout::forward<UniformRandomNumberGenerator>(g), comp)
|
sprout::fixed::bogo_sort_result(cont, SPROUT_FORWARD(UniformRandomNumberGenerator, g), comp)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
template<typename Container, typename UniformRandomNumberGenerator>
|
template<typename Container, typename UniformRandomNumberGenerator>
|
||||||
inline SPROUT_CONSTEXPR typename sprout::fixed::results::algorithm<Container>::type
|
inline SPROUT_CONSTEXPR typename sprout::fixed::results::algorithm<Container>::type
|
||||||
bogo_sort(Container const& cont, UniformRandomNumberGenerator&& g) {
|
bogo_sort(Container const& cont, UniformRandomNumberGenerator&& g) {
|
||||||
return sprout::first(
|
return sprout::first(
|
||||||
sprout::fixed::bogo_sort_result(cont, sprout::forward<UniformRandomNumberGenerator>(g))
|
sprout::fixed::bogo_sort_result(cont, SPROUT_FORWARD(UniformRandomNumberGenerator, g))
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
} // namespace fixed
|
} // namespace fixed
|
||||||
|
|
|
@ -68,9 +68,9 @@ namespace sprout {
|
||||||
typedef typename sprout::fixed::results::shuffle<Container, UniformRandomNumberGenerator>::type result_type;
|
typedef typename sprout::fixed::results::shuffle<Container, UniformRandomNumberGenerator>::type result_type;
|
||||||
typedef sprout::pair<result_type, bool> type;
|
typedef sprout::pair<result_type, bool> type;
|
||||||
return sprout::is_sorted(sprout::begin(cont), sprout::end(cont), comp)
|
return sprout::is_sorted(sprout::begin(cont), sprout::end(cont), comp)
|
||||||
? result_type(sprout::deep_copy(cont), sprout::forward<UniformRandomNumberGenerator>(g))
|
? result_type(sprout::deep_copy(cont), SPROUT_FORWARD(UniformRandomNumberGenerator, g))
|
||||||
: sprout::fixed::detail::bogo_sort_result_impl<result_type>(
|
: sprout::fixed::detail::bogo_sort_result_impl<result_type>(
|
||||||
type(sprout::fixed::shuffle_result(cont, sprout::forward<UniformRandomNumberGenerator>(g)), false),
|
type(sprout::fixed::shuffle_result(cont, SPROUT_FORWARD(UniformRandomNumberGenerator, g)), false),
|
||||||
comp, static_cast<typename sprout::container_traits<Container>::difference_type>(1)
|
comp, static_cast<typename sprout::container_traits<Container>::difference_type>(1)
|
||||||
).first
|
).first
|
||||||
;
|
;
|
||||||
|
@ -84,7 +84,7 @@ namespace sprout {
|
||||||
bogo_sort_result(Container const& cont, UniformRandomNumberGenerator&& g, Compare comp) {
|
bogo_sort_result(Container const& cont, UniformRandomNumberGenerator&& g, Compare comp) {
|
||||||
return sprout::fixed::detail::bogo_sort_result(
|
return sprout::fixed::detail::bogo_sort_result(
|
||||||
cont,
|
cont,
|
||||||
sprout::forward<UniformRandomNumberGenerator>(g),
|
SPROUT_FORWARD(UniformRandomNumberGenerator, g),
|
||||||
comp
|
comp
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -93,7 +93,7 @@ namespace sprout {
|
||||||
bogo_sort_result(Container const& cont, UniformRandomNumberGenerator&& g) {
|
bogo_sort_result(Container const& cont, UniformRandomNumberGenerator&& g) {
|
||||||
return sprout::fixed::detail::bogo_sort_result(
|
return sprout::fixed::detail::bogo_sort_result(
|
||||||
cont,
|
cont,
|
||||||
sprout::forward<UniformRandomNumberGenerator>(g),
|
SPROUT_FORWARD(UniformRandomNumberGenerator, g),
|
||||||
NS_SSCRISK_CEL_OR_SPROUT::less<typename sprout::container_traits<Container>::value_type>()
|
NS_SSCRISK_CEL_OR_SPROUT::less<typename sprout::container_traits<Container>::value_type>()
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,14 +24,14 @@ namespace sprout {
|
||||||
inline SPROUT_CONSTEXPR typename sprout::fixed::results::algorithm<Container>::type
|
inline SPROUT_CONSTEXPR typename sprout::fixed::results::algorithm<Container>::type
|
||||||
bozo_sort(Container const& cont, UniformRandomNumberGenerator&& g, Compare comp) {
|
bozo_sort(Container const& cont, UniformRandomNumberGenerator&& g, Compare comp) {
|
||||||
return sprout::first(
|
return sprout::first(
|
||||||
sprout::fixed::bozo_sort_result(cont, sprout::forward<UniformRandomNumberGenerator>(g), comp)
|
sprout::fixed::bozo_sort_result(cont, SPROUT_FORWARD(UniformRandomNumberGenerator, g), comp)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
template<typename Container, typename UniformRandomNumberGenerator>
|
template<typename Container, typename UniformRandomNumberGenerator>
|
||||||
inline SPROUT_CONSTEXPR typename sprout::fixed::results::algorithm<Container>::type
|
inline SPROUT_CONSTEXPR typename sprout::fixed::results::algorithm<Container>::type
|
||||||
bozo_sort(Container const& cont, UniformRandomNumberGenerator&& g) {
|
bozo_sort(Container const& cont, UniformRandomNumberGenerator&& g) {
|
||||||
return sprout::first(
|
return sprout::first(
|
||||||
sprout::fixed::bozo_sort_result(cont, sprout::forward<UniformRandomNumberGenerator>(g))
|
sprout::fixed::bozo_sort_result(cont, SPROUT_FORWARD(UniformRandomNumberGenerator, g))
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
} // namespace fixed
|
} // namespace fixed
|
||||||
|
|
|
@ -68,9 +68,9 @@ namespace sprout {
|
||||||
typedef typename sprout::fixed::results::shuffle<Container, UniformRandomNumberGenerator>::type result_type;
|
typedef typename sprout::fixed::results::shuffle<Container, UniformRandomNumberGenerator>::type result_type;
|
||||||
typedef sprout::pair<result_type, bool> type;
|
typedef sprout::pair<result_type, bool> type;
|
||||||
return sprout::is_sorted(sprout::begin(cont), sprout::end(cont), comp)
|
return sprout::is_sorted(sprout::begin(cont), sprout::end(cont), comp)
|
||||||
? result_type(sprout::deep_copy(cont), sprout::forward<UniformRandomNumberGenerator>(g))
|
? result_type(sprout::deep_copy(cont), SPROUT_FORWARD(UniformRandomNumberGenerator, g))
|
||||||
: sprout::fixed::detail::bozo_sort_result_impl<result_type>(
|
: sprout::fixed::detail::bozo_sort_result_impl<result_type>(
|
||||||
type(sprout::fixed::random_swap_result(cont, sprout::forward<UniformRandomNumberGenerator>(g)), false),
|
type(sprout::fixed::random_swap_result(cont, SPROUT_FORWARD(UniformRandomNumberGenerator, g)), false),
|
||||||
comp, static_cast<typename sprout::container_traits<Container>::difference_type>(1)
|
comp, static_cast<typename sprout::container_traits<Container>::difference_type>(1)
|
||||||
).first
|
).first
|
||||||
;
|
;
|
||||||
|
@ -84,7 +84,7 @@ namespace sprout {
|
||||||
bozo_sort_result(Container const& cont, UniformRandomNumberGenerator&& g, Compare comp) {
|
bozo_sort_result(Container const& cont, UniformRandomNumberGenerator&& g, Compare comp) {
|
||||||
return sprout::fixed::detail::bozo_sort_result(
|
return sprout::fixed::detail::bozo_sort_result(
|
||||||
cont,
|
cont,
|
||||||
sprout::forward<UniformRandomNumberGenerator>(g),
|
SPROUT_FORWARD(UniformRandomNumberGenerator, g),
|
||||||
comp
|
comp
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -93,7 +93,7 @@ namespace sprout {
|
||||||
bozo_sort_result(Container const& cont, UniformRandomNumberGenerator&& g) {
|
bozo_sort_result(Container const& cont, UniformRandomNumberGenerator&& g) {
|
||||||
return sprout::fixed::detail::bozo_sort_result(
|
return sprout::fixed::detail::bozo_sort_result(
|
||||||
cont,
|
cont,
|
||||||
sprout::forward<UniformRandomNumberGenerator>(g),
|
SPROUT_FORWARD(UniformRandomNumberGenerator, g),
|
||||||
NS_SSCRISK_CEL_OR_SPROUT::less<typename sprout::container_traits<Container>::value_type>()
|
NS_SSCRISK_CEL_OR_SPROUT::less<typename sprout::container_traits<Container>::value_type>()
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -43,7 +43,7 @@ namespace sprout {
|
||||||
return n > 1
|
return n > 1
|
||||||
? sprout::fixed::detail::make_random_swap_indexes_1(
|
? sprout::fixed::detail::make_random_swap_indexes_1(
|
||||||
SPROUT_WORKAROUND_DETAIL_UNIFORM_INT_DISTRIBUTION<std::ptrdiff_t>(0, n - 1)(
|
SPROUT_WORKAROUND_DETAIL_UNIFORM_INT_DISTRIBUTION<std::ptrdiff_t>(0, n - 1)(
|
||||||
sprout::forward<UniformRandomNumberGenerator>(g)
|
SPROUT_FORWARD(UniformRandomNumberGenerator, g)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
: sprout::array<std::ptrdiff_t, 2>{{}}
|
: sprout::array<std::ptrdiff_t, 2>{{}}
|
||||||
|
@ -72,7 +72,7 @@ namespace sprout {
|
||||||
cont,
|
cont,
|
||||||
sprout::fixed::detail::make_random_swap_indexes(
|
sprout::fixed::detail::make_random_swap_indexes(
|
||||||
size,
|
size,
|
||||||
sprout::forward<UniformRandomNumberGenerator>(g)
|
SPROUT_FORWARD(UniformRandomNumberGenerator, g)
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -84,7 +84,7 @@ namespace sprout {
|
||||||
inline SPROUT_CONSTEXPR typename sprout::fixed::results::algorithm<Container>::type
|
inline SPROUT_CONSTEXPR typename sprout::fixed::results::algorithm<Container>::type
|
||||||
random_swap(Container const& cont, UniformRandomNumberGenerator&& g) {
|
random_swap(Container const& cont, UniformRandomNumberGenerator&& g) {
|
||||||
return sprout::fixed::detail::random_swap_impl(
|
return sprout::fixed::detail::random_swap_impl(
|
||||||
cont, sprout::forward<UniformRandomNumberGenerator>(g),
|
cont, SPROUT_FORWARD(UniformRandomNumberGenerator, g),
|
||||||
sprout::size(cont)
|
sprout::size(cont)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -52,12 +52,12 @@ namespace sprout {
|
||||||
return n > 1
|
return n > 1
|
||||||
? sprout::fixed::detail::make_random_swap_result_indexes_1<UniformRandomNumberGenerator>(
|
? sprout::fixed::detail::make_random_swap_result_indexes_1<UniformRandomNumberGenerator>(
|
||||||
SPROUT_WORKAROUND_DETAIL_UNIFORM_INT_DISTRIBUTION<std::ptrdiff_t>(0, n - 1)(
|
SPROUT_WORKAROUND_DETAIL_UNIFORM_INT_DISTRIBUTION<std::ptrdiff_t>(0, n - 1)(
|
||||||
sprout::forward<UniformRandomNumberGenerator>(g)
|
SPROUT_FORWARD(UniformRandomNumberGenerator, g)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
: result_type(
|
: result_type(
|
||||||
sprout::array<std::ptrdiff_t, 2>{{}},
|
sprout::array<std::ptrdiff_t, 2>{{}},
|
||||||
sprout::forward<UniformRandomNumberGenerator>(g)
|
SPROUT_FORWARD(UniformRandomNumberGenerator, g)
|
||||||
)
|
)
|
||||||
;
|
;
|
||||||
}
|
}
|
||||||
|
@ -88,7 +88,7 @@ namespace sprout {
|
||||||
cont,
|
cont,
|
||||||
sprout::fixed::detail::make_random_swap_result_indexes(
|
sprout::fixed::detail::make_random_swap_result_indexes(
|
||||||
size,
|
size,
|
||||||
sprout::forward<UniformRandomNumberGenerator>(g)
|
SPROUT_FORWARD(UniformRandomNumberGenerator, g)
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -100,7 +100,7 @@ namespace sprout {
|
||||||
inline SPROUT_CONSTEXPR typename sprout::fixed::results::shuffle<Container, UniformRandomNumberGenerator>::type
|
inline SPROUT_CONSTEXPR typename sprout::fixed::results::shuffle<Container, UniformRandomNumberGenerator>::type
|
||||||
random_swap_result(Container const& cont, UniformRandomNumberGenerator&& g) {
|
random_swap_result(Container const& cont, UniformRandomNumberGenerator&& g) {
|
||||||
return sprout::fixed::detail::random_swap_result_impl(
|
return sprout::fixed::detail::random_swap_result_impl(
|
||||||
cont, sprout::forward<UniformRandomNumberGenerator>(g),
|
cont, SPROUT_FORWARD(UniformRandomNumberGenerator, g),
|
||||||
sprout::size(cont)
|
sprout::size(cont)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -47,7 +47,7 @@ namespace sprout {
|
||||||
? sprout::fixed::detail::make_shuffle_indexes_1(
|
? sprout::fixed::detail::make_shuffle_indexes_1(
|
||||||
n,
|
n,
|
||||||
SPROUT_WORKAROUND_DETAIL_UNIFORM_INT_DISTRIBUTION<std::ptrdiff_t>(0, n - 1)(
|
SPROUT_WORKAROUND_DETAIL_UNIFORM_INT_DISTRIBUTION<std::ptrdiff_t>(0, n - 1)(
|
||||||
sprout::forward<UniformRandomNumberGenerator>(g)
|
SPROUT_FORWARD(UniformRandomNumberGenerator, g)
|
||||||
),
|
),
|
||||||
sprout::fixed::iota(sprout::pit<sprout::array<std::ptrdiff_t, N> >(), 0),
|
sprout::fixed::iota(sprout::pit<sprout::array<std::ptrdiff_t, N> >(), 0),
|
||||||
0
|
0
|
||||||
|
@ -89,7 +89,7 @@ namespace sprout {
|
||||||
indexes,
|
indexes,
|
||||||
sprout::fixed::detail::make_shuffle_indexes<sprout::container_traits<Container>::static_size>(
|
sprout::fixed::detail::make_shuffle_indexes<sprout::container_traits<Container>::static_size>(
|
||||||
size,
|
size,
|
||||||
sprout::forward<UniformRandomNumberGenerator>(g)
|
SPROUT_FORWARD(UniformRandomNumberGenerator, g)
|
||||||
),
|
),
|
||||||
offset,
|
offset,
|
||||||
size
|
size
|
||||||
|
@ -105,7 +105,7 @@ namespace sprout {
|
||||||
return sprout::fixed::detail::shuffle_impl(
|
return sprout::fixed::detail::shuffle_impl(
|
||||||
cont,
|
cont,
|
||||||
sprout::container_indexes<Container>::make(),
|
sprout::container_indexes<Container>::make(),
|
||||||
sprout::forward<UniformRandomNumberGenerator>(g),
|
SPROUT_FORWARD(UniformRandomNumberGenerator, g),
|
||||||
sprout::internal_begin_offset(cont),
|
sprout::internal_begin_offset(cont),
|
||||||
sprout::size(cont)
|
sprout::size(cont)
|
||||||
);
|
);
|
||||||
|
|
|
@ -55,14 +55,14 @@ namespace sprout {
|
||||||
? sprout::fixed::detail::make_shuffle_result_indexes_1<UniformRandomNumberGenerator>(
|
? sprout::fixed::detail::make_shuffle_result_indexes_1<UniformRandomNumberGenerator>(
|
||||||
n,
|
n,
|
||||||
SPROUT_WORKAROUND_DETAIL_UNIFORM_INT_DISTRIBUTION<std::ptrdiff_t>(0, n - 1)(
|
SPROUT_WORKAROUND_DETAIL_UNIFORM_INT_DISTRIBUTION<std::ptrdiff_t>(0, n - 1)(
|
||||||
sprout::forward<UniformRandomNumberGenerator>(g)
|
SPROUT_FORWARD(UniformRandomNumberGenerator, g)
|
||||||
),
|
),
|
||||||
sprout::fixed::iota(sprout::pit<sprout::array<std::ptrdiff_t, N> >(), 0),
|
sprout::fixed::iota(sprout::pit<sprout::array<std::ptrdiff_t, N> >(), 0),
|
||||||
0
|
0
|
||||||
)
|
)
|
||||||
: result_type(
|
: result_type(
|
||||||
sprout::array<std::ptrdiff_t, N>{{}},
|
sprout::array<std::ptrdiff_t, N>{{}},
|
||||||
sprout::forward<UniformRandomNumberGenerator>(g)
|
SPROUT_FORWARD(UniformRandomNumberGenerator, g)
|
||||||
)
|
)
|
||||||
;
|
;
|
||||||
}
|
}
|
||||||
|
@ -104,7 +104,7 @@ namespace sprout {
|
||||||
indexes,
|
indexes,
|
||||||
sprout::fixed::detail::make_shuffle_result_indexes<sprout::container_traits<Container>::static_size>(
|
sprout::fixed::detail::make_shuffle_result_indexes<sprout::container_traits<Container>::static_size>(
|
||||||
size,
|
size,
|
||||||
sprout::forward<UniformRandomNumberGenerator>(g)
|
SPROUT_FORWARD(UniformRandomNumberGenerator, g)
|
||||||
),
|
),
|
||||||
offset,
|
offset,
|
||||||
size
|
size
|
||||||
|
@ -120,7 +120,7 @@ namespace sprout {
|
||||||
return sprout::fixed::detail::shuffle_result_impl(
|
return sprout::fixed::detail::shuffle_result_impl(
|
||||||
cont,
|
cont,
|
||||||
sprout::container_indexes<Container>::make(),
|
sprout::container_indexes<Container>::make(),
|
||||||
sprout::forward<UniformRandomNumberGenerator>(g),
|
SPROUT_FORWARD(UniformRandomNumberGenerator, g),
|
||||||
sprout::internal_begin_offset(cont),
|
sprout::internal_begin_offset(cont),
|
||||||
sprout::size(cont)
|
sprout::size(cont)
|
||||||
);
|
);
|
||||||
|
|
|
@ -23,7 +23,7 @@ namespace sprout {
|
||||||
template<typename T, typename... Types>
|
template<typename T, typename... Types>
|
||||||
inline SPROUT_CONSTEXPR sprout::array<typename std::remove_cv<T>::type, sizeof...(Types)>
|
inline SPROUT_CONSTEXPR sprout::array<typename std::remove_cv<T>::type, sizeof...(Types)>
|
||||||
make_array(Types&&... args) {
|
make_array(Types&&... args) {
|
||||||
return sprout::array<typename std::remove_cv<T>::type, sizeof...(Types)>{{T(sprout::forward<Types>(args))...}};
|
return sprout::array<typename std::remove_cv<T>::type, sizeof...(Types)>{{T(SPROUT_FORWARD(Types, args))...}};
|
||||||
}
|
}
|
||||||
// !!! OLD:
|
// !!! OLD:
|
||||||
// template<typename... Types>
|
// template<typename... Types>
|
||||||
|
@ -33,7 +33,7 @@ namespace sprout {
|
||||||
// typename sprout::common_decay<Types...>::type,
|
// typename sprout::common_decay<Types...>::type,
|
||||||
// sizeof...(Types)
|
// sizeof...(Types)
|
||||||
// > type;
|
// > type;
|
||||||
// return type{{typename sprout::common_decay<Types...>::type(sprout::forward<Types>(args))...}};
|
// return type{{typename sprout::common_decay<Types...>::type(SPROUT_FORWARD(Types, args))...}};
|
||||||
// }
|
// }
|
||||||
|
|
||||||
//
|
//
|
||||||
|
@ -46,7 +46,7 @@ namespace sprout {
|
||||||
typename sprout::common_decay<Types...>::type,
|
typename sprout::common_decay<Types...>::type,
|
||||||
sizeof...(Types)
|
sizeof...(Types)
|
||||||
> type;
|
> type;
|
||||||
return type{{typename sprout::common_decay<Types...>::type(sprout::forward<Types>(args))...}};
|
return type{{typename sprout::common_decay<Types...>::type(SPROUT_FORWARD(Types, args))...}};
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
@ -57,7 +57,7 @@ namespace sprout {
|
||||||
SPROUT_DEPRECATED
|
SPROUT_DEPRECATED
|
||||||
inline SPROUT_CONSTEXPR sprout::array<T, sizeof...(Types)>
|
inline SPROUT_CONSTEXPR sprout::array<T, sizeof...(Types)>
|
||||||
convert_array(Converter&& conv, Types&&... args) {
|
convert_array(Converter&& conv, Types&&... args) {
|
||||||
return sprout::make_array<T>(sprout::forward<Converter>(conv)(sprout::forward<Types>(args))...);
|
return sprout::make_array<T>(SPROUT_FORWARD(Converter, conv)(SPROUT_FORWARD(Types, args))...);
|
||||||
}
|
}
|
||||||
} // namespace sprout
|
} // namespace sprout
|
||||||
|
|
||||||
|
|
|
@ -878,7 +878,7 @@ namespace sprout {
|
||||||
public:
|
public:
|
||||||
template<typename Cont>
|
template<typename Cont>
|
||||||
static SPROUT_CONSTEXPR copied_type deep_copy(Cont&& cont) {
|
static SPROUT_CONSTEXPR copied_type deep_copy(Cont&& cont) {
|
||||||
return sprout::forward<Cont>(cont);
|
return SPROUT_FORWARD(Cont, cont);
|
||||||
}
|
}
|
||||||
template<typename... Args>
|
template<typename... Args>
|
||||||
static SPROUT_CONSTEXPR copied_type make(Args&&... args) {
|
static SPROUT_CONSTEXPR copied_type make(Args&&... args) {
|
||||||
|
|
|
@ -128,13 +128,13 @@ namespace sprout {
|
||||||
inline SPROUT_CONSTEXPR auto
|
inline SPROUT_CONSTEXPR auto
|
||||||
operator|(Range&& lhs, sprout::compost::effects::auto_pan_holder<T, IntType> const& rhs)
|
operator|(Range&& lhs, sprout::compost::effects::auto_pan_holder<T, IntType> const& rhs)
|
||||||
-> decltype(
|
-> decltype(
|
||||||
sprout::forward<Range>(lhs)
|
SPROUT_FORWARD(Range, lhs)
|
||||||
| sprout::adaptors::indexed | sprout::adaptors::outdirected
|
| sprout::adaptors::indexed | sprout::adaptors::outdirected
|
||||||
| sprout::adaptors::transformed(
|
| sprout::adaptors::transformed(
|
||||||
sprout::compost::auto_pan_outdirected_value<T, IntType, true>(rhs.depth(), rhs.rate(), rhs.samples_per_sec())
|
sprout::compost::auto_pan_outdirected_value<T, IntType, true>(rhs.depth(), rhs.rate(), rhs.samples_per_sec())
|
||||||
)
|
)
|
||||||
| sprout::compost::formats::stereo(
|
| sprout::compost::formats::stereo(
|
||||||
sprout::forward<Range>(lhs)
|
SPROUT_FORWARD(Range, lhs)
|
||||||
| sprout::adaptors::indexed | sprout::adaptors::outdirected
|
| sprout::adaptors::indexed | sprout::adaptors::outdirected
|
||||||
| sprout::adaptors::transformed(
|
| sprout::adaptors::transformed(
|
||||||
sprout::compost::auto_pan_outdirected_value<T, IntType, false>(rhs.depth(), rhs.rate(), rhs.samples_per_sec())
|
sprout::compost::auto_pan_outdirected_value<T, IntType, false>(rhs.depth(), rhs.rate(), rhs.samples_per_sec())
|
||||||
|
@ -142,13 +142,13 @@ namespace sprout {
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
return sprout::forward<Range>(lhs)
|
return SPROUT_FORWARD(Range, lhs)
|
||||||
| sprout::adaptors::indexed | sprout::adaptors::outdirected
|
| sprout::adaptors::indexed | sprout::adaptors::outdirected
|
||||||
| sprout::adaptors::transformed(
|
| sprout::adaptors::transformed(
|
||||||
sprout::compost::auto_pan_outdirected_value<T, IntType, true>(rhs.depth(), rhs.rate(), rhs.samples_per_sec())
|
sprout::compost::auto_pan_outdirected_value<T, IntType, true>(rhs.depth(), rhs.rate(), rhs.samples_per_sec())
|
||||||
)
|
)
|
||||||
| sprout::compost::formats::stereo(
|
| sprout::compost::formats::stereo(
|
||||||
sprout::forward<Range>(lhs)
|
SPROUT_FORWARD(Range, lhs)
|
||||||
| sprout::adaptors::indexed | sprout::adaptors::outdirected
|
| sprout::adaptors::indexed | sprout::adaptors::outdirected
|
||||||
| sprout::adaptors::transformed(
|
| sprout::adaptors::transformed(
|
||||||
sprout::compost::auto_pan_outdirected_value<T, IntType, false>(rhs.depth(), rhs.rate(), rhs.samples_per_sec())
|
sprout::compost::auto_pan_outdirected_value<T, IntType, false>(rhs.depth(), rhs.rate(), rhs.samples_per_sec())
|
||||||
|
|
|
@ -63,11 +63,11 @@ namespace sprout {
|
||||||
inline SPROUT_CONSTEXPR auto
|
inline SPROUT_CONSTEXPR auto
|
||||||
operator|(Range&& lhs, sprout::compost::effects::change_volume_holder<T> const& rhs)
|
operator|(Range&& lhs, sprout::compost::effects::change_volume_holder<T> const& rhs)
|
||||||
-> decltype(
|
-> decltype(
|
||||||
sprout::forward<Range>(lhs)
|
SPROUT_FORWARD(Range, lhs)
|
||||||
| sprout::adaptors::transformed(sprout::bind2nd(sprout::multiplies<>(), rhs.value()))
|
| sprout::adaptors::transformed(sprout::bind2nd(sprout::multiplies<>(), rhs.value()))
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
return sprout::forward<Range>(lhs)
|
return SPROUT_FORWARD(Range, lhs)
|
||||||
| sprout::adaptors::transformed(sprout::bind2nd(sprout::multiplies<>(), rhs.value()))
|
| sprout::adaptors::transformed(sprout::bind2nd(sprout::multiplies<>(), rhs.value()))
|
||||||
;
|
;
|
||||||
}
|
}
|
||||||
|
|
|
@ -136,8 +136,8 @@ namespace sprout {
|
||||||
inline SPROUT_CONSTEXPR auto
|
inline SPROUT_CONSTEXPR auto
|
||||||
operator|(Range&& lhs, sprout::compost::effects::chorus_holder<T, IntType> const& rhs)
|
operator|(Range&& lhs, sprout::compost::effects::chorus_holder<T, IntType> const& rhs)
|
||||||
-> decltype(
|
-> decltype(
|
||||||
sprout::forward<Range>(lhs)
|
SPROUT_FORWARD(Range, lhs)
|
||||||
| sprout::adaptors::valued(sprout::size(sprout::forward<Range>(lhs)))
|
| sprout::adaptors::valued(sprout::size(SPROUT_FORWARD(Range, lhs)))
|
||||||
| sprout::adaptors::indexed | sprout::adaptors::outdirected
|
| sprout::adaptors::indexed | sprout::adaptors::outdirected
|
||||||
| sprout::adaptors::transformed(
|
| sprout::adaptors::transformed(
|
||||||
sprout::compost::chorus_outdirected_value<T, IntType>(
|
sprout::compost::chorus_outdirected_value<T, IntType>(
|
||||||
|
@ -146,8 +146,8 @@ namespace sprout {
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
return sprout::forward<Range>(lhs)
|
return SPROUT_FORWARD(Range, lhs)
|
||||||
| sprout::adaptors::valued(sprout::size(sprout::forward<Range>(lhs)))
|
| sprout::adaptors::valued(sprout::size(SPROUT_FORWARD(Range, lhs)))
|
||||||
| sprout::adaptors::indexed | sprout::adaptors::outdirected
|
| sprout::adaptors::indexed | sprout::adaptors::outdirected
|
||||||
| sprout::adaptors::transformed(
|
| sprout::adaptors::transformed(
|
||||||
sprout::compost::chorus_outdirected_value<T, IntType>(
|
sprout::compost::chorus_outdirected_value<T, IntType>(
|
||||||
|
|
|
@ -65,11 +65,11 @@ namespace sprout {
|
||||||
inline SPROUT_CONSTEXPR auto
|
inline SPROUT_CONSTEXPR auto
|
||||||
operator|(Range&& lhs, sprout::compost::effects::clip_holder<T> const& rhs)
|
operator|(Range&& lhs, sprout::compost::effects::clip_holder<T> const& rhs)
|
||||||
-> decltype(
|
-> decltype(
|
||||||
sprout::forward<Range>(lhs)
|
SPROUT_FORWARD(Range, lhs)
|
||||||
| sprout::adaptors::clamped(rhs.lower(), rhs.upper())
|
| sprout::adaptors::clamped(rhs.lower(), rhs.upper())
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
return sprout::forward<Range>(lhs)
|
return SPROUT_FORWARD(Range, lhs)
|
||||||
| sprout::adaptors::clamped(rhs.lower(), rhs.upper())
|
| sprout::adaptors::clamped(rhs.lower(), rhs.upper())
|
||||||
;
|
;
|
||||||
}
|
}
|
||||||
|
@ -77,11 +77,11 @@ namespace sprout {
|
||||||
inline SPROUT_CONSTEXPR auto
|
inline SPROUT_CONSTEXPR auto
|
||||||
operator|(Range&& lhs, sprout::compost::effects::clipped_forwarder const&)
|
operator|(Range&& lhs, sprout::compost::effects::clipped_forwarder const&)
|
||||||
-> decltype(
|
-> decltype(
|
||||||
sprout::forward<Range>(lhs)
|
SPROUT_FORWARD(Range, lhs)
|
||||||
| sprout::adaptors::clamped(-1., 1.)
|
| sprout::adaptors::clamped(-1., 1.)
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
return sprout::forward<Range>(lhs)
|
return SPROUT_FORWARD(Range, lhs)
|
||||||
| sprout::adaptors::clamped(-1., 1.)
|
| sprout::adaptors::clamped(-1., 1.)
|
||||||
;
|
;
|
||||||
}
|
}
|
||||||
|
|
|
@ -118,11 +118,11 @@ namespace sprout {
|
||||||
inline SPROUT_CONSTEXPR auto
|
inline SPROUT_CONSTEXPR auto
|
||||||
operator|(Range&& lhs, sprout::compost::effects::compress_holder<T> const& rhs)
|
operator|(Range&& lhs, sprout::compost::effects::compress_holder<T> const& rhs)
|
||||||
-> decltype(
|
-> decltype(
|
||||||
sprout::forward<Range>(lhs)
|
SPROUT_FORWARD(Range, lhs)
|
||||||
| sprout::adaptors::transformed(sprout::compost::compress_value<T>(rhs.threshold(), rhs.ratio()))
|
| sprout::adaptors::transformed(sprout::compost::compress_value<T>(rhs.threshold(), rhs.ratio()))
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
return sprout::forward<Range>(lhs)
|
return SPROUT_FORWARD(Range, lhs)
|
||||||
| sprout::adaptors::transformed(sprout::compost::compress_value<T>(rhs.threshold(), rhs.ratio()))
|
| sprout::adaptors::transformed(sprout::compost::compress_value<T>(rhs.threshold(), rhs.ratio()))
|
||||||
;
|
;
|
||||||
}
|
}
|
||||||
|
|
|
@ -66,13 +66,13 @@ namespace sprout {
|
||||||
inline SPROUT_CONSTEXPR auto
|
inline SPROUT_CONSTEXPR auto
|
||||||
operator|(Range&& lhs, sprout::compost::effects::distort_holder<T> const& rhs)
|
operator|(Range&& lhs, sprout::compost::effects::distort_holder<T> const& rhs)
|
||||||
-> decltype(
|
-> decltype(
|
||||||
sprout::forward<Range>(lhs)
|
SPROUT_FORWARD(Range, lhs)
|
||||||
| sprout::compost::effects::changed_volume(rhs.gain())
|
| sprout::compost::effects::changed_volume(rhs.gain())
|
||||||
| sprout::compost::effects::clipped()
|
| sprout::compost::effects::clipped()
|
||||||
| sprout::compost::effects::changed_volume(rhs.level())
|
| sprout::compost::effects::changed_volume(rhs.level())
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
return sprout::forward<Range>(lhs)
|
return SPROUT_FORWARD(Range, lhs)
|
||||||
| sprout::compost::effects::changed_volume(rhs.gain())
|
| sprout::compost::effects::changed_volume(rhs.gain())
|
||||||
| sprout::compost::effects::clipped()
|
| sprout::compost::effects::clipped()
|
||||||
| sprout::compost::effects::changed_volume(rhs.level())
|
| sprout::compost::effects::changed_volume(rhs.level())
|
||||||
|
|
|
@ -67,12 +67,12 @@ namespace sprout {
|
||||||
inline SPROUT_CONSTEXPR auto
|
inline SPROUT_CONSTEXPR auto
|
||||||
operator|(Range&& lhs, sprout::compost::effects::fuzz_holder<T> const& rhs)
|
operator|(Range&& lhs, sprout::compost::effects::fuzz_holder<T> const& rhs)
|
||||||
-> decltype(
|
-> decltype(
|
||||||
sprout::forward<Range>(lhs)
|
SPROUT_FORWARD(Range, lhs)
|
||||||
| sprout::compost::effects::rectified
|
| sprout::compost::effects::rectified
|
||||||
| sprout::compost::effects::distorted(rhs.gain(), rhs.level())
|
| sprout::compost::effects::distorted(rhs.gain(), rhs.level())
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
return sprout::forward<Range>(lhs)
|
return SPROUT_FORWARD(Range, lhs)
|
||||||
| sprout::compost::effects::rectified
|
| sprout::compost::effects::rectified
|
||||||
| sprout::compost::effects::distorted(rhs.gain(), rhs.level())
|
| sprout::compost::effects::distorted(rhs.gain(), rhs.level())
|
||||||
;
|
;
|
||||||
|
|
|
@ -108,11 +108,11 @@ namespace sprout {
|
||||||
inline SPROUT_CONSTEXPR auto
|
inline SPROUT_CONSTEXPR auto
|
||||||
operator|(Range&& lhs, sprout::compost::effects::noise_gate_holder<T> const& rhs)
|
operator|(Range&& lhs, sprout::compost::effects::noise_gate_holder<T> const& rhs)
|
||||||
-> decltype(
|
-> decltype(
|
||||||
sprout::forward<Range>(lhs)
|
SPROUT_FORWARD(Range, lhs)
|
||||||
| sprout::adaptors::transformed(sprout::compost::noise_gate_value<T>(rhs.threshold()))
|
| sprout::adaptors::transformed(sprout::compost::noise_gate_value<T>(rhs.threshold()))
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
return sprout::forward<Range>(lhs)
|
return SPROUT_FORWARD(Range, lhs)
|
||||||
| sprout::adaptors::transformed(sprout::compost::noise_gate_value<T>(rhs.threshold()))
|
| sprout::adaptors::transformed(sprout::compost::noise_gate_value<T>(rhs.threshold()))
|
||||||
;
|
;
|
||||||
}
|
}
|
||||||
|
|
|
@ -94,13 +94,13 @@ namespace sprout {
|
||||||
inline SPROUT_CONSTEXPR auto
|
inline SPROUT_CONSTEXPR auto
|
||||||
operator|(Range&& lhs, sprout::compost::effects::overdrive_holder<T> const& rhs)
|
operator|(Range&& lhs, sprout::compost::effects::overdrive_holder<T> const& rhs)
|
||||||
-> decltype(
|
-> decltype(
|
||||||
sprout::forward<Range>(lhs)
|
SPROUT_FORWARD(Range, lhs)
|
||||||
| sprout::compost::effects::changed_volume(rhs.gain())
|
| sprout::compost::effects::changed_volume(rhs.gain())
|
||||||
| sprout::adaptors::transformed(sprout::compost::overdrive_clip_value<>())
|
| sprout::adaptors::transformed(sprout::compost::overdrive_clip_value<>())
|
||||||
| sprout::compost::effects::changed_volume(rhs.level())
|
| sprout::compost::effects::changed_volume(rhs.level())
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
return sprout::forward<Range>(lhs)
|
return SPROUT_FORWARD(Range, lhs)
|
||||||
| sprout::compost::effects::changed_volume(rhs.gain())
|
| sprout::compost::effects::changed_volume(rhs.gain())
|
||||||
| sprout::adaptors::transformed(sprout::compost::overdrive_clip_value<>())
|
| sprout::adaptors::transformed(sprout::compost::overdrive_clip_value<>())
|
||||||
| sprout::compost::effects::changed_volume(rhs.level())
|
| sprout::compost::effects::changed_volume(rhs.level())
|
||||||
|
|
|
@ -58,11 +58,11 @@ namespace sprout {
|
||||||
inline SPROUT_CONSTEXPR auto
|
inline SPROUT_CONSTEXPR auto
|
||||||
operator|(Range&& lhs, sprout::compost::effects::rectified_forwarder const&)
|
operator|(Range&& lhs, sprout::compost::effects::rectified_forwarder const&)
|
||||||
-> decltype(
|
-> decltype(
|
||||||
sprout::forward<Range>(lhs)
|
SPROUT_FORWARD(Range, lhs)
|
||||||
| sprout::adaptors::transformed(sprout::compost::rectify_value<>())
|
| sprout::adaptors::transformed(sprout::compost::rectify_value<>())
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
return sprout::forward<Range>(lhs)
|
return SPROUT_FORWARD(Range, lhs)
|
||||||
| sprout::adaptors::transformed(sprout::compost::rectify_value<>())
|
| sprout::adaptors::transformed(sprout::compost::rectify_value<>())
|
||||||
;
|
;
|
||||||
}
|
}
|
||||||
|
|
|
@ -131,7 +131,7 @@ namespace sprout {
|
||||||
inline SPROUT_CONSTEXPR auto
|
inline SPROUT_CONSTEXPR auto
|
||||||
operator|(Range&& lhs, sprout::compost::effects::reverb_holder<T, IntType> const& rhs)
|
operator|(Range&& lhs, sprout::compost::effects::reverb_holder<T, IntType> const& rhs)
|
||||||
-> decltype(
|
-> decltype(
|
||||||
sprout::forward<Range>(lhs)
|
SPROUT_FORWARD(Range, lhs)
|
||||||
| sprout::adaptors::indexed | sprout::adaptors::outdirected
|
| sprout::adaptors::indexed | sprout::adaptors::outdirected
|
||||||
| sprout::adaptors::transformed(
|
| sprout::adaptors::transformed(
|
||||||
sprout::compost::reverb_outdirected_value<T, IntType>(
|
sprout::compost::reverb_outdirected_value<T, IntType>(
|
||||||
|
@ -140,7 +140,7 @@ namespace sprout {
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
return sprout::forward<Range>(lhs)
|
return SPROUT_FORWARD(Range, lhs)
|
||||||
| sprout::adaptors::indexed | sprout::adaptors::outdirected
|
| sprout::adaptors::indexed | sprout::adaptors::outdirected
|
||||||
| sprout::adaptors::transformed(
|
| sprout::adaptors::transformed(
|
||||||
sprout::compost::reverb_outdirected_value<T, IntType>(
|
sprout::compost::reverb_outdirected_value<T, IntType>(
|
||||||
|
|
|
@ -71,11 +71,11 @@ namespace sprout {
|
||||||
inline SPROUT_CONSTEXPR auto
|
inline SPROUT_CONSTEXPR auto
|
||||||
operator|(Range&& lhs, sprout::compost::effects::superpose_holder<T> const& rhs)
|
operator|(Range&& lhs, sprout::compost::effects::superpose_holder<T> const& rhs)
|
||||||
-> decltype(
|
-> decltype(
|
||||||
sprout::forward<Range>(lhs)
|
SPROUT_FORWARD(Range, lhs)
|
||||||
| sprout::adaptors::transformed(rhs.range(), sprout::plus<>())
|
| sprout::adaptors::transformed(rhs.range(), sprout::plus<>())
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
return sprout::forward<Range>(lhs)
|
return SPROUT_FORWARD(Range, lhs)
|
||||||
| sprout::adaptors::transformed(rhs.range(), sprout::plus<>())
|
| sprout::adaptors::transformed(rhs.range(), sprout::plus<>())
|
||||||
;
|
;
|
||||||
}
|
}
|
||||||
|
|
|
@ -103,14 +103,14 @@ namespace sprout {
|
||||||
inline SPROUT_CONSTEXPR auto
|
inline SPROUT_CONSTEXPR auto
|
||||||
operator|(Range&& lhs, sprout::compost::effects::tremolo_holder<T, IntType> const& rhs)
|
operator|(Range&& lhs, sprout::compost::effects::tremolo_holder<T, IntType> const& rhs)
|
||||||
-> decltype(
|
-> decltype(
|
||||||
sprout::forward<Range>(lhs)
|
SPROUT_FORWARD(Range, lhs)
|
||||||
| sprout::adaptors::indexed | sprout::adaptors::outdirected
|
| sprout::adaptors::indexed | sprout::adaptors::outdirected
|
||||||
| sprout::adaptors::transformed(
|
| sprout::adaptors::transformed(
|
||||||
sprout::compost::tremolo_outdirected_value<T, IntType>(rhs.depth(), rhs.rate(), rhs.samples_per_sec())
|
sprout::compost::tremolo_outdirected_value<T, IntType>(rhs.depth(), rhs.rate(), rhs.samples_per_sec())
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
return sprout::forward<Range>(lhs)
|
return SPROUT_FORWARD(Range, lhs)
|
||||||
| sprout::adaptors::indexed | sprout::adaptors::outdirected
|
| sprout::adaptors::indexed | sprout::adaptors::outdirected
|
||||||
| sprout::adaptors::transformed(
|
| sprout::adaptors::transformed(
|
||||||
sprout::compost::tremolo_outdirected_value<T, IntType>(rhs.depth(), rhs.rate(), rhs.samples_per_sec())
|
sprout::compost::tremolo_outdirected_value<T, IntType>(rhs.depth(), rhs.rate(), rhs.samples_per_sec())
|
||||||
|
|
|
@ -135,8 +135,8 @@ namespace sprout {
|
||||||
inline SPROUT_CONSTEXPR auto
|
inline SPROUT_CONSTEXPR auto
|
||||||
operator|(Range&& lhs, sprout::compost::effects::vibrato_holder<T, IntType> const& rhs)
|
operator|(Range&& lhs, sprout::compost::effects::vibrato_holder<T, IntType> const& rhs)
|
||||||
-> decltype(
|
-> decltype(
|
||||||
sprout::forward<Range>(lhs)
|
SPROUT_FORWARD(Range, lhs)
|
||||||
| sprout::adaptors::valued(sprout::size(sprout::forward<Range>(lhs)))
|
| sprout::adaptors::valued(sprout::size(SPROUT_FORWARD(Range, lhs)))
|
||||||
| sprout::adaptors::indexed | sprout::adaptors::outdirected
|
| sprout::adaptors::indexed | sprout::adaptors::outdirected
|
||||||
| sprout::adaptors::transformed(
|
| sprout::adaptors::transformed(
|
||||||
sprout::compost::vibrato_outdirected_value<T, IntType>(
|
sprout::compost::vibrato_outdirected_value<T, IntType>(
|
||||||
|
@ -145,8 +145,8 @@ namespace sprout {
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
return sprout::forward<Range>(lhs)
|
return SPROUT_FORWARD(Range, lhs)
|
||||||
| sprout::adaptors::valued(sprout::size(sprout::forward<Range>(lhs)))
|
| sprout::adaptors::valued(sprout::size(SPROUT_FORWARD(Range, lhs)))
|
||||||
| sprout::adaptors::indexed | sprout::adaptors::outdirected
|
| sprout::adaptors::indexed | sprout::adaptors::outdirected
|
||||||
| sprout::adaptors::transformed(
|
| sprout::adaptors::transformed(
|
||||||
sprout::compost::vibrato_outdirected_value<T, IntType>(
|
sprout::compost::vibrato_outdirected_value<T, IntType>(
|
||||||
|
|
|
@ -46,11 +46,11 @@ namespace sprout {
|
||||||
inline SPROUT_CONSTEXPR auto
|
inline SPROUT_CONSTEXPR auto
|
||||||
operator|(Range&& lhs, sprout::compost::formats::as_complex_forwarder const&)
|
operator|(Range&& lhs, sprout::compost::formats::as_complex_forwarder const&)
|
||||||
-> decltype(
|
-> decltype(
|
||||||
sprout::forward<Range>(lhs)
|
SPROUT_FORWARD(Range, lhs)
|
||||||
| sprout::adaptors::transformed(sprout::compost::to_complex_value())
|
| sprout::adaptors::transformed(sprout::compost::to_complex_value())
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
return sprout::forward<Range>(lhs)
|
return SPROUT_FORWARD(Range, lhs)
|
||||||
| sprout::adaptors::transformed(sprout::compost::to_complex_value())
|
| sprout::adaptors::transformed(sprout::compost::to_complex_value())
|
||||||
;
|
;
|
||||||
}
|
}
|
||||||
|
|
|
@ -47,11 +47,11 @@ namespace sprout {
|
||||||
inline SPROUT_CONSTEXPR auto
|
inline SPROUT_CONSTEXPR auto
|
||||||
operator|(Range&& lhs, sprout::compost::formats::as_imag_forwarder const&)
|
operator|(Range&& lhs, sprout::compost::formats::as_imag_forwarder const&)
|
||||||
-> decltype(
|
-> decltype(
|
||||||
sprout::forward<Range>(lhs)
|
SPROUT_FORWARD(Range, lhs)
|
||||||
| sprout::adaptors::transformed(sprout::compost::to_imag_value())
|
| sprout::adaptors::transformed(sprout::compost::to_imag_value())
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
return sprout::forward<Range>(lhs)
|
return SPROUT_FORWARD(Range, lhs)
|
||||||
| sprout::adaptors::transformed(sprout::compost::to_imag_value())
|
| sprout::adaptors::transformed(sprout::compost::to_imag_value())
|
||||||
;
|
;
|
||||||
}
|
}
|
||||||
|
|
|
@ -81,11 +81,11 @@ namespace sprout {
|
||||||
inline SPROUT_CONSTEXPR auto
|
inline SPROUT_CONSTEXPR auto
|
||||||
operator|(Range&& lhs, sprout::compost::formats::as_pcm_wave_forwarder<IntType> const&)
|
operator|(Range&& lhs, sprout::compost::formats::as_pcm_wave_forwarder<IntType> const&)
|
||||||
-> decltype(
|
-> decltype(
|
||||||
sprout::forward<Range>(lhs)
|
SPROUT_FORWARD(Range, lhs)
|
||||||
| sprout::adaptors::transformed(sprout::compost::normalized_to_pcm_wave<IntType>())
|
| sprout::adaptors::transformed(sprout::compost::normalized_to_pcm_wave<IntType>())
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
return sprout::forward<Range>(lhs)
|
return SPROUT_FORWARD(Range, lhs)
|
||||||
| sprout::adaptors::transformed(sprout::compost::normalized_to_pcm_wave<IntType>())
|
| sprout::adaptors::transformed(sprout::compost::normalized_to_pcm_wave<IntType>())
|
||||||
;
|
;
|
||||||
}
|
}
|
||||||
|
|
|
@ -47,11 +47,11 @@ namespace sprout {
|
||||||
inline SPROUT_CONSTEXPR auto
|
inline SPROUT_CONSTEXPR auto
|
||||||
operator|(Range&& lhs, sprout::compost::formats::as_real_forwarder const&)
|
operator|(Range&& lhs, sprout::compost::formats::as_real_forwarder const&)
|
||||||
-> decltype(
|
-> decltype(
|
||||||
sprout::forward<Range>(lhs)
|
SPROUT_FORWARD(Range, lhs)
|
||||||
| sprout::adaptors::transformed(sprout::compost::to_real_value())
|
| sprout::adaptors::transformed(sprout::compost::to_real_value())
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
return sprout::forward<Range>(lhs)
|
return SPROUT_FORWARD(Range, lhs)
|
||||||
| sprout::adaptors::transformed(sprout::compost::to_real_value())
|
| sprout::adaptors::transformed(sprout::compost::to_real_value())
|
||||||
;
|
;
|
||||||
}
|
}
|
||||||
|
|
|
@ -34,11 +34,11 @@ namespace sprout {
|
||||||
inline SPROUT_CONSTEXPR auto
|
inline SPROUT_CONSTEXPR auto
|
||||||
operator|(Range&& lhs, left_channel_forwarder const&)
|
operator|(Range&& lhs, left_channel_forwarder const&)
|
||||||
-> decltype(
|
-> decltype(
|
||||||
sprout::forward<Range>(lhs)
|
SPROUT_FORWARD(Range, lhs)
|
||||||
| sprout::adaptors::steps(2)
|
| sprout::adaptors::steps(2)
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
return sprout::forward<Range>(lhs)
|
return SPROUT_FORWARD(Range, lhs)
|
||||||
| sprout::adaptors::steps(2)
|
| sprout::adaptors::steps(2)
|
||||||
;
|
;
|
||||||
}
|
}
|
||||||
|
|
|
@ -34,11 +34,11 @@ namespace sprout {
|
||||||
inline SPROUT_CONSTEXPR auto
|
inline SPROUT_CONSTEXPR auto
|
||||||
operator|(Range&& lhs, right_channel_forwarder const&)
|
operator|(Range&& lhs, right_channel_forwarder const&)
|
||||||
-> decltype(
|
-> decltype(
|
||||||
sprout::forward<Range>(lhs)
|
SPROUT_FORWARD(Range, lhs)
|
||||||
| sprout::adaptors::steps(2, 1)
|
| sprout::adaptors::steps(2, 1)
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
return sprout::forward<Range>(lhs)
|
return SPROUT_FORWARD(Range, lhs)
|
||||||
| sprout::adaptors::steps(2, 1)
|
| sprout::adaptors::steps(2, 1)
|
||||||
;
|
;
|
||||||
}
|
}
|
||||||
|
|
|
@ -37,7 +37,7 @@ namespace sprout {
|
||||||
>::type
|
>::type
|
||||||
default_make_container(Args&&... args) {
|
default_make_container(Args&&... args) {
|
||||||
typedef typename sprout::container_construct_traits<Container>::copied_type copied_type;
|
typedef typename sprout::container_construct_traits<Container>::copied_type copied_type;
|
||||||
return copied_type{{sprout::forward<Args>(args)...}};
|
return copied_type{{SPROUT_FORWARD(Args, args)...}};
|
||||||
}
|
}
|
||||||
template<typename Container, typename... Args>
|
template<typename Container, typename... Args>
|
||||||
inline SPROUT_CONSTEXPR typename std::enable_if<
|
inline SPROUT_CONSTEXPR typename std::enable_if<
|
||||||
|
@ -46,7 +46,7 @@ namespace sprout {
|
||||||
>::type
|
>::type
|
||||||
default_make_container(Args&&... args) {
|
default_make_container(Args&&... args) {
|
||||||
typedef typename sprout::container_construct_traits<Container>::copied_type copied_type;
|
typedef typename sprout::container_construct_traits<Container>::copied_type copied_type;
|
||||||
return copied_type{sprout::forward<Args>(args)...};
|
return copied_type{SPROUT_FORWARD(Args, args)...};
|
||||||
}
|
}
|
||||||
|
|
||||||
template<typename Container, typename Cont, typename... Args>
|
template<typename Container, typename Cont, typename... Args>
|
||||||
|
@ -55,7 +55,7 @@ namespace sprout {
|
||||||
typename sprout::container_construct_traits<Container>::copied_type
|
typename sprout::container_construct_traits<Container>::copied_type
|
||||||
>::type
|
>::type
|
||||||
default_remake_container(Cont&&, typename sprout::container_traits<Container>::difference_type, Args&&... args) {
|
default_remake_container(Cont&&, typename sprout::container_traits<Container>::difference_type, Args&&... args) {
|
||||||
return sprout::container_construct_traits<Container>::make(sprout::forward<Args>(args)...);
|
return sprout::container_construct_traits<Container>::make(SPROUT_FORWARD(Args, args)...);
|
||||||
}
|
}
|
||||||
template<typename Container, typename Cont, typename... Args>
|
template<typename Container, typename Cont, typename... Args>
|
||||||
inline SPROUT_CONSTEXPR typename std::enable_if<
|
inline SPROUT_CONSTEXPR typename std::enable_if<
|
||||||
|
@ -65,7 +65,7 @@ namespace sprout {
|
||||||
typename sprout::container_construct_traits<Container>::copied_type
|
typename sprout::container_construct_traits<Container>::copied_type
|
||||||
>::type
|
>::type
|
||||||
default_remake_container(Cont&&, typename sprout::container_traits<Container>::difference_type, Args&&... args) {
|
default_remake_container(Cont&&, typename sprout::container_traits<Container>::difference_type, Args&&... args) {
|
||||||
return sprout::container_construct_traits<Container>::make(sprout::forward<Args>(args)...);
|
return sprout::container_construct_traits<Container>::make(SPROUT_FORWARD(Args, args)...);
|
||||||
}
|
}
|
||||||
template<typename Container, typename Cont, typename InputIterator>
|
template<typename Container, typename Cont, typename InputIterator>
|
||||||
inline SPROUT_CONSTEXPR typename std::enable_if<
|
inline SPROUT_CONSTEXPR typename std::enable_if<
|
||||||
|
@ -96,19 +96,19 @@ namespace sprout {
|
||||||
template<typename Cont>
|
template<typename Cont>
|
||||||
static SPROUT_CONSTEXPR copied_type
|
static SPROUT_CONSTEXPR copied_type
|
||||||
deep_copy(Cont&& cont) {
|
deep_copy(Cont&& cont) {
|
||||||
return sprout::forward<Cont>(cont);
|
return SPROUT_FORWARD(Cont, cont);
|
||||||
}
|
}
|
||||||
template<typename... Args>
|
template<typename... Args>
|
||||||
static SPROUT_CONSTEXPR copied_type
|
static SPROUT_CONSTEXPR copied_type
|
||||||
make(Args&&... args) {
|
make(Args&&... args) {
|
||||||
return sprout::detail::default_make_container<Container>(sprout::forward<Args>(args)...);
|
return sprout::detail::default_make_container<Container>(SPROUT_FORWARD(Args, args)...);
|
||||||
}
|
}
|
||||||
template<typename Cont, typename... Args>
|
template<typename Cont, typename... Args>
|
||||||
static SPROUT_CONSTEXPR copied_type
|
static SPROUT_CONSTEXPR copied_type
|
||||||
remake(Cont&& cont, typename sprout::container_traits<Container>::difference_type size, Args&&... args) {
|
remake(Cont&& cont, typename sprout::container_traits<Container>::difference_type size, Args&&... args) {
|
||||||
return sprout::detail::default_remake_container<Container>(
|
return sprout::detail::default_remake_container<Container>(
|
||||||
sprout::forward<Cont>(cont), size,
|
SPROUT_FORWARD(Cont, cont), size,
|
||||||
sprout::forward<Args>(args)...
|
SPROUT_FORWARD(Args, args)...
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
|
@ -24,7 +24,7 @@ namespace sprout {
|
||||||
template<typename Cont>
|
template<typename Cont>
|
||||||
static SPROUT_CONSTEXPR typename sprout::container_traits<Container>::difference_type
|
static SPROUT_CONSTEXPR typename sprout::container_traits<Container>::difference_type
|
||||||
fit_size(Cont&& cont, typename sprout::container_traits<Container>::difference_type size) {
|
fit_size(Cont&& cont, typename sprout::container_traits<Container>::difference_type size) {
|
||||||
return NS_SSCRISK_CEL_OR_SPROUT::min(size, sprout::size(sprout::forward<Cont>(cont)));
|
return NS_SSCRISK_CEL_OR_SPROUT::min(size, sprout::size(SPROUT_FORWARD(Cont, cont)));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
template<typename Container>
|
template<typename Container>
|
||||||
|
|
|
@ -143,17 +143,17 @@ namespace sprout {
|
||||||
template<typename Cont>
|
template<typename Cont>
|
||||||
static SPROUT_CONSTEXPR copied_type
|
static SPROUT_CONSTEXPR copied_type
|
||||||
deep_copy(Cont&& cont) {
|
deep_copy(Cont&& cont) {
|
||||||
return sprout::deep_copy(sprout::get_internal(sprout::forward<Cont>(cont)));
|
return sprout::deep_copy(sprout::get_internal(SPROUT_FORWARD(Cont, cont)));
|
||||||
}
|
}
|
||||||
template<typename... Args>
|
template<typename... Args>
|
||||||
static SPROUT_CONSTEXPR copied_type
|
static SPROUT_CONSTEXPR copied_type
|
||||||
make(Args&&... args) {
|
make(Args&&... args) {
|
||||||
return sprout::make<copied_type>(sprout::forward<Args>(args)...);
|
return sprout::make<copied_type>(SPROUT_FORWARD(Args, args)...);
|
||||||
}
|
}
|
||||||
template<typename Cont, typename... Args>
|
template<typename Cont, typename... Args>
|
||||||
static SPROUT_CONSTEXPR copied_type
|
static SPROUT_CONSTEXPR copied_type
|
||||||
remake(Cont&& cont, typename sprout::container_traits<Container>::difference_type size, Args&&... args) {
|
remake(Cont&& cont, typename sprout::container_traits<Container>::difference_type size, Args&&... args) {
|
||||||
return sprout::remake<copied_type>(sprout::get_internal(sprout::forward<Cont>(cont)), size, sprout::forward<Args>(args)...);
|
return sprout::remake<copied_type>(sprout::get_internal(SPROUT_FORWARD(Cont, cont)), size, SPROUT_FORWARD(Args, args)...);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -181,7 +181,7 @@ namespace sprout {
|
||||||
template<typename Cont>
|
template<typename Cont>
|
||||||
static SPROUT_CONSTEXPR typename internal<Cont>::type
|
static SPROUT_CONSTEXPR typename internal<Cont>::type
|
||||||
get_internal(Cont&& cont) {
|
get_internal(Cont&& cont) {
|
||||||
return call(sprout::forward<Cont>(cont));
|
return call(SPROUT_FORWARD(Cont, cont));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
} // namespace sprout
|
} // namespace sprout
|
||||||
|
|
|
@ -23,7 +23,7 @@ namespace sprout {
|
||||||
>::copied_type
|
>::copied_type
|
||||||
deep_copy(Container&& cont) {
|
deep_copy(Container&& cont) {
|
||||||
typedef typename std::remove_reference<Container>::type container_type;
|
typedef typename std::remove_reference<Container>::type container_type;
|
||||||
return sprout::container_construct_traits<container_type>::deep_copy(sprout::forward<Container>(cont));
|
return sprout::container_construct_traits<container_type>::deep_copy(SPROUT_FORWARD(Container, cont));
|
||||||
}
|
}
|
||||||
} // namespace sprout
|
} // namespace sprout
|
||||||
|
|
||||||
|
|
|
@ -22,7 +22,7 @@ namespace sprout {
|
||||||
inline SPROUT_CONSTEXPR typename sprout::container_traits<typename std::remove_reference<Container>::type>::difference_type
|
inline SPROUT_CONSTEXPR typename sprout::container_traits<typename std::remove_reference<Container>::type>::difference_type
|
||||||
fit_size(Container&& cont, typename sprout::container_traits<typename std::remove_reference<Container>::type>::difference_type size) {
|
fit_size(Container&& cont, typename sprout::container_traits<typename std::remove_reference<Container>::type>::difference_type size) {
|
||||||
typedef typename std::remove_reference<Container>::type container_type;
|
typedef typename std::remove_reference<Container>::type container_type;
|
||||||
return sprout::container_fitness_traits<container_type>::fit_size(sprout::forward<Container>(cont), size);
|
return sprout::container_fitness_traits<container_type>::fit_size(SPROUT_FORWARD(Container, cont), size);
|
||||||
}
|
}
|
||||||
} // namespace sprout
|
} // namespace sprout
|
||||||
|
|
||||||
|
|
|
@ -24,7 +24,7 @@ namespace sprout {
|
||||||
>
|
>
|
||||||
inline SPROUT_CONSTEXPR typename sprout::containers::deep_internal<Container>::type
|
inline SPROUT_CONSTEXPR typename sprout::containers::deep_internal<Container>::type
|
||||||
get_deep_internal_impl(Container&& cont) {
|
get_deep_internal_impl(Container&& cont) {
|
||||||
return sprout::forward<Container>(cont);
|
return SPROUT_FORWARD(Container, cont);
|
||||||
}
|
}
|
||||||
template<
|
template<
|
||||||
typename Container,
|
typename Container,
|
||||||
|
@ -33,7 +33,7 @@ namespace sprout {
|
||||||
inline SPROUT_CONSTEXPR typename sprout::containers::deep_internal<Container>::type
|
inline SPROUT_CONSTEXPR typename sprout::containers::deep_internal<Container>::type
|
||||||
get_deep_internal_impl(Container&& cont) {
|
get_deep_internal_impl(Container&& cont) {
|
||||||
return sprout::detail::get_deep_internal_impl(
|
return sprout::detail::get_deep_internal_impl(
|
||||||
sprout::get_internal(sprout::forward<Container>(cont))
|
sprout::get_internal(SPROUT_FORWARD(Container, cont))
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
} // namespace detail
|
} // namespace detail
|
||||||
|
@ -43,7 +43,7 @@ namespace sprout {
|
||||||
template<typename Container>
|
template<typename Container>
|
||||||
inline SPROUT_CONSTEXPR typename sprout::containers::deep_internal<Container>::type
|
inline SPROUT_CONSTEXPR typename sprout::containers::deep_internal<Container>::type
|
||||||
get_deep_internal(Container&& cont) {
|
get_deep_internal(Container&& cont) {
|
||||||
return sprout::detail::get_deep_internal_impl(sprout::forward<Container>(cont));
|
return sprout::detail::get_deep_internal_impl(SPROUT_FORWARD(Container, cont));
|
||||||
}
|
}
|
||||||
} // namespace sprout
|
} // namespace sprout
|
||||||
|
|
||||||
|
|
|
@ -22,7 +22,7 @@ namespace sprout {
|
||||||
inline SPROUT_CONSTEXPR typename sprout::containers::internal<Container>::type
|
inline SPROUT_CONSTEXPR typename sprout::containers::internal<Container>::type
|
||||||
get_internal(Container&& cont) {
|
get_internal(Container&& cont) {
|
||||||
typedef typename std::remove_reference<Container>::type container_type;
|
typedef typename std::remove_reference<Container>::type container_type;
|
||||||
return sprout::sub_container_traits<container_type>::get_internal(sprout::forward<Container>(cont));
|
return sprout::sub_container_traits<container_type>::get_internal(SPROUT_FORWARD(Container, cont));
|
||||||
}
|
}
|
||||||
} // namespace sprout
|
} // namespace sprout
|
||||||
|
|
||||||
|
|
|
@ -29,7 +29,7 @@ namespace sprout {
|
||||||
>::copied_type
|
>::copied_type
|
||||||
internal_deep_copy(Container&& cont) {
|
internal_deep_copy(Container&& cont) {
|
||||||
return sprout::deep_copy(
|
return sprout::deep_copy(
|
||||||
sprout::get_deep_internal(sprout::forward<Container>(cont))
|
sprout::get_deep_internal(SPROUT_FORWARD(Container, cont))
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
} // namespace sprout
|
} // namespace sprout
|
||||||
|
|
|
@ -19,7 +19,7 @@ namespace sprout {
|
||||||
template<typename Container, typename... Args>
|
template<typename Container, typename... Args>
|
||||||
inline SPROUT_CONSTEXPR typename sprout::container_construct_traits<Container>::copied_type
|
inline SPROUT_CONSTEXPR typename sprout::container_construct_traits<Container>::copied_type
|
||||||
make(Args&&... args) {
|
make(Args&&... args) {
|
||||||
return sprout::container_construct_traits<Container>::make(sprout::forward<Args>(args)...);
|
return sprout::container_construct_traits<Container>::make(SPROUT_FORWARD(Args, args)...);
|
||||||
}
|
}
|
||||||
} // namespace sprout
|
} // namespace sprout
|
||||||
|
|
||||||
|
|
|
@ -22,9 +22,9 @@ namespace sprout {
|
||||||
inline SPROUT_CONSTEXPR typename sprout::container_construct_traits<Container>::copied_type
|
inline SPROUT_CONSTEXPR typename sprout::container_construct_traits<Container>::copied_type
|
||||||
remake(Cont&& cont, typename sprout::container_traits<Container>::difference_type size, Args&&... args) {
|
remake(Cont&& cont, typename sprout::container_traits<Container>::difference_type size, Args&&... args) {
|
||||||
return sprout::container_construct_traits<Container>::remake(
|
return sprout::container_construct_traits<Container>::remake(
|
||||||
sprout::forward<Cont>(cont),
|
SPROUT_FORWARD(Cont, cont),
|
||||||
size,
|
size,
|
||||||
sprout::forward<Args>(args)...
|
SPROUT_FORWARD(Args, args)...
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
} // namespace sprout
|
} // namespace sprout
|
||||||
|
|
|
@ -27,7 +27,7 @@ namespace sprout {
|
||||||
template<typename Cont>
|
template<typename Cont>
|
||||||
static SPROUT_CONSTEXPR typename internal<Cont>::type
|
static SPROUT_CONSTEXPR typename internal<Cont>::type
|
||||||
get_internal(Cont&& cont) {
|
get_internal(Cont&& cont) {
|
||||||
return sprout::forward<Cont>(cont);
|
return SPROUT_FORWARD(Cont, cont);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
template<typename Container>
|
template<typename Container>
|
||||||
|
|
|
@ -433,7 +433,7 @@ namespace sprout {
|
||||||
operator()(T&& x, U&& y)
|
operator()(T&& x, U&& y)
|
||||||
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout::tolower(std::declval<T>()) == sprout::tolower(std::declval<U>())))
|
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout::tolower(std::declval<T>()) == sprout::tolower(std::declval<U>())))
|
||||||
{
|
{
|
||||||
return sprout::tolower(sprout::forward<T>(x)) == sprout::tolower(sprout::forward<U>(y));
|
return sprout::tolower(SPROUT_FORWARD(T, x)) == sprout::tolower(SPROUT_FORWARD(U, y));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -459,7 +459,7 @@ namespace sprout {
|
||||||
operator()(T&& x, U&& y)
|
operator()(T&& x, U&& y)
|
||||||
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout::tolower(std::declval<T>()) != sprout::tolower(std::declval<U>())))
|
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout::tolower(std::declval<T>()) != sprout::tolower(std::declval<U>())))
|
||||||
{
|
{
|
||||||
return sprout::tolower(sprout::forward<T>(x)) != sprout::tolower(sprout::forward<U>(y));
|
return sprout::tolower(SPROUT_FORWARD(T, x)) != sprout::tolower(SPROUT_FORWARD(U, y));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
} // namespace ctypes
|
} // namespace ctypes
|
||||||
|
|
|
@ -44,10 +44,10 @@ namespace sprout {
|
||||||
template<std::size_t I, typename T>
|
template<std::size_t I, typename T>
|
||||||
inline SPROUT_CONSTEXPR auto
|
inline SPROUT_CONSTEXPR auto
|
||||||
get(T&& t)
|
get(T&& t)
|
||||||
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout::tuples::get<I>(sprout::forward<T>(t))))
|
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout::tuples::get<I>(SPROUT_FORWARD(T, t))))
|
||||||
-> decltype(sprout::tuples::get<I>(sprout::forward<T>(t)))
|
-> decltype(sprout::tuples::get<I>(SPROUT_FORWARD(T, t)))
|
||||||
{
|
{
|
||||||
return sprout::tuples::get<I>(sprout::forward<T>(t));
|
return sprout::tuples::get<I>(SPROUT_FORWARD(T, t));
|
||||||
}
|
}
|
||||||
} // namespace access
|
} // namespace access
|
||||||
} // namespace darkroom
|
} // namespace darkroom
|
||||||
|
|
|
@ -38,26 +38,26 @@ namespace sprout {
|
||||||
template<typename T>
|
template<typename T>
|
||||||
inline SPROUT_CONSTEXPR auto
|
inline SPROUT_CONSTEXPR auto
|
||||||
r(T&& t)
|
r(T&& t)
|
||||||
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout::darkroom::access::get<0>(sprout::forward<T>(t))))
|
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout::darkroom::access::get<0>(SPROUT_FORWARD(T, t))))
|
||||||
-> decltype(sprout::darkroom::access::get<0>(sprout::forward<T>(t)))
|
-> decltype(sprout::darkroom::access::get<0>(SPROUT_FORWARD(T, t)))
|
||||||
{
|
{
|
||||||
return sprout::darkroom::access::get<0>(sprout::forward<T>(t));
|
return sprout::darkroom::access::get<0>(SPROUT_FORWARD(T, t));
|
||||||
}
|
}
|
||||||
template<typename T>
|
template<typename T>
|
||||||
inline SPROUT_CONSTEXPR auto
|
inline SPROUT_CONSTEXPR auto
|
||||||
g(T&& t)
|
g(T&& t)
|
||||||
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout::darkroom::access::get<1>(sprout::forward<T>(t))))
|
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout::darkroom::access::get<1>(SPROUT_FORWARD(T, t))))
|
||||||
-> decltype(sprout::darkroom::access::get<1>(sprout::forward<T>(t)))
|
-> decltype(sprout::darkroom::access::get<1>(SPROUT_FORWARD(T, t)))
|
||||||
{
|
{
|
||||||
return sprout::darkroom::access::get<1>(sprout::forward<T>(t));
|
return sprout::darkroom::access::get<1>(SPROUT_FORWARD(T, t));
|
||||||
}
|
}
|
||||||
template<typename T>
|
template<typename T>
|
||||||
inline SPROUT_CONSTEXPR auto
|
inline SPROUT_CONSTEXPR auto
|
||||||
b(T&& t)
|
b(T&& t)
|
||||||
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout::darkroom::access::get<2>(sprout::forward<T>(t))))
|
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout::darkroom::access::get<2>(SPROUT_FORWARD(T, t))))
|
||||||
-> decltype(sprout::darkroom::access::get<2>(sprout::forward<T>(t)))
|
-> decltype(sprout::darkroom::access::get<2>(SPROUT_FORWARD(T, t)))
|
||||||
{
|
{
|
||||||
return sprout::darkroom::access::get<2>(sprout::forward<T>(t));
|
return sprout::darkroom::access::get<2>(SPROUT_FORWARD(T, t));
|
||||||
}
|
}
|
||||||
//
|
//
|
||||||
// a
|
// a
|
||||||
|
@ -68,10 +68,10 @@ namespace sprout {
|
||||||
>
|
>
|
||||||
inline SPROUT_CONSTEXPR auto
|
inline SPROUT_CONSTEXPR auto
|
||||||
a(T&& t)
|
a(T&& t)
|
||||||
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout::darkroom::access::get<3>(sprout::forward<T>(t))))
|
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout::darkroom::access::get<3>(SPROUT_FORWARD(T, t))))
|
||||||
-> decltype(sprout::darkroom::access::get<3>(sprout::forward<T>(t)))
|
-> decltype(sprout::darkroom::access::get<3>(SPROUT_FORWARD(T, t)))
|
||||||
{
|
{
|
||||||
return sprout::darkroom::access::get<3>(sprout::forward<T>(t));
|
return sprout::darkroom::access::get<3>(SPROUT_FORWARD(T, t));
|
||||||
}
|
}
|
||||||
template<
|
template<
|
||||||
typename T,
|
typename T,
|
||||||
|
|
|
@ -26,26 +26,26 @@ namespace sprout {
|
||||||
template<typename T>
|
template<typename T>
|
||||||
inline SPROUT_CONSTEXPR auto
|
inline SPROUT_CONSTEXPR auto
|
||||||
x(T&& t)
|
x(T&& t)
|
||||||
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout::darkroom::access::get<0>(sprout::forward<T>(t))))
|
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout::darkroom::access::get<0>(SPROUT_FORWARD(T, t))))
|
||||||
-> decltype(sprout::darkroom::access::get<0>(sprout::forward<T>(t)))
|
-> decltype(sprout::darkroom::access::get<0>(SPROUT_FORWARD(T, t)))
|
||||||
{
|
{
|
||||||
return sprout::darkroom::access::get<0>(sprout::forward<T>(t));
|
return sprout::darkroom::access::get<0>(SPROUT_FORWARD(T, t));
|
||||||
}
|
}
|
||||||
template<typename T>
|
template<typename T>
|
||||||
inline SPROUT_CONSTEXPR auto
|
inline SPROUT_CONSTEXPR auto
|
||||||
y(T&& t)
|
y(T&& t)
|
||||||
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout::darkroom::access::get<1>(sprout::forward<T>(t))))
|
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout::darkroom::access::get<1>(SPROUT_FORWARD(T, t))))
|
||||||
-> decltype(sprout::darkroom::access::get<1>(sprout::forward<T>(t)))
|
-> decltype(sprout::darkroom::access::get<1>(SPROUT_FORWARD(T, t)))
|
||||||
{
|
{
|
||||||
return sprout::darkroom::access::get<1>(sprout::forward<T>(t));
|
return sprout::darkroom::access::get<1>(SPROUT_FORWARD(T, t));
|
||||||
}
|
}
|
||||||
template<typename T>
|
template<typename T>
|
||||||
inline SPROUT_CONSTEXPR auto
|
inline SPROUT_CONSTEXPR auto
|
||||||
z(T&& t)
|
z(T&& t)
|
||||||
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout::darkroom::access::get<2>(sprout::forward<T>(t))))
|
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout::darkroom::access::get<2>(SPROUT_FORWARD(T, t))))
|
||||||
-> decltype(sprout::darkroom::access::get<2>(sprout::forward<T>(t)))
|
-> decltype(sprout::darkroom::access::get<2>(SPROUT_FORWARD(T, t)))
|
||||||
{
|
{
|
||||||
return sprout::darkroom::access::get<2>(sprout::forward<T>(t));
|
return sprout::darkroom::access::get<2>(SPROUT_FORWARD(T, t));
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
|
|
@ -51,42 +51,42 @@ namespace sprout {
|
||||||
template<typename T>
|
template<typename T>
|
||||||
inline SPROUT_CONSTEXPR auto
|
inline SPROUT_CONSTEXPR auto
|
||||||
does_intersect(T&& t)
|
does_intersect(T&& t)
|
||||||
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout::darkroom::access::get<0>(sprout::forward<T>(t))))
|
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout::darkroom::access::get<0>(SPROUT_FORWARD(T, t))))
|
||||||
-> decltype(sprout::darkroom::access::get<0>(sprout::forward<T>(t)))
|
-> decltype(sprout::darkroom::access::get<0>(SPROUT_FORWARD(T, t)))
|
||||||
{
|
{
|
||||||
return sprout::darkroom::access::get<0>(sprout::forward<T>(t));
|
return sprout::darkroom::access::get<0>(SPROUT_FORWARD(T, t));
|
||||||
}
|
}
|
||||||
template<typename T>
|
template<typename T>
|
||||||
inline SPROUT_CONSTEXPR auto
|
inline SPROUT_CONSTEXPR auto
|
||||||
distance(T&& t)
|
distance(T&& t)
|
||||||
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout::darkroom::access::get<1>(sprout::forward<T>(t))))
|
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout::darkroom::access::get<1>(SPROUT_FORWARD(T, t))))
|
||||||
-> decltype(sprout::darkroom::access::get<1>(sprout::forward<T>(t)))
|
-> decltype(sprout::darkroom::access::get<1>(SPROUT_FORWARD(T, t)))
|
||||||
{
|
{
|
||||||
return sprout::darkroom::access::get<1>(sprout::forward<T>(t));
|
return sprout::darkroom::access::get<1>(SPROUT_FORWARD(T, t));
|
||||||
}
|
}
|
||||||
template<typename T>
|
template<typename T>
|
||||||
inline SPROUT_CONSTEXPR auto
|
inline SPROUT_CONSTEXPR auto
|
||||||
point_of_intersection(T&& t)
|
point_of_intersection(T&& t)
|
||||||
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout::darkroom::access::get<2>(sprout::forward<T>(t))))
|
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout::darkroom::access::get<2>(SPROUT_FORWARD(T, t))))
|
||||||
-> decltype(sprout::darkroom::access::get<2>(sprout::forward<T>(t)))
|
-> decltype(sprout::darkroom::access::get<2>(SPROUT_FORWARD(T, t)))
|
||||||
{
|
{
|
||||||
return sprout::darkroom::access::get<2>(sprout::forward<T>(t));
|
return sprout::darkroom::access::get<2>(SPROUT_FORWARD(T, t));
|
||||||
}
|
}
|
||||||
template<typename T>
|
template<typename T>
|
||||||
inline SPROUT_CONSTEXPR auto
|
inline SPROUT_CONSTEXPR auto
|
||||||
normal(T&& t)
|
normal(T&& t)
|
||||||
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout::darkroom::access::get<3>(sprout::forward<T>(t))))
|
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout::darkroom::access::get<3>(SPROUT_FORWARD(T, t))))
|
||||||
-> decltype(sprout::darkroom::access::get<3>(sprout::forward<T>(t)))
|
-> decltype(sprout::darkroom::access::get<3>(SPROUT_FORWARD(T, t)))
|
||||||
{
|
{
|
||||||
return sprout::darkroom::access::get<3>(sprout::forward<T>(t));
|
return sprout::darkroom::access::get<3>(SPROUT_FORWARD(T, t));
|
||||||
}
|
}
|
||||||
template<typename T>
|
template<typename T>
|
||||||
inline SPROUT_CONSTEXPR auto
|
inline SPROUT_CONSTEXPR auto
|
||||||
material(T&& t)
|
material(T&& t)
|
||||||
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout::darkroom::access::get<4>(sprout::forward<T>(t))))
|
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout::darkroom::access::get<4>(SPROUT_FORWARD(T, t))))
|
||||||
-> decltype(sprout::darkroom::access::get<4>(sprout::forward<T>(t)))
|
-> decltype(sprout::darkroom::access::get<4>(SPROUT_FORWARD(T, t)))
|
||||||
{
|
{
|
||||||
return sprout::darkroom::access::get<4>(sprout::forward<T>(t));
|
return sprout::darkroom::access::get<4>(SPROUT_FORWARD(T, t));
|
||||||
}
|
}
|
||||||
template<
|
template<
|
||||||
typename T,
|
typename T,
|
||||||
|
@ -94,10 +94,10 @@ namespace sprout {
|
||||||
>
|
>
|
||||||
inline SPROUT_CONSTEXPR auto
|
inline SPROUT_CONSTEXPR auto
|
||||||
is_from_inside(T&& t)
|
is_from_inside(T&& t)
|
||||||
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout::darkroom::access::get<5>(sprout::forward<T>(t))))
|
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout::darkroom::access::get<5>(SPROUT_FORWARD(T, t))))
|
||||||
-> decltype(sprout::darkroom::access::get<5>(sprout::forward<T>(t)))
|
-> decltype(sprout::darkroom::access::get<5>(SPROUT_FORWARD(T, t)))
|
||||||
{
|
{
|
||||||
return sprout::darkroom::access::get<5>(sprout::forward<T>(t));
|
return sprout::darkroom::access::get<5>(SPROUT_FORWARD(T, t));
|
||||||
}
|
}
|
||||||
template<
|
template<
|
||||||
typename T,
|
typename T,
|
||||||
|
|
|
@ -21,9 +21,9 @@ namespace sprout {
|
||||||
template<typename... Lights>
|
template<typename... Lights>
|
||||||
inline SPROUT_CONSTEXPR auto
|
inline SPROUT_CONSTEXPR auto
|
||||||
make_light_list(Lights&&... lights)
|
make_light_list(Lights&&... lights)
|
||||||
-> decltype(sprout::make_tuple(sprout::forward<Lights>(lights)...))
|
-> decltype(sprout::make_tuple(SPROUT_FORWARD(Lights, lights)...))
|
||||||
{
|
{
|
||||||
return sprout::make_tuple(sprout::forward<Lights>(lights)...);
|
return sprout::make_tuple(SPROUT_FORWARD(Lights, lights)...);
|
||||||
}
|
}
|
||||||
} // namespace lights
|
} // namespace lights
|
||||||
} // namespace darkroom
|
} // namespace darkroom
|
||||||
|
|
|
@ -58,10 +58,10 @@ namespace sprout {
|
||||||
>
|
>
|
||||||
inline SPROUT_CONSTEXPR auto
|
inline SPROUT_CONSTEXPR auto
|
||||||
color(T&& t)
|
color(T&& t)
|
||||||
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout::darkroom::access::get<0>(sprout::forward<T>(t))))
|
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout::darkroom::access::get<0>(SPROUT_FORWARD(T, t))))
|
||||||
-> decltype(sprout::darkroom::access::get<0>(sprout::forward<T>(t)))
|
-> decltype(sprout::darkroom::access::get<0>(SPROUT_FORWARD(T, t)))
|
||||||
{
|
{
|
||||||
return sprout::darkroom::access::get<0>(sprout::forward<T>(t));
|
return sprout::darkroom::access::get<0>(SPROUT_FORWARD(T, t));
|
||||||
}
|
}
|
||||||
template<
|
template<
|
||||||
typename T,
|
typename T,
|
||||||
|
@ -82,10 +82,10 @@ namespace sprout {
|
||||||
>
|
>
|
||||||
inline SPROUT_CONSTEXPR auto
|
inline SPROUT_CONSTEXPR auto
|
||||||
reflection(T&& t)
|
reflection(T&& t)
|
||||||
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout::darkroom::access::get<1>(sprout::forward<T>(t))))
|
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout::darkroom::access::get<1>(SPROUT_FORWARD(T, t))))
|
||||||
-> decltype(sprout::darkroom::access::get<1>(sprout::forward<T>(t)))
|
-> decltype(sprout::darkroom::access::get<1>(SPROUT_FORWARD(T, t)))
|
||||||
{
|
{
|
||||||
return sprout::darkroom::access::get<1>(sprout::forward<T>(t));
|
return sprout::darkroom::access::get<1>(SPROUT_FORWARD(T, t));
|
||||||
}
|
}
|
||||||
template<
|
template<
|
||||||
typename T,
|
typename T,
|
||||||
|
@ -106,10 +106,10 @@ namespace sprout {
|
||||||
>
|
>
|
||||||
inline SPROUT_CONSTEXPR auto
|
inline SPROUT_CONSTEXPR auto
|
||||||
alpha(T&& t)
|
alpha(T&& t)
|
||||||
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout::darkroom::access::get<2>(sprout::forward<T>(t))))
|
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout::darkroom::access::get<2>(SPROUT_FORWARD(T, t))))
|
||||||
-> decltype(sprout::darkroom::access::get<2>(sprout::forward<T>(t)))
|
-> decltype(sprout::darkroom::access::get<2>(SPROUT_FORWARD(T, t)))
|
||||||
{
|
{
|
||||||
return sprout::darkroom::access::get<2>(sprout::forward<T>(t));
|
return sprout::darkroom::access::get<2>(SPROUT_FORWARD(T, t));
|
||||||
}
|
}
|
||||||
template<
|
template<
|
||||||
typename T,
|
typename T,
|
||||||
|
@ -130,10 +130,10 @@ namespace sprout {
|
||||||
>
|
>
|
||||||
inline SPROUT_CONSTEXPR auto
|
inline SPROUT_CONSTEXPR auto
|
||||||
refraction(T&& t)
|
refraction(T&& t)
|
||||||
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout::darkroom::access::get<3>(sprout::forward<T>(t))))
|
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout::darkroom::access::get<3>(SPROUT_FORWARD(T, t))))
|
||||||
-> decltype(sprout::darkroom::access::get<3>(sprout::forward<T>(t)))
|
-> decltype(sprout::darkroom::access::get<3>(SPROUT_FORWARD(T, t)))
|
||||||
{
|
{
|
||||||
return sprout::darkroom::access::get<3>(sprout::forward<T>(t));
|
return sprout::darkroom::access::get<3>(SPROUT_FORWARD(T, t));
|
||||||
}
|
}
|
||||||
template<
|
template<
|
||||||
typename T,
|
typename T,
|
||||||
|
|
|
@ -21,9 +21,9 @@ namespace sprout {
|
||||||
template<typename... Objects>
|
template<typename... Objects>
|
||||||
inline SPROUT_CONSTEXPR auto
|
inline SPROUT_CONSTEXPR auto
|
||||||
make_object_list(Objects&&... objs)
|
make_object_list(Objects&&... objs)
|
||||||
-> decltype(sprout::make_tuple(sprout::forward<Objects>(objs)...))
|
-> decltype(sprout::make_tuple(SPROUT_FORWARD(Objects, objs)...))
|
||||||
{
|
{
|
||||||
return sprout::make_tuple(sprout::forward<Objects>(objs)...);
|
return sprout::make_tuple(SPROUT_FORWARD(Objects, objs)...);
|
||||||
}
|
}
|
||||||
} // namespace objects
|
} // namespace objects
|
||||||
} // namespace darkroom
|
} // namespace darkroom
|
||||||
|
|
|
@ -25,18 +25,18 @@ namespace sprout {
|
||||||
template<typename T>
|
template<typename T>
|
||||||
inline SPROUT_CONSTEXPR auto
|
inline SPROUT_CONSTEXPR auto
|
||||||
position(T&& t)
|
position(T&& t)
|
||||||
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout::darkroom::access::get<0>(sprout::forward<T>(t))))
|
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout::darkroom::access::get<0>(SPROUT_FORWARD(T, t))))
|
||||||
-> decltype(sprout::darkroom::access::get<0>(sprout::forward<T>(t)))
|
-> decltype(sprout::darkroom::access::get<0>(SPROUT_FORWARD(T, t)))
|
||||||
{
|
{
|
||||||
return sprout::darkroom::access::get<0>(sprout::forward<T>(t));
|
return sprout::darkroom::access::get<0>(SPROUT_FORWARD(T, t));
|
||||||
}
|
}
|
||||||
template<typename T>
|
template<typename T>
|
||||||
inline SPROUT_CONSTEXPR auto
|
inline SPROUT_CONSTEXPR auto
|
||||||
direction(T&& t)
|
direction(T&& t)
|
||||||
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout::darkroom::access::get<1>(sprout::forward<T>(t))))
|
SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout::darkroom::access::get<1>(SPROUT_FORWARD(T, t))))
|
||||||
-> decltype(sprout::darkroom::access::get<1>(sprout::forward<T>(t)))
|
-> decltype(sprout::darkroom::access::get<1>(SPROUT_FORWARD(T, t)))
|
||||||
{
|
{
|
||||||
return sprout::darkroom::access::get<1>(sprout::forward<T>(t));
|
return sprout::darkroom::access::get<1>(SPROUT_FORWARD(T, t));
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
|
|
@ -28,7 +28,7 @@ namespace sprout {
|
||||||
operator()(T&& x)
|
operator()(T&& x)
|
||||||
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(&std::declval<T>()))
|
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(&std::declval<T>()))
|
||||||
{
|
{
|
||||||
return &sprout::forward<T>(x);
|
return &SPROUT_FORWARD(T, x);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
} // namespace sprout
|
} // namespace sprout
|
||||||
|
|
|
@ -28,7 +28,7 @@ namespace sprout {
|
||||||
operator()(T&& x, U&& y)
|
operator()(T&& x, U&& y)
|
||||||
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() = std::declval<U>()))
|
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() = std::declval<U>()))
|
||||||
{
|
{
|
||||||
return sprout::forward<T>(x) = sprout::forward<U>(y);
|
return SPROUT_FORWARD(T, x) = SPROUT_FORWARD(U, y);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
} // namespace sprout
|
} // namespace sprout
|
||||||
|
|
|
@ -107,7 +107,7 @@ namespace sprout {
|
||||||
) const volatile
|
) const volatile
|
||||||
-> decltype(arg(std::declval<Args>()...))
|
-> decltype(arg(std::declval<Args>()...))
|
||||||
{
|
{
|
||||||
return arg(sprout::forward<Args>(sprout::tuples::get<Indexes>(tuple))...);
|
return arg(SPROUT_FORWARD(Args, sprout::tuples::get<Indexes>(tuple))...);
|
||||||
}
|
}
|
||||||
public:
|
public:
|
||||||
template<typename CVArg, typename... Args>
|
template<typename CVArg, typename... Args>
|
||||||
|
@ -136,9 +136,8 @@ namespace sprout {
|
||||||
template<typename Tuple>
|
template<typename Tuple>
|
||||||
typename result<mu (Arg, Tuple)>::type
|
typename result<mu (Arg, Tuple)>::type
|
||||||
SPROUT_CONSTEXPR operator()(Arg /*const volatile&*/, Tuple& tuple) const volatile {
|
SPROUT_CONSTEXPR operator()(Arg /*const volatile&*/, Tuple& tuple) const volatile {
|
||||||
return sprout::forward<typename result<mu (Arg, Tuple)>::type>(
|
typedef typename result<mu (Arg, Tuple)>::type type;
|
||||||
sprout::tuples::get<(sprout::is_placeholder<Arg>::value - 1)>(tuple)
|
return SPROUT_FORWARD(type, sprout::tuples::get<(sprout::is_placeholder<Arg>::value - 1)>(tuple));
|
||||||
);
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
template<typename Arg>
|
template<typename Arg>
|
||||||
|
@ -154,7 +153,7 @@ namespace sprout {
|
||||||
public:
|
public:
|
||||||
template<typename CVArg, typename Tuple>
|
template<typename CVArg, typename Tuple>
|
||||||
SPROUT_CONSTEXPR CVArg&& operator()(CVArg&& arg, Tuple&) const volatile {
|
SPROUT_CONSTEXPR CVArg&& operator()(CVArg&& arg, Tuple&) const volatile {
|
||||||
return sprout::forward<CVArg>(arg);
|
return SPROUT_FORWARD(CVArg, arg);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -395,12 +394,12 @@ namespace sprout {
|
||||||
-> decltype(
|
-> decltype(
|
||||||
sprout::detail::get_bound_helper::get_bound<
|
sprout::detail::get_bound_helper::get_bound<
|
||||||
sprout::detail::bound_position<I, typename std::remove_reference<Bounds>::type, ArgSize>::value
|
sprout::detail::bound_position<I, typename std::remove_reference<Bounds>::type, ArgSize>::value
|
||||||
>(sprout::forward<Bounds>(bound_args))
|
>(SPROUT_FORWARD(Bounds, bound_args))
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
return sprout::detail::get_bound_helper::get_bound<
|
return sprout::detail::get_bound_helper::get_bound<
|
||||||
sprout::detail::bound_position<I, typename std::remove_reference<Bounds>::type, ArgSize>::value
|
sprout::detail::bound_position<I, typename std::remove_reference<Bounds>::type, ArgSize>::value
|
||||||
>(sprout::forward<Bounds>(bound_args));
|
>(SPROUT_FORWARD(Bounds, bound_args));
|
||||||
}
|
}
|
||||||
} // namespace detail
|
} // namespace detail
|
||||||
|
|
||||||
|
@ -490,7 +489,7 @@ namespace sprout {
|
||||||
template<typename... Args>
|
template<typename... Args>
|
||||||
explicit SPROUT_CONSTEXPR binder_impl(Functor const& f, Args&&... args)
|
explicit SPROUT_CONSTEXPR binder_impl(Functor const& f, Args&&... args)
|
||||||
: f_(f)
|
: f_(f)
|
||||||
, bound_args_(sprout::forward<Args>(args)...)
|
, bound_args_(SPROUT_FORWARD(Args, args)...)
|
||||||
{}
|
{}
|
||||||
binder_impl(binder_impl const&) = default;
|
binder_impl(binder_impl const&) = default;
|
||||||
};
|
};
|
||||||
|
@ -510,7 +509,7 @@ namespace sprout {
|
||||||
public:
|
public:
|
||||||
template<typename... Args>
|
template<typename... Args>
|
||||||
explicit SPROUT_CONSTEXPR binder(Functor const& f, Args&&... args)
|
explicit SPROUT_CONSTEXPR binder(Functor const& f, Args&&... args)
|
||||||
: impl_type(f, sprout::forward<Args>(args)...)
|
: impl_type(f, SPROUT_FORWARD(Args, args)...)
|
||||||
{}
|
{}
|
||||||
binder(binder const&) = default;
|
binder(binder const&) = default;
|
||||||
template<
|
template<
|
||||||
|
@ -521,7 +520,7 @@ namespace sprout {
|
||||||
>
|
>
|
||||||
Result operator()(Args&&... args) {
|
Result operator()(Args&&... args) {
|
||||||
return impl_type::template call<Result>(
|
return impl_type::template call<Result>(
|
||||||
sprout::tuples::forward_as_tuple(sprout::forward<Args>(args)...),
|
sprout::tuples::forward_as_tuple(SPROUT_FORWARD(Args, args)...),
|
||||||
sprout::detail::bound_indexes<bounds_type, sizeof...(Args)>::make()
|
sprout::detail::bound_indexes<bounds_type, sizeof...(Args)>::make()
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -533,7 +532,7 @@ namespace sprout {
|
||||||
>
|
>
|
||||||
SPROUT_CONSTEXPR Result operator()(Args&&... args) const {
|
SPROUT_CONSTEXPR Result operator()(Args&&... args) const {
|
||||||
return impl_type::template call_c<Result>(
|
return impl_type::template call_c<Result>(
|
||||||
sprout::tuples::forward_as_tuple(sprout::forward<Args>(args)...),
|
sprout::tuples::forward_as_tuple(SPROUT_FORWARD(Args, args)...),
|
||||||
sprout::detail::bound_indexes<bounds_type, sizeof...(Args)>::make()
|
sprout::detail::bound_indexes<bounds_type, sizeof...(Args)>::make()
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -545,7 +544,7 @@ namespace sprout {
|
||||||
>
|
>
|
||||||
Result operator()(Args&&... args) volatile {
|
Result operator()(Args&&... args) volatile {
|
||||||
return impl_type::template call_v<Result>(
|
return impl_type::template call_v<Result>(
|
||||||
sprout::tuples::forward_as_tuple(sprout::forward<Args>(args)...),
|
sprout::tuples::forward_as_tuple(SPROUT_FORWARD(Args, args)...),
|
||||||
sprout::detail::bound_indexes<bounds_type, sizeof...(Args)>::make()
|
sprout::detail::bound_indexes<bounds_type, sizeof...(Args)>::make()
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -557,7 +556,7 @@ namespace sprout {
|
||||||
>
|
>
|
||||||
SPROUT_CONSTEXPR Result operator()(Args&&... args) const volatile {
|
SPROUT_CONSTEXPR Result operator()(Args&&... args) const volatile {
|
||||||
return impl_type::template call_cv<Result>(
|
return impl_type::template call_cv<Result>(
|
||||||
sprout::tuples::forward_as_tuple(sprout::forward<Args>(args)...),
|
sprout::tuples::forward_as_tuple(SPROUT_FORWARD(Args, args)...),
|
||||||
sprout::detail::bound_indexes<bounds_type, sizeof...(Args)>::make()
|
sprout::detail::bound_indexes<bounds_type, sizeof...(Args)>::make()
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -577,7 +576,7 @@ namespace sprout {
|
||||||
public:
|
public:
|
||||||
template<typename... Args>
|
template<typename... Args>
|
||||||
explicit SPROUT_CONSTEXPR cbinder(Functor const& f, Args&&... args)
|
explicit SPROUT_CONSTEXPR cbinder(Functor const& f, Args&&... args)
|
||||||
: impl_type(f, sprout::forward<Args>(args)...)
|
: impl_type(f, SPROUT_FORWARD(Args, args)...)
|
||||||
{}
|
{}
|
||||||
cbinder(cbinder const&) = default;
|
cbinder(cbinder const&) = default;
|
||||||
template<
|
template<
|
||||||
|
@ -588,7 +587,7 @@ namespace sprout {
|
||||||
>
|
>
|
||||||
SPROUT_CONSTEXPR Result operator()(Args&&... args) const {
|
SPROUT_CONSTEXPR Result operator()(Args&&... args) const {
|
||||||
return impl_type::template call_c<Result>(
|
return impl_type::template call_c<Result>(
|
||||||
sprout::tuples::forward_as_tuple(sprout::forward<Args>(args)...),
|
sprout::tuples::forward_as_tuple(SPROUT_FORWARD(Args, args)...),
|
||||||
sprout::detail::bound_indexes<bounds_type, sizeof...(Args)>::make()
|
sprout::detail::bound_indexes<bounds_type, sizeof...(Args)>::make()
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -600,7 +599,7 @@ namespace sprout {
|
||||||
>
|
>
|
||||||
SPROUT_CONSTEXPR Result operator()(Args&&... args) const volatile {
|
SPROUT_CONSTEXPR Result operator()(Args&&... args) const volatile {
|
||||||
return impl_type::template call_cv<Result>(
|
return impl_type::template call_cv<Result>(
|
||||||
sprout::tuples::forward_as_tuple(sprout::forward<Args>(args)...),
|
sprout::tuples::forward_as_tuple(SPROUT_FORWARD(Args, args)...),
|
||||||
sprout::detail::bound_indexes<bounds_type, sizeof...(Args)>::make()
|
sprout::detail::bound_indexes<bounds_type, sizeof...(Args)>::make()
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -704,7 +703,7 @@ namespace sprout {
|
||||||
template<typename... Args>
|
template<typename... Args>
|
||||||
explicit SPROUT_CONSTEXPR res_binder_impl(Functor const& f, Args&&... args)
|
explicit SPROUT_CONSTEXPR res_binder_impl(Functor const& f, Args&&... args)
|
||||||
: f_(f)
|
: f_(f)
|
||||||
, bound_args_(sprout::forward<Args>(args)...)
|
, bound_args_(SPROUT_FORWARD(Args, args)...)
|
||||||
{}
|
{}
|
||||||
res_binder_impl(res_binder_impl const&) = default;
|
res_binder_impl(res_binder_impl const&) = default;
|
||||||
};
|
};
|
||||||
|
@ -726,34 +725,34 @@ namespace sprout {
|
||||||
public:
|
public:
|
||||||
template<typename... Args>
|
template<typename... Args>
|
||||||
explicit res_binder(Functor const& f, Args&&... args)
|
explicit res_binder(Functor const& f, Args&&... args)
|
||||||
: impl_type(f, sprout::forward<Args>(args)...)
|
: impl_type(f, SPROUT_FORWARD(Args, args)...)
|
||||||
{}
|
{}
|
||||||
res_binder(res_binder const&) = default;
|
res_binder(res_binder const&) = default;
|
||||||
template<typename... Args>
|
template<typename... Args>
|
||||||
result_type operator()(Args&&... args) {
|
result_type operator()(Args&&... args) {
|
||||||
return impl_type::template call<Result>(
|
return impl_type::template call<Result>(
|
||||||
sprout::tuples::forward_as_tuple(sprout::forward<Args>(args)...),
|
sprout::tuples::forward_as_tuple(SPROUT_FORWARD(Args, args)...),
|
||||||
sprout::detail::bound_indexes<bounds_type, sizeof...(Args)>::make()
|
sprout::detail::bound_indexes<bounds_type, sizeof...(Args)>::make()
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
template<typename... Args>
|
template<typename... Args>
|
||||||
SPROUT_CONSTEXPR result_type operator()(Args&&... args) const {
|
SPROUT_CONSTEXPR result_type operator()(Args&&... args) const {
|
||||||
return impl_type::template call<Result>(
|
return impl_type::template call<Result>(
|
||||||
sprout::tuples::forward_as_tuple(sprout::forward<Args>(args)...),
|
sprout::tuples::forward_as_tuple(SPROUT_FORWARD(Args, args)...),
|
||||||
sprout::detail::bound_indexes<bounds_type, sizeof...(Args)>::make()
|
sprout::detail::bound_indexes<bounds_type, sizeof...(Args)>::make()
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
template<typename... Args>
|
template<typename... Args>
|
||||||
result_type operator()(Args&&... args) volatile {
|
result_type operator()(Args&&... args) volatile {
|
||||||
return impl_type::template call<Result>(
|
return impl_type::template call<Result>(
|
||||||
sprout::tuples::forward_as_tuple(sprout::forward<Args>(args)...),
|
sprout::tuples::forward_as_tuple(SPROUT_FORWARD(Args, args)...),
|
||||||
sprout::detail::bound_indexes<bounds_type, sizeof...(Args)>::make()
|
sprout::detail::bound_indexes<bounds_type, sizeof...(Args)>::make()
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
template<typename... Args>
|
template<typename... Args>
|
||||||
SPROUT_CONSTEXPR result_type operator()(Args&&... args) const volatile {
|
SPROUT_CONSTEXPR result_type operator()(Args&&... args) const volatile {
|
||||||
return impl_type::template call<Result>(
|
return impl_type::template call<Result>(
|
||||||
sprout::tuples::forward_as_tuple(sprout::forward<Args>(args)...),
|
sprout::tuples::forward_as_tuple(SPROUT_FORWARD(Args, args)...),
|
||||||
sprout::detail::bound_indexes<bounds_type, sizeof...(Args)>::make()
|
sprout::detail::bound_indexes<bounds_type, sizeof...(Args)>::make()
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -775,20 +774,20 @@ namespace sprout {
|
||||||
public:
|
public:
|
||||||
template<typename... Args>
|
template<typename... Args>
|
||||||
explicit SPROUT_CONSTEXPR res_cbinder(Functor const& f, Args&&... args)
|
explicit SPROUT_CONSTEXPR res_cbinder(Functor const& f, Args&&... args)
|
||||||
: impl_type(f, sprout::forward<Args>(args)...)
|
: impl_type(f, SPROUT_FORWARD(Args, args)...)
|
||||||
{}
|
{}
|
||||||
res_cbinder(res_cbinder const&) = default;
|
res_cbinder(res_cbinder const&) = default;
|
||||||
template<typename... Args>
|
template<typename... Args>
|
||||||
SPROUT_CONSTEXPR result_type operator()(Args&&... args) const {
|
SPROUT_CONSTEXPR result_type operator()(Args&&... args) const {
|
||||||
return impl_type::template call<Result>(
|
return impl_type::template call<Result>(
|
||||||
sprout::tuples::forward_as_tuple(sprout::forward<Args>(args)...),
|
sprout::tuples::forward_as_tuple(SPROUT_FORWARD(Args, args)...),
|
||||||
sprout::detail::bound_indexes<bounds_type, sizeof...(Args)>::make()
|
sprout::detail::bound_indexes<bounds_type, sizeof...(Args)>::make()
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
template<typename... Args>
|
template<typename... Args>
|
||||||
SPROUT_CONSTEXPR result_type operator()(Args&&... args) const volatile {
|
SPROUT_CONSTEXPR result_type operator()(Args&&... args) const volatile {
|
||||||
return impl_type::template call<Result>(
|
return impl_type::template call<Result>(
|
||||||
sprout::tuples::forward_as_tuple(sprout::forward<Args>(args)...),
|
sprout::tuples::forward_as_tuple(SPROUT_FORWARD(Args, args)...),
|
||||||
sprout::detail::bound_indexes<bounds_type, sizeof...(Args)>::make()
|
sprout::detail::bound_indexes<bounds_type, sizeof...(Args)>::make()
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -999,7 +998,7 @@ namespace sprout {
|
||||||
typedef sprout::detail::bind_helper<false, F, BoundArgs...> helper_type;
|
typedef sprout::detail::bind_helper<false, F, BoundArgs...> helper_type;
|
||||||
typedef typename helper_type::maybe_type maybe_type;
|
typedef typename helper_type::maybe_type maybe_type;
|
||||||
typedef typename helper_type::type result_type;
|
typedef typename helper_type::type result_type;
|
||||||
return result_type(maybe_type::do_wrap(sprout::forward<F>(f)), sprout::forward<BoundArgs>(args)...);
|
return result_type(maybe_type::do_wrap(SPROUT_FORWARD(F, f)), SPROUT_FORWARD(BoundArgs, args)...);
|
||||||
}
|
}
|
||||||
template<typename R, typename F, typename... BoundArgs>
|
template<typename R, typename F, typename... BoundArgs>
|
||||||
inline SPROUT_CONSTEXPR typename sprout::res_bind_result<R, F, BoundArgs...>::type
|
inline SPROUT_CONSTEXPR typename sprout::res_bind_result<R, F, BoundArgs...>::type
|
||||||
|
@ -1007,7 +1006,7 @@ namespace sprout {
|
||||||
typedef sprout::detail::res_bind_helper<false, R, F, BoundArgs...> helper_type;
|
typedef sprout::detail::res_bind_helper<false, R, F, BoundArgs...> helper_type;
|
||||||
typedef typename helper_type::maybe_type maybe_type;
|
typedef typename helper_type::maybe_type maybe_type;
|
||||||
typedef typename helper_type::type result_type;
|
typedef typename helper_type::type result_type;
|
||||||
return result_type(maybe_type::do_wrap(sprout::forward<F>(f)), sprout::forward<BoundArgs>(args)...);
|
return result_type(maybe_type::do_wrap(SPROUT_FORWARD(F, f)), SPROUT_FORWARD(BoundArgs, args)...);
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
@ -1019,7 +1018,7 @@ namespace sprout {
|
||||||
typedef sprout::detail::bind_helper<true, F, BoundArgs...> helper_type;
|
typedef sprout::detail::bind_helper<true, F, BoundArgs...> helper_type;
|
||||||
typedef typename helper_type::maybe_type maybe_type;
|
typedef typename helper_type::maybe_type maybe_type;
|
||||||
typedef typename helper_type::type result_type;
|
typedef typename helper_type::type result_type;
|
||||||
return result_type(maybe_type::do_wrap(sprout::forward<F>(f)), sprout::forward<BoundArgs>(args)...);
|
return result_type(maybe_type::do_wrap(SPROUT_FORWARD(F, f)), SPROUT_FORWARD(BoundArgs, args)...);
|
||||||
}
|
}
|
||||||
template<typename R, typename F, typename... BoundArgs>
|
template<typename R, typename F, typename... BoundArgs>
|
||||||
inline SPROUT_CONSTEXPR typename sprout::res_cbind_result<R, F, BoundArgs...>::type
|
inline SPROUT_CONSTEXPR typename sprout::res_cbind_result<R, F, BoundArgs...>::type
|
||||||
|
@ -1027,7 +1026,7 @@ namespace sprout {
|
||||||
typedef sprout::detail::res_bind_helper<true, R, F, BoundArgs...> helper_type;
|
typedef sprout::detail::res_bind_helper<true, R, F, BoundArgs...> helper_type;
|
||||||
typedef typename helper_type::maybe_type maybe_type;
|
typedef typename helper_type::maybe_type maybe_type;
|
||||||
typedef typename helper_type::type result_type;
|
typedef typename helper_type::type result_type;
|
||||||
return result_type(maybe_type::do_wrap(sprout::forward<F>(f)), sprout::forward<BoundArgs>(args)...);
|
return result_type(maybe_type::do_wrap(SPROUT_FORWARD(F, f)), SPROUT_FORWARD(BoundArgs, args)...);
|
||||||
}
|
}
|
||||||
} // namespace sprout
|
} // namespace sprout
|
||||||
|
|
||||||
|
|
|
@ -36,7 +36,7 @@ namespace sprout {
|
||||||
operator()(T&& x, U&& y)
|
operator()(T&& x, U&& y)
|
||||||
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() & std::declval<U>()))
|
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() & std::declval<U>()))
|
||||||
{
|
{
|
||||||
return sprout::forward<T>(x) & sprout::forward<U>(y);
|
return SPROUT_FORWARD(T, x) & SPROUT_FORWARD(U, y);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
} // namespace sprout
|
} // namespace sprout
|
||||||
|
|
|
@ -28,7 +28,7 @@ namespace sprout {
|
||||||
operator()(T&& x, U&& y)
|
operator()(T&& x, U&& y)
|
||||||
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() &= std::declval<U>()))
|
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() &= std::declval<U>()))
|
||||||
{
|
{
|
||||||
return sprout::forward<T>(x) &= sprout::forward<U>(y);
|
return SPROUT_FORWARD(T, x) &= SPROUT_FORWARD(U, y);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
} // namespace sprout
|
} // namespace sprout
|
||||||
|
|
|
@ -35,7 +35,7 @@ namespace sprout {
|
||||||
operator()(T&& x)
|
operator()(T&& x)
|
||||||
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(~std::declval<T>()))
|
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(~std::declval<T>()))
|
||||||
{
|
{
|
||||||
return ~sprout::forward<T>(x);
|
return ~SPROUT_FORWARD(T, x);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
} // namespace sprout
|
} // namespace sprout
|
||||||
|
|
|
@ -36,7 +36,7 @@ namespace sprout {
|
||||||
operator()(T&& x, U&& y)
|
operator()(T&& x, U&& y)
|
||||||
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() | std::declval<U>()))
|
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() | std::declval<U>()))
|
||||||
{
|
{
|
||||||
return sprout::forward<T>(x) | sprout::forward<U>(y);
|
return SPROUT_FORWARD(T, x) | SPROUT_FORWARD(U, y);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
} // namespace sprout
|
} // namespace sprout
|
||||||
|
|
|
@ -28,7 +28,7 @@ namespace sprout {
|
||||||
operator()(T&& x, U&& y)
|
operator()(T&& x, U&& y)
|
||||||
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() |= std::declval<U>()))
|
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() |= std::declval<U>()))
|
||||||
{
|
{
|
||||||
return sprout::forward<T>(x) |= sprout::forward<U>(y);
|
return SPROUT_FORWARD(T, x) |= SPROUT_FORWARD(U, y);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
} // namespace sprout
|
} // namespace sprout
|
||||||
|
|
|
@ -36,7 +36,7 @@ namespace sprout {
|
||||||
operator()(T&& x, U&& y)
|
operator()(T&& x, U&& y)
|
||||||
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() ^ std::declval<U>()))
|
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() ^ std::declval<U>()))
|
||||||
{
|
{
|
||||||
return sprout::forward<T>(x) ^ sprout::forward<U>(y);
|
return SPROUT_FORWARD(T, x) ^ SPROUT_FORWARD(U, y);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
} // namespace sprout
|
} // namespace sprout
|
||||||
|
|
|
@ -28,7 +28,7 @@ namespace sprout {
|
||||||
operator()(T&& x, U&& y)
|
operator()(T&& x, U&& y)
|
||||||
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() ^= std::declval<U>()))
|
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() ^= std::declval<U>()))
|
||||||
{
|
{
|
||||||
return sprout::forward<T>(x) ^= sprout::forward<U>(y);
|
return SPROUT_FORWARD(T, x) ^= SPROUT_FORWARD(U, y);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
} // namespace sprout
|
} // namespace sprout
|
||||||
|
|
|
@ -28,7 +28,7 @@ namespace sprout {
|
||||||
operator()(F&& f, As&&... as)
|
operator()(F&& f, As&&... as)
|
||||||
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<F>()(std::declval<As>()...)))
|
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<F>()(std::declval<As>()...)))
|
||||||
{
|
{
|
||||||
return sprout::forward<F>(f)(sprout::forward<As>(as)...);
|
return SPROUT_FORWARD(F, f)(SPROUT_FORWARD(As, as)...);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
} // namespace sprout
|
} // namespace sprout
|
||||||
|
|
|
@ -28,7 +28,7 @@ namespace sprout {
|
||||||
operator()(T&& x, U&& y)
|
operator()(T&& x, U&& y)
|
||||||
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR((std::declval<T>(), std::declval<U>())))
|
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR((std::declval<T>(), std::declval<U>())))
|
||||||
{
|
{
|
||||||
return sprout::forward<T>(x), sprout::forward<U>(y);
|
return SPROUT_FORWARD(T, x), SPROUT_FORWARD(U, y);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
} // namespace sprout
|
} // namespace sprout
|
||||||
|
|
|
@ -28,7 +28,7 @@ namespace sprout {
|
||||||
operator()(T&& x, U&& y, V&& z)
|
operator()(T&& x, U&& y, V&& z)
|
||||||
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() ? std::declval<U>() : std::declval<V>()))
|
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() ? std::declval<U>() : std::declval<V>()))
|
||||||
{
|
{
|
||||||
return sprout::forward<T>(x) ? sprout::forward<U>(y) : sprout::forward<V>(z);
|
return SPROUT_FORWARD(T, x) ? SPROUT_FORWARD(U, y) : SPROUT_FORWARD(V, z);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
} // namespace sprout
|
} // namespace sprout
|
||||||
|
|
|
@ -28,7 +28,7 @@ namespace sprout {
|
||||||
operator()(T&& x)
|
operator()(T&& x)
|
||||||
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(*std::declval<T>()))
|
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(*std::declval<T>()))
|
||||||
{
|
{
|
||||||
return *sprout::forward<T>(x);
|
return *SPROUT_FORWARD(T, x);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
} // namespace sprout
|
} // namespace sprout
|
||||||
|
|
|
@ -38,7 +38,7 @@ namespace sprout {
|
||||||
operator()(T&& x, U&& y)
|
operator()(T&& x, U&& y)
|
||||||
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() / std::declval<U>()))
|
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() / std::declval<U>()))
|
||||||
{
|
{
|
||||||
return sprout::forward<T>(x) / sprout::forward<U>(y);
|
return SPROUT_FORWARD(T, x) / SPROUT_FORWARD(U, y);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
} // namespace sprout
|
} // namespace sprout
|
||||||
|
|
|
@ -28,7 +28,7 @@ namespace sprout {
|
||||||
operator()(T&& x, U&& y)
|
operator()(T&& x, U&& y)
|
||||||
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() /= std::declval<U>()))
|
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() /= std::declval<U>()))
|
||||||
{
|
{
|
||||||
return sprout::forward<T>(x) /= sprout::forward<U>(y);
|
return SPROUT_FORWARD(T, x) /= SPROUT_FORWARD(U, y);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
} // namespace sprout
|
} // namespace sprout
|
||||||
|
|
|
@ -38,7 +38,7 @@ namespace sprout {
|
||||||
operator()(T&& x, U&& y)
|
operator()(T&& x, U&& y)
|
||||||
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() == std::declval<U>()))
|
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() == std::declval<U>()))
|
||||||
{
|
{
|
||||||
return sprout::forward<T>(x) == sprout::forward<U>(y);
|
return SPROUT_FORWARD(T, x) == SPROUT_FORWARD(U, y);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
} // namespace sprout
|
} // namespace sprout
|
||||||
|
|
|
@ -48,7 +48,7 @@ namespace sprout {
|
||||||
template<typename T, typename U>
|
template<typename T, typename U>
|
||||||
SPROUT_CONSTEXPR decltype(!std::declval<Compare const&>()(std::declval<T>(), std::declval<U>()) && !std::declval<Compare const&>()(std::declval<U>(), std::declval<T>()))
|
SPROUT_CONSTEXPR decltype(!std::declval<Compare const&>()(std::declval<T>(), std::declval<U>()) && !std::declval<Compare const&>()(std::declval<U>(), std::declval<T>()))
|
||||||
operator()(T&& x, U&& y) const {
|
operator()(T&& x, U&& y) const {
|
||||||
return !fn(sprout::forward<T>(x), sprout::forward<U>(y)) && !fn(sprout::forward<U>(y), sprout::forward<T>(x));
|
return !fn(SPROUT_FORWARD(T, x), SPROUT_FORWARD(U, y)) && !fn(SPROUT_FORWARD(U, y), SPROUT_FORWARD(T, x));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
} // namespace detail
|
} // namespace detail
|
||||||
|
|
|
@ -38,7 +38,7 @@ namespace sprout {
|
||||||
operator()(T&& x, U&& y)
|
operator()(T&& x, U&& y)
|
||||||
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() > std::declval<U>()))
|
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() > std::declval<U>()))
|
||||||
{
|
{
|
||||||
return sprout::forward<T>(x) > sprout::forward<U>(y);
|
return SPROUT_FORWARD(T, x) > SPROUT_FORWARD(U, y);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
} // namespace sprout
|
} // namespace sprout
|
||||||
|
|
|
@ -38,7 +38,7 @@ namespace sprout {
|
||||||
operator()(T&& x, U&& y)
|
operator()(T&& x, U&& y)
|
||||||
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() >= std::declval<U>()))
|
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() >= std::declval<U>()))
|
||||||
{
|
{
|
||||||
return sprout::forward<T>(x) >= sprout::forward<U>(y);
|
return SPROUT_FORWARD(T, x) >= SPROUT_FORWARD(U, y);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
} // namespace sprout
|
} // namespace sprout
|
||||||
|
|
|
@ -48,9 +48,9 @@ namespace sprout {
|
||||||
template<typename T>
|
template<typename T>
|
||||||
SPROUT_CONSTEXPR std::size_t
|
SPROUT_CONSTEXPR std::size_t
|
||||||
operator()(T&& v)
|
operator()(T&& v)
|
||||||
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout::to_hash(sprout::forward<T>(v))))
|
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(sprout::to_hash(SPROUT_FORWARD(T, v))))
|
||||||
{
|
{
|
||||||
return sprout::to_hash(sprout::forward<T>(v));
|
return sprout::to_hash(SPROUT_FORWARD(T, v));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -34,7 +34,7 @@ namespace sprout {
|
||||||
to_hash(T&& v) {
|
to_hash(T&& v) {
|
||||||
using sprout::hash_value;
|
using sprout::hash_value;
|
||||||
using sprout_adl::hash_value;
|
using sprout_adl::hash_value;
|
||||||
return hash_value(sprout::forward<T>(v));
|
return hash_value(SPROUT_FORWARD(T, v));
|
||||||
}
|
}
|
||||||
} // namespace sprout
|
} // namespace sprout
|
||||||
|
|
||||||
|
|
|
@ -38,7 +38,7 @@ namespace sprout {
|
||||||
operator()(T&& x, U&& y)
|
operator()(T&& x, U&& y)
|
||||||
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() < std::declval<U>()))
|
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() < std::declval<U>()))
|
||||||
{
|
{
|
||||||
return sprout::forward<T>(x) < sprout::forward<U>(y);
|
return SPROUT_FORWARD(T, x) < SPROUT_FORWARD(U, y);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
} // namespace sprout
|
} // namespace sprout
|
||||||
|
|
|
@ -38,7 +38,7 @@ namespace sprout {
|
||||||
operator()(T&& x, U&& y)
|
operator()(T&& x, U&& y)
|
||||||
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() <= std::declval<U>()))
|
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() <= std::declval<U>()))
|
||||||
{
|
{
|
||||||
return sprout::forward<T>(x) <= sprout::forward<U>(y);
|
return SPROUT_FORWARD(T, x) <= SPROUT_FORWARD(U, y);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
} // namespace sprout
|
} // namespace sprout
|
||||||
|
|
|
@ -36,7 +36,7 @@ namespace sprout {
|
||||||
operator()(T&& x, U&& y)
|
operator()(T&& x, U&& y)
|
||||||
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() && std::declval<U>()))
|
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() && std::declval<U>()))
|
||||||
{
|
{
|
||||||
return sprout::forward<T>(x) && sprout::forward<U>(y);
|
return SPROUT_FORWARD(T, x) && SPROUT_FORWARD(U, y);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
} // namespace sprout
|
} // namespace sprout
|
||||||
|
|
|
@ -35,7 +35,7 @@ namespace sprout {
|
||||||
operator()(T&& x)
|
operator()(T&& x)
|
||||||
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(!std::declval<T>()))
|
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(!std::declval<T>()))
|
||||||
{
|
{
|
||||||
return !sprout::forward<T>(x);
|
return !SPROUT_FORWARD(T, x);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
} // namespace sprout
|
} // namespace sprout
|
||||||
|
|
|
@ -36,7 +36,7 @@ namespace sprout {
|
||||||
operator()(T&& x, U&& y)
|
operator()(T&& x, U&& y)
|
||||||
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() || std::declval<U>()))
|
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() || std::declval<U>()))
|
||||||
{
|
{
|
||||||
return sprout::forward<T>(x) || sprout::forward<U>(y);
|
return SPROUT_FORWARD(T, x) || SPROUT_FORWARD(U, y);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
} // namespace sprout
|
} // namespace sprout
|
||||||
|
|
|
@ -59,25 +59,25 @@ namespace sprout {
|
||||||
private:
|
private:
|
||||||
template<typename T>
|
template<typename T>
|
||||||
Res call(T& object, Class const volatile*, Args... args) const {
|
Res call(T& object, Class const volatile*, Args... args) const {
|
||||||
return (object.*pmf_)(sprout::forward<Args>(args)...);
|
return (object.*pmf_)(SPROUT_FORWARD(Args, args)...);
|
||||||
}
|
}
|
||||||
template<typename T>
|
template<typename T>
|
||||||
Res call(T& ptr, void const volatile*, Args... args) const {
|
Res call(T& ptr, void const volatile*, Args... args) const {
|
||||||
return ((*ptr).*pmf_)(sprout::forward<Args>(args)...);
|
return ((*ptr).*pmf_)(SPROUT_FORWARD(Args, args)...);
|
||||||
}
|
}
|
||||||
public:
|
public:
|
||||||
explicit SPROUT_CONSTEXPR mem_fn_adaptor(Res (Class::*pmf)(Args...))
|
explicit SPROUT_CONSTEXPR mem_fn_adaptor(Res (Class::*pmf)(Args...))
|
||||||
: pmf_(pmf)
|
: pmf_(pmf)
|
||||||
{}
|
{}
|
||||||
Res operator()(Class& object, Args... args) const {
|
Res operator()(Class& object, Args... args) const {
|
||||||
return (object.*pmf_)(sprout::forward<Args>(args)...);
|
return (object.*pmf_)(SPROUT_FORWARD(Args, args)...);
|
||||||
}
|
}
|
||||||
Res operator()(Class* object, Args... args) const {
|
Res operator()(Class* object, Args... args) const {
|
||||||
return (object->*pmf_)(sprout::forward<Args>(args)...);
|
return (object->*pmf_)(SPROUT_FORWARD(Args, args)...);
|
||||||
}
|
}
|
||||||
template<typename T>
|
template<typename T>
|
||||||
Res operator()(T& object, Args... args) const {
|
Res operator()(T& object, Args... args) const {
|
||||||
return call(object, &object, sprout::forward<Args>(args)...);
|
return call(object, &object, SPROUT_FORWARD(Args, args)...);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
template<typename Res, typename Class, typename... Args>
|
template<typename Res, typename Class, typename... Args>
|
||||||
|
@ -93,25 +93,25 @@ namespace sprout {
|
||||||
private:
|
private:
|
||||||
template<typename T>
|
template<typename T>
|
||||||
SPROUT_CONSTEXPR Res call(T const& object, Class const volatile*, Args... args) const {
|
SPROUT_CONSTEXPR Res call(T const& object, Class const volatile*, Args... args) const {
|
||||||
return (object.*pmf_)(sprout::forward<Args>(args)...);
|
return (object.*pmf_)(SPROUT_FORWARD(Args, args)...);
|
||||||
}
|
}
|
||||||
template<typename T>
|
template<typename T>
|
||||||
SPROUT_CONSTEXPR Res call(T const& ptr, void const volatile*, Args... args) const {
|
SPROUT_CONSTEXPR Res call(T const& ptr, void const volatile*, Args... args) const {
|
||||||
return ((*ptr).*pmf_)(sprout::forward<Args>(args)...);
|
return ((*ptr).*pmf_)(SPROUT_FORWARD(Args, args)...);
|
||||||
}
|
}
|
||||||
public:
|
public:
|
||||||
explicit SPROUT_CONSTEXPR mem_fn_adaptor(Res (Class::*pmf)(Args...) const)
|
explicit SPROUT_CONSTEXPR mem_fn_adaptor(Res (Class::*pmf)(Args...) const)
|
||||||
: pmf_(pmf)
|
: pmf_(pmf)
|
||||||
{}
|
{}
|
||||||
SPROUT_CONSTEXPR Res operator()(Class const& object, Args... args) const {
|
SPROUT_CONSTEXPR Res operator()(Class const& object, Args... args) const {
|
||||||
return (object.*pmf_)(sprout::forward<Args>(args)...);
|
return (object.*pmf_)(SPROUT_FORWARD(Args, args)...);
|
||||||
}
|
}
|
||||||
SPROUT_CONSTEXPR Res operator()(Class const* object, Args... args) const {
|
SPROUT_CONSTEXPR Res operator()(Class const* object, Args... args) const {
|
||||||
return (object->*pmf_)(sprout::forward<Args>(args)...);
|
return (object->*pmf_)(SPROUT_FORWARD(Args, args)...);
|
||||||
}
|
}
|
||||||
template<typename T>
|
template<typename T>
|
||||||
SPROUT_CONSTEXPR Res operator()(T const& object, Args... args) const {
|
SPROUT_CONSTEXPR Res operator()(T const& object, Args... args) const {
|
||||||
return call(object, &object, sprout::forward<Args>(args)...);
|
return call(object, &object, SPROUT_FORWARD(Args, args)...);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
template<typename Res, typename Class, typename... Args>
|
template<typename Res, typename Class, typename... Args>
|
||||||
|
@ -127,25 +127,25 @@ namespace sprout {
|
||||||
private:
|
private:
|
||||||
template<typename T>
|
template<typename T>
|
||||||
Res call(T& object, Class const volatile*, Args... args) const {
|
Res call(T& object, Class const volatile*, Args... args) const {
|
||||||
return (object.*pmf_)(sprout::forward<Args>(args)...);
|
return (object.*pmf_)(SPROUT_FORWARD(Args, args)...);
|
||||||
}
|
}
|
||||||
template<typename T>
|
template<typename T>
|
||||||
Res call(T& ptr, void const volatile*, Args... args) const {
|
Res call(T& ptr, void const volatile*, Args... args) const {
|
||||||
return ((*ptr).*pmf_)(sprout::forward<Args>(args)...);
|
return ((*ptr).*pmf_)(SPROUT_FORWARD(Args, args)...);
|
||||||
}
|
}
|
||||||
public:
|
public:
|
||||||
explicit SPROUT_CONSTEXPR mem_fn_adaptor(Res (Class::*pmf)(Args...) volatile)
|
explicit SPROUT_CONSTEXPR mem_fn_adaptor(Res (Class::*pmf)(Args...) volatile)
|
||||||
: pmf_(pmf)
|
: pmf_(pmf)
|
||||||
{}
|
{}
|
||||||
Res operator()(Class volatile& object, Args... args) const {
|
Res operator()(Class volatile& object, Args... args) const {
|
||||||
return (object.*pmf_)(sprout::forward<Args>(args)...);
|
return (object.*pmf_)(SPROUT_FORWARD(Args, args)...);
|
||||||
}
|
}
|
||||||
Res operator()(Class volatile* object, Args... args) const {
|
Res operator()(Class volatile* object, Args... args) const {
|
||||||
return (object->*pmf_)(sprout::forward<Args>(args)...);
|
return (object->*pmf_)(SPROUT_FORWARD(Args, args)...);
|
||||||
}
|
}
|
||||||
template<typename T>
|
template<typename T>
|
||||||
Res operator()(T& object, Args... args) const {
|
Res operator()(T& object, Args... args) const {
|
||||||
return call(object, &object, sprout::forward<Args>(args)...);
|
return call(object, &object, SPROUT_FORWARD(Args, args)...);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
template<typename Res, typename Class, typename... Args>
|
template<typename Res, typename Class, typename... Args>
|
||||||
|
@ -161,25 +161,25 @@ namespace sprout {
|
||||||
private:
|
private:
|
||||||
template<typename T>
|
template<typename T>
|
||||||
SPROUT_CONSTEXPR Res call(T const& object, Class const volatile*, Args... args) const {
|
SPROUT_CONSTEXPR Res call(T const& object, Class const volatile*, Args... args) const {
|
||||||
return (object.*pmf_)(sprout::forward<Args>(args)...);
|
return (object.*pmf_)(SPROUT_FORWARD(Args, args)...);
|
||||||
}
|
}
|
||||||
template<typename T>
|
template<typename T>
|
||||||
SPROUT_CONSTEXPR Res call(T const& ptr, void const volatile*, Args... args) const {
|
SPROUT_CONSTEXPR Res call(T const& ptr, void const volatile*, Args... args) const {
|
||||||
return ((*ptr).*pmf_)(sprout::forward<Args>(args)...);
|
return ((*ptr).*pmf_)(SPROUT_FORWARD(Args, args)...);
|
||||||
}
|
}
|
||||||
public:
|
public:
|
||||||
explicit SPROUT_CONSTEXPR mem_fn_adaptor(Res (Class::*pmf)(Args...) const volatile)
|
explicit SPROUT_CONSTEXPR mem_fn_adaptor(Res (Class::*pmf)(Args...) const volatile)
|
||||||
: pmf_(pmf)
|
: pmf_(pmf)
|
||||||
{}
|
{}
|
||||||
SPROUT_CONSTEXPR Res operator()(Class const volatile& object, Args... args) const {
|
SPROUT_CONSTEXPR Res operator()(Class const volatile& object, Args... args) const {
|
||||||
return (object.*pmf_)(sprout::forward<Args>(args)...);
|
return (object.*pmf_)(SPROUT_FORWARD(Args, args)...);
|
||||||
}
|
}
|
||||||
SPROUT_CONSTEXPR Res operator()(Class const volatile* object, Args... args) const {
|
SPROUT_CONSTEXPR Res operator()(Class const volatile* object, Args... args) const {
|
||||||
return (object->*pmf_)(sprout::forward<Args>(args)...);
|
return (object->*pmf_)(SPROUT_FORWARD(Args, args)...);
|
||||||
}
|
}
|
||||||
template<typename T>
|
template<typename T>
|
||||||
SPROUT_CONSTEXPR Res operator()(T const& object, Args... args) const {
|
SPROUT_CONSTEXPR Res operator()(T const& object, Args... args) const {
|
||||||
return call(object, &object, sprout::forward<Args>(args)...);
|
return call(object, &object, SPROUT_FORWARD(Args, args)...);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -28,7 +28,7 @@ namespace sprout {
|
||||||
operator()(T&& x, U&& y)
|
operator()(T&& x, U&& y)
|
||||||
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>()->*std::declval<U>()))
|
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>()->*std::declval<U>()))
|
||||||
{
|
{
|
||||||
return sprout::forward<T>(x)->*sprout::forward<U>(y);
|
return SPROUT_FORWARD(T, x)->*SPROUT_FORWARD(U, y);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
} // namespace sprout
|
} // namespace sprout
|
||||||
|
|
|
@ -28,7 +28,7 @@ namespace sprout {
|
||||||
operator()(T&& x, U&& y)
|
operator()(T&& x, U&& y)
|
||||||
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>().*std::declval<U>()))
|
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>().*std::declval<U>()))
|
||||||
{
|
{
|
||||||
return sprout::forward<T>(x).*sprout::forward<U>(y);
|
return SPROUT_FORWARD(T, x).*SPROUT_FORWARD(U, y);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
} // namespace sprout
|
} // namespace sprout
|
||||||
|
|
|
@ -38,7 +38,7 @@ namespace sprout {
|
||||||
operator()(T&& x, U&& y)
|
operator()(T&& x, U&& y)
|
||||||
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() - std::declval<U>()))
|
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() - std::declval<U>()))
|
||||||
{
|
{
|
||||||
return sprout::forward<T>(x) - sprout::forward<U>(y);
|
return SPROUT_FORWARD(T, x) - SPROUT_FORWARD(U, y);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
} // namespace sprout
|
} // namespace sprout
|
||||||
|
|
|
@ -28,7 +28,7 @@ namespace sprout {
|
||||||
operator()(T&& x, U&& y)
|
operator()(T&& x, U&& y)
|
||||||
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() -= std::declval<U>()))
|
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() -= std::declval<U>()))
|
||||||
{
|
{
|
||||||
return sprout::forward<T>(x) -= sprout::forward<U>(y);
|
return SPROUT_FORWARD(T, x) -= SPROUT_FORWARD(U, y);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
} // namespace sprout
|
} // namespace sprout
|
||||||
|
|
|
@ -38,7 +38,7 @@ namespace sprout {
|
||||||
operator()(T&& x, U&& y)
|
operator()(T&& x, U&& y)
|
||||||
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() % std::declval<U>()))
|
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() % std::declval<U>()))
|
||||||
{
|
{
|
||||||
return sprout::forward<T>(x) % sprout::forward<U>(y);
|
return SPROUT_FORWARD(T, x) % SPROUT_FORWARD(U, y);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
} // namespace sprout
|
} // namespace sprout
|
||||||
|
|
|
@ -28,7 +28,7 @@ namespace sprout {
|
||||||
operator()(T&& x, U&& y)
|
operator()(T&& x, U&& y)
|
||||||
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() %= std::declval<U>()))
|
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() %= std::declval<U>()))
|
||||||
{
|
{
|
||||||
return sprout::forward<T>(x) %= sprout::forward<U>(y);
|
return SPROUT_FORWARD(T, x) %= SPROUT_FORWARD(U, y);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
} // namespace sprout
|
} // namespace sprout
|
||||||
|
|
|
@ -38,7 +38,7 @@ namespace sprout {
|
||||||
operator()(T&& x, U&& y)
|
operator()(T&& x, U&& y)
|
||||||
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() * std::declval<U>()))
|
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() * std::declval<U>()))
|
||||||
{
|
{
|
||||||
return sprout::forward<T>(x) * sprout::forward<U>(y);
|
return SPROUT_FORWARD(T, x) * SPROUT_FORWARD(U, y);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
} // namespace sprout
|
} // namespace sprout
|
||||||
|
|
|
@ -28,7 +28,7 @@ namespace sprout {
|
||||||
operator()(T&& x, U&& y)
|
operator()(T&& x, U&& y)
|
||||||
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() *= std::declval<U>()))
|
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() *= std::declval<U>()))
|
||||||
{
|
{
|
||||||
return sprout::forward<T>(x) *= sprout::forward<U>(y);
|
return SPROUT_FORWARD(T, x) *= SPROUT_FORWARD(U, y);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
} // namespace sprout
|
} // namespace sprout
|
||||||
|
|
|
@ -37,7 +37,7 @@ namespace sprout {
|
||||||
operator()(T&& x)
|
operator()(T&& x)
|
||||||
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(-std::declval<T>()))
|
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(-std::declval<T>()))
|
||||||
{
|
{
|
||||||
return -sprout::forward<T>(x);
|
return -SPROUT_FORWARD(T, x);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
} // namespace sprout
|
} // namespace sprout
|
||||||
|
|
|
@ -46,7 +46,7 @@ namespace sprout {
|
||||||
template<typename T>
|
template<typename T>
|
||||||
SPROUT_CONSTEXPR decltype(!std::declval<Predicate const&>()(std::declval<T>()))
|
SPROUT_CONSTEXPR decltype(!std::declval<Predicate const&>()(std::declval<T>()))
|
||||||
operator()(T&& x) const {
|
operator()(T&& x) const {
|
||||||
return !fn(sprout::forward<T>(x));
|
return !fn(SPROUT_FORWARD(T, x));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
} // namespace detail
|
} // namespace detail
|
||||||
|
|
|
@ -47,7 +47,7 @@ namespace sprout {
|
||||||
template<typename T, typename U>
|
template<typename T, typename U>
|
||||||
SPROUT_CONSTEXPR decltype(!std::declval<Predicate const&>()(std::declval<T>(), std::declval<U>()))
|
SPROUT_CONSTEXPR decltype(!std::declval<Predicate const&>()(std::declval<T>(), std::declval<U>()))
|
||||||
operator()(T&& x, U&& y) const {
|
operator()(T&& x, U&& y) const {
|
||||||
return !fn(sprout::forward<T>(x), sprout::forward<U>(y));
|
return !fn(SPROUT_FORWARD(T, x), SPROUT_FORWARD(U, y));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
} // namespace detail
|
} // namespace detail
|
||||||
|
|
|
@ -38,7 +38,7 @@ namespace sprout {
|
||||||
operator()(T&& x, U&& y)
|
operator()(T&& x, U&& y)
|
||||||
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() != std::declval<U>()))
|
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() != std::declval<U>()))
|
||||||
{
|
{
|
||||||
return sprout::forward<T>(x) != sprout::forward<U>(y);
|
return SPROUT_FORWARD(T, x) != SPROUT_FORWARD(U, y);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
} // namespace sprout
|
} // namespace sprout
|
||||||
|
|
|
@ -38,7 +38,7 @@ namespace sprout {
|
||||||
operator()(T&& x, U&& y)
|
operator()(T&& x, U&& y)
|
||||||
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() + std::declval<U>()))
|
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() + std::declval<U>()))
|
||||||
{
|
{
|
||||||
return sprout::forward<T>(x) + sprout::forward<U>(y);
|
return SPROUT_FORWARD(T, x) + SPROUT_FORWARD(U, y);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
} // namespace sprout
|
} // namespace sprout
|
||||||
|
|
|
@ -28,7 +28,7 @@ namespace sprout {
|
||||||
operator()(T&& x, U&& y)
|
operator()(T&& x, U&& y)
|
||||||
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() += std::declval<U>()))
|
const SPROUT_NOEXCEPT_EXPR(SPROUT_NOEXCEPT_EXPR(std::declval<T>() += std::declval<U>()))
|
||||||
{
|
{
|
||||||
return sprout::forward<T>(x) += sprout::forward<U>(y);
|
return SPROUT_FORWARD(T, x) += SPROUT_FORWARD(U, y);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
} // namespace sprout
|
} // namespace sprout
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue