add SPROUT_FORWARD - workaround for ICC

This commit is contained in:
bolero-MURAKAMI 2014-02-22 16:32:51 +09:00
parent 7831105add
commit 274122efb2
202 changed files with 750 additions and 741 deletions

View file

@ -24,14 +24,14 @@ namespace sprout {
inline SPROUT_CONSTEXPR typename sprout::fixed::results::algorithm<Container>::type
bogo_sort(Container const& cont, UniformRandomNumberGenerator&& g, Compare comp) {
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>
inline SPROUT_CONSTEXPR typename sprout::fixed::results::algorithm<Container>::type
bogo_sort(Container const& cont, UniformRandomNumberGenerator&& g) {
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

View file

@ -68,9 +68,9 @@ namespace sprout {
typedef typename sprout::fixed::results::shuffle<Container, UniformRandomNumberGenerator>::type result_type;
typedef sprout::pair<result_type, bool> type;
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>(
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)
).first
;
@ -84,7 +84,7 @@ namespace sprout {
bogo_sort_result(Container const& cont, UniformRandomNumberGenerator&& g, Compare comp) {
return sprout::fixed::detail::bogo_sort_result(
cont,
sprout::forward<UniformRandomNumberGenerator>(g),
SPROUT_FORWARD(UniformRandomNumberGenerator, g),
comp
);
}
@ -93,7 +93,7 @@ namespace sprout {
bogo_sort_result(Container const& cont, UniformRandomNumberGenerator&& g) {
return sprout::fixed::detail::bogo_sort_result(
cont,
sprout::forward<UniformRandomNumberGenerator>(g),
SPROUT_FORWARD(UniformRandomNumberGenerator, g),
NS_SSCRISK_CEL_OR_SPROUT::less<typename sprout::container_traits<Container>::value_type>()
);
}

View file

@ -24,14 +24,14 @@ namespace sprout {
inline SPROUT_CONSTEXPR typename sprout::fixed::results::algorithm<Container>::type
bozo_sort(Container const& cont, UniformRandomNumberGenerator&& g, Compare comp) {
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>
inline SPROUT_CONSTEXPR typename sprout::fixed::results::algorithm<Container>::type
bozo_sort(Container const& cont, UniformRandomNumberGenerator&& g) {
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

View file

@ -68,9 +68,9 @@ namespace sprout {
typedef typename sprout::fixed::results::shuffle<Container, UniformRandomNumberGenerator>::type result_type;
typedef sprout::pair<result_type, bool> type;
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>(
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)
).first
;
@ -84,7 +84,7 @@ namespace sprout {
bozo_sort_result(Container const& cont, UniformRandomNumberGenerator&& g, Compare comp) {
return sprout::fixed::detail::bozo_sort_result(
cont,
sprout::forward<UniformRandomNumberGenerator>(g),
SPROUT_FORWARD(UniformRandomNumberGenerator, g),
comp
);
}
@ -93,7 +93,7 @@ namespace sprout {
bozo_sort_result(Container const& cont, UniformRandomNumberGenerator&& g) {
return sprout::fixed::detail::bozo_sort_result(
cont,
sprout::forward<UniformRandomNumberGenerator>(g),
SPROUT_FORWARD(UniformRandomNumberGenerator, g),
NS_SSCRISK_CEL_OR_SPROUT::less<typename sprout::container_traits<Container>::value_type>()
);
}

View file

@ -43,7 +43,7 @@ namespace sprout {
return n > 1
? sprout::fixed::detail::make_random_swap_indexes_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>{{}}
@ -72,7 +72,7 @@ namespace sprout {
cont,
sprout::fixed::detail::make_random_swap_indexes(
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
random_swap(Container const& cont, UniformRandomNumberGenerator&& g) {
return sprout::fixed::detail::random_swap_impl(
cont, sprout::forward<UniformRandomNumberGenerator>(g),
cont, SPROUT_FORWARD(UniformRandomNumberGenerator, g),
sprout::size(cont)
);
}

View file

@ -52,12 +52,12 @@ namespace sprout {
return n > 1
? sprout::fixed::detail::make_random_swap_result_indexes_1<UniformRandomNumberGenerator>(
SPROUT_WORKAROUND_DETAIL_UNIFORM_INT_DISTRIBUTION<std::ptrdiff_t>(0, n - 1)(
sprout::forward<UniformRandomNumberGenerator>(g)
SPROUT_FORWARD(UniformRandomNumberGenerator, g)
)
)
: result_type(
sprout::array<std::ptrdiff_t, 2>{{}},
sprout::forward<UniformRandomNumberGenerator>(g)
SPROUT_FORWARD(UniformRandomNumberGenerator, g)
)
;
}
@ -88,7 +88,7 @@ namespace sprout {
cont,
sprout::fixed::detail::make_random_swap_result_indexes(
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
random_swap_result(Container const& cont, UniformRandomNumberGenerator&& g) {
return sprout::fixed::detail::random_swap_result_impl(
cont, sprout::forward<UniformRandomNumberGenerator>(g),
cont, SPROUT_FORWARD(UniformRandomNumberGenerator, g),
sprout::size(cont)
);
}

View file

@ -47,7 +47,7 @@ namespace sprout {
? sprout::fixed::detail::make_shuffle_indexes_1(
n,
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),
0
@ -89,7 +89,7 @@ namespace sprout {
indexes,
sprout::fixed::detail::make_shuffle_indexes<sprout::container_traits<Container>::static_size>(
size,
sprout::forward<UniformRandomNumberGenerator>(g)
SPROUT_FORWARD(UniformRandomNumberGenerator, g)
),
offset,
size
@ -105,7 +105,7 @@ namespace sprout {
return sprout::fixed::detail::shuffle_impl(
cont,
sprout::container_indexes<Container>::make(),
sprout::forward<UniformRandomNumberGenerator>(g),
SPROUT_FORWARD(UniformRandomNumberGenerator, g),
sprout::internal_begin_offset(cont),
sprout::size(cont)
);

View file

@ -55,14 +55,14 @@ namespace sprout {
? sprout::fixed::detail::make_shuffle_result_indexes_1<UniformRandomNumberGenerator>(
n,
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),
0
)
: result_type(
sprout::array<std::ptrdiff_t, N>{{}},
sprout::forward<UniformRandomNumberGenerator>(g)
SPROUT_FORWARD(UniformRandomNumberGenerator, g)
)
;
}
@ -104,7 +104,7 @@ namespace sprout {
indexes,
sprout::fixed::detail::make_shuffle_result_indexes<sprout::container_traits<Container>::static_size>(
size,
sprout::forward<UniformRandomNumberGenerator>(g)
SPROUT_FORWARD(UniformRandomNumberGenerator, g)
),
offset,
size
@ -120,7 +120,7 @@ namespace sprout {
return sprout::fixed::detail::shuffle_result_impl(
cont,
sprout::container_indexes<Container>::make(),
sprout::forward<UniformRandomNumberGenerator>(g),
SPROUT_FORWARD(UniformRandomNumberGenerator, g),
sprout::internal_begin_offset(cont),
sprout::size(cont)
);