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

@ -27,7 +27,7 @@ namespace sprout {
)
{
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 + sprout::size(cont)
);
@ -40,7 +40,7 @@ namespace sprout {
inline SPROUT_CONSTEXPR typename sprout::fit::results::algorithm<Container>::type
bogo_sort(Container const& cont, UniformRandomNumberGenerator&& g, Compare comp) {
return sprout::fit::detail::bogo_sort_impl(
cont, sprout::forward<UniformRandomNumberGenerator>(g), comp,
cont, SPROUT_FORWARD(UniformRandomNumberGenerator, g), comp,
sprout::internal_begin_offset(cont)
);
}
@ -54,7 +54,7 @@ namespace sprout {
)
{
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 + sprout::size(cont)
);
@ -67,7 +67,7 @@ namespace sprout {
inline SPROUT_CONSTEXPR typename sprout::fit::results::algorithm<Container>::type
bogo_sort(Container const& cont, UniformRandomNumberGenerator&& g) {
return sprout::fit::detail::bogo_sort_impl(
cont, sprout::forward<UniformRandomNumberGenerator>(g),
cont, SPROUT_FORWARD(UniformRandomNumberGenerator, g),
sprout::internal_begin_offset(cont)
);
}

View file

@ -56,7 +56,7 @@ namespace sprout {
)
{
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
);
}
@ -70,7 +70,7 @@ namespace sprout {
typename std::decay<UniformRandomNumberGenerator>::type
> bogo_sort_result(Container const& cont, UniformRandomNumberGenerator&& g, Compare comp) {
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)
);
}
@ -87,7 +87,7 @@ namespace sprout {
)
{
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
);
}
@ -102,7 +102,7 @@ namespace sprout {
>
bogo_sort_result(Container const& cont, UniformRandomNumberGenerator&& g) {
return sprout::fit::detail::bogo_sort_result_impl(
cont, sprout::forward<UniformRandomNumberGenerator>(g),
cont, SPROUT_FORWARD(UniformRandomNumberGenerator, g),
sprout::internal_begin_offset(cont)
);
}

View file

@ -27,7 +27,7 @@ namespace sprout {
)
{
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 + sprout::size(cont)
);
@ -40,7 +40,7 @@ namespace sprout {
inline SPROUT_CONSTEXPR typename sprout::fit::results::algorithm<Container>::type
bozo_sort(Container const& cont, UniformRandomNumberGenerator&& g, Compare comp) {
return sprout::fit::detail::bozo_sort_impl(
cont, sprout::forward<UniformRandomNumberGenerator>(g), comp,
cont, SPROUT_FORWARD(UniformRandomNumberGenerator, g), comp,
sprout::internal_begin_offset(cont)
);
}
@ -54,7 +54,7 @@ namespace sprout {
)
{
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 + sprout::size(cont)
);
@ -67,7 +67,7 @@ namespace sprout {
inline SPROUT_CONSTEXPR typename sprout::fit::results::algorithm<Container>::type
bozo_sort(Container const& cont, UniformRandomNumberGenerator&& g) {
return sprout::fit::detail::bozo_sort_impl(
cont, sprout::forward<UniformRandomNumberGenerator>(g),
cont, SPROUT_FORWARD(UniformRandomNumberGenerator, g),
sprout::internal_begin_offset(cont)
);
}

View file

@ -56,7 +56,7 @@ namespace sprout {
)
{
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
);
}
@ -71,7 +71,7 @@ namespace sprout {
>
bozo_sort_result(Container const& cont, UniformRandomNumberGenerator&& g, Compare comp) {
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)
);
}
@ -88,7 +88,7 @@ namespace sprout {
)
{
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
);
}
@ -103,7 +103,7 @@ namespace sprout {
>
bozo_sort_result(Container const& cont, UniformRandomNumberGenerator&& g) {
return sprout::fit::detail::bozo_sort_result_impl(
cont, sprout::forward<UniformRandomNumberGenerator>(g),
cont, SPROUT_FORWARD(UniformRandomNumberGenerator, g),
sprout::internal_begin_offset(cont)
);
}

View file

@ -28,7 +28,7 @@ namespace sprout {
)
{
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 + sprout::size(cont)
);
@ -41,7 +41,7 @@ namespace sprout {
inline SPROUT_CONSTEXPR typename sprout::fit::results::algorithm<Container>::type
random_swap(Container const& cont, UniformRandomNumberGenerator&& g) {
return sprout::fit::detail::random_swap_impl(
cont, sprout::forward<UniformRandomNumberGenerator>(g),
cont, SPROUT_FORWARD(UniformRandomNumberGenerator, g),
sprout::internal_begin_offset(cont)
);
}

View file

@ -56,7 +56,7 @@ namespace sprout {
)
{
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
);
}
@ -71,7 +71,7 @@ namespace sprout {
>
random_swap_result(Container const& cont, UniformRandomNumberGenerator&& g) {
return sprout::fit::detail::random_swap_result_impl(
cont, sprout::forward<UniformRandomNumberGenerator>(g),
cont, SPROUT_FORWARD(UniformRandomNumberGenerator, g),
sprout::internal_begin_offset(cont)
);
}

View file

@ -28,7 +28,7 @@ namespace sprout {
)
{
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 + sprout::size(cont)
);
@ -41,7 +41,7 @@ namespace sprout {
inline SPROUT_CONSTEXPR typename sprout::fit::results::algorithm<Container>::type
shuffle(Container const& cont, UniformRandomNumberGenerator&& g) {
return sprout::fit::detail::shuffle_impl(
cont, sprout::forward<UniformRandomNumberGenerator>(g),
cont, SPROUT_FORWARD(UniformRandomNumberGenerator, g),
sprout::internal_begin_offset(cont)
);
}

View file

@ -56,7 +56,7 @@ namespace sprout {
)
{
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
);
}
@ -71,7 +71,7 @@ namespace sprout {
>
shuffle_result(Container const& cont, UniformRandomNumberGenerator&& g) {
return sprout::fit::detail::shuffle_result_impl(
cont, sprout::forward<UniformRandomNumberGenerator>(g),
cont, SPROUT_FORWARD(UniformRandomNumberGenerator, g),
sprout::internal_begin_offset(cont)
);
}

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)
);