mirror of
https://github.com/bolero-MURAKAMI/Sprout.git
synced 2025-07-14 15:04:09 +00:00
fix index_tuple
This commit is contained in:
parent
48f1b2d615
commit
ee8602f6a3
42 changed files with 927 additions and 101 deletions
|
@ -34,6 +34,28 @@ namespace sprout {
|
|||
{
|
||||
return sprout::fixed::clamp_range_copy(sprout::begin(input), sprout::end(input), result, low, high);
|
||||
}
|
||||
|
||||
template<typename Result, typename Input, typename Compare>
|
||||
inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm<Result>::type
|
||||
clamp_range_copy(
|
||||
Input const& input,
|
||||
typename sprout::container_traits<Input>::value_type const& low,
|
||||
typename sprout::container_traits<Input>::value_type const& high,
|
||||
Compare comp
|
||||
)
|
||||
{
|
||||
return sprout::fixed::clamp_range_copy<Result>(sprout::begin(input), sprout::end(input), low, high, comp);
|
||||
}
|
||||
template<typename Result, typename Input>
|
||||
inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm<Result>::type
|
||||
clamp_range_copy(
|
||||
Input const& input,
|
||||
typename sprout::container_traits<Input>::value_type const& low,
|
||||
typename sprout::container_traits<Input>::value_type const& high
|
||||
)
|
||||
{
|
||||
return sprout::fixed::clamp_range_copy<Result>(sprout::begin(input), sprout::end(input), low, high);
|
||||
}
|
||||
} // namespace fixed
|
||||
|
||||
using sprout::range::fixed::clamp_range_copy;
|
||||
|
|
|
@ -18,6 +18,12 @@ namespace sprout {
|
|||
copy_until(Input const& input, Result const& result, Predicate pred) {
|
||||
return sprout::fixed::copy_until(sprout::begin(input), sprout::end(input), result);
|
||||
}
|
||||
|
||||
template<typename Result, typename Input, typename Predicate>
|
||||
inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm<Result>::type
|
||||
copy_until(Input const& input, Predicate pred) {
|
||||
return sprout::fixed::copy_until<Result>(sprout::begin(input), sprout::end(input));
|
||||
}
|
||||
} // namespace fixed
|
||||
|
||||
using sprout::range::fixed::copy_until;
|
||||
|
|
|
@ -18,6 +18,12 @@ namespace sprout {
|
|||
copy_while(Input const& input, Result const& result, Predicate pred) {
|
||||
return sprout::fixed::copy_while(sprout::begin(input), sprout::end(input), result);
|
||||
}
|
||||
|
||||
template<typename Result, typename Input, typename Predicate>
|
||||
inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm<Result>::type
|
||||
copy_while(Input const& input, Predicate pred) {
|
||||
return sprout::fixed::copy_while<Result>(sprout::begin(input), sprout::end(input));
|
||||
}
|
||||
} // namespace fixed
|
||||
|
||||
using sprout::range::fixed::copy_while;
|
||||
|
|
|
@ -23,6 +23,17 @@ namespace sprout {
|
|||
merge(Input1 const& input1, Input2 const& input2, Result const& result) {
|
||||
return sprout::fixed::merge(sprout::begin(input1), sprout::end(input1), sprout::begin(input2), sprout::end(input2), result);
|
||||
}
|
||||
|
||||
template<typename Result, typename Input1, typename Input2, typename Compare>
|
||||
inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm<Result>::type
|
||||
merge(Input1 const& input1, Input2 const& input2, Compare comp) {
|
||||
return sprout::fixed::merge<Result>(sprout::begin(input1), sprout::end(input1), sprout::begin(input2), sprout::end(input2), comp);
|
||||
}
|
||||
template<typename Result, typename Input1, typename Input2>
|
||||
inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm<Result>::type
|
||||
merge(Input1 const& input1, Input2 const& input2) {
|
||||
return sprout::fixed::merge<Result>(sprout::begin(input1), sprout::end(input1), sprout::begin(input2), sprout::end(input2));
|
||||
}
|
||||
} // namespace fixed
|
||||
|
||||
using sprout::range::fixed::merge;
|
||||
|
|
|
@ -18,6 +18,12 @@ namespace sprout {
|
|||
partition_copy(Input const& input, Result const& result, Predicate pred) {
|
||||
return sprout::fixed::partition_copy(sprout::begin(input), sprout::end(input), result, pred);
|
||||
}
|
||||
|
||||
template<typename Result, typename Input, typename Predicate>
|
||||
inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm<Result>::type
|
||||
partition_copy(Input const& input, Predicate pred) {
|
||||
return sprout::fixed::partition_copy<Result>(sprout::begin(input), sprout::end(input), pred);
|
||||
}
|
||||
} // namespace fixed
|
||||
|
||||
using sprout::range::fixed::partition_copy;
|
||||
|
|
|
@ -18,6 +18,12 @@ namespace sprout {
|
|||
remove_copy(Input const& input, Result const& result, T const& value) {
|
||||
return sprout::fixed::remove_copy(sprout::begin(input), sprout::end(input), result, value);
|
||||
}
|
||||
|
||||
template<typename Result, typename Input, typename T>
|
||||
inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm<Result>::type
|
||||
remove_copy(Input const& input, Result const& result, T const& value) {
|
||||
return sprout::fixed::remove_copy<Result>(sprout::begin(input), sprout::end(input), value);
|
||||
}
|
||||
} // namespace fixed
|
||||
|
||||
using sprout::range::fixed::remove_copy;
|
||||
|
|
|
@ -18,6 +18,12 @@ namespace sprout {
|
|||
remove_copy_if(Input const& input, Result const& result, Predicate pred) {
|
||||
return sprout::fixed::remove_copy_if(sprout::begin(input), sprout::end(input), result, pred);
|
||||
}
|
||||
|
||||
template<typename Result, typename Input, typename Predicate>
|
||||
inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm<Result>::type
|
||||
remove_copy_if(Input const& input, Predicate pred) {
|
||||
return sprout::fixed::remove_copy_if<Result>(sprout::begin(input), sprout::end(input), pred);
|
||||
}
|
||||
} // namespace fixed
|
||||
|
||||
using sprout::range::fixed::remove_copy_if;
|
||||
|
|
|
@ -18,6 +18,12 @@ namespace sprout {
|
|||
reverse_copy(Input const& input, Result const& result) {
|
||||
return sprout::fixed::reverse_copy(sprout::begin(input), sprout::end(input), result);
|
||||
}
|
||||
|
||||
template<typename Result, typename Input>
|
||||
inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm<Result>::type
|
||||
reverse_copy(Input const& input) {
|
||||
return sprout::fixed::reverse_copy<Result>(sprout::begin(input), sprout::end(input));
|
||||
}
|
||||
} // namespace fixed
|
||||
|
||||
using sprout::range::fixed::reverse_copy;
|
||||
|
|
|
@ -22,6 +22,15 @@ namespace sprout {
|
|||
{
|
||||
return sprout::fixed::rotate_copy(sprout::begin(input), middle, sprout::end(input), result);
|
||||
}
|
||||
|
||||
template<typename Result, typename Input>
|
||||
inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm<Result>::type
|
||||
rotate_copy(
|
||||
Input const& input, typename sprout::container_traits<Input>::const_iterator middle
|
||||
)
|
||||
{
|
||||
return sprout::fixed::rotate_copy<Result>(sprout::begin(input), middle, sprout::end(input));
|
||||
}
|
||||
} // namespace fixed
|
||||
|
||||
using sprout::range::fixed::rotate_copy;
|
||||
|
|
|
@ -23,6 +23,17 @@ namespace sprout {
|
|||
set_difference(Input1 const& input1, Input2 const& input2, Result const& result) {
|
||||
return sprout::fixed::set_difference(sprout::begin(input1), sprout::end(input1), sprout::begin(input2), sprout::end(input2), result);
|
||||
}
|
||||
|
||||
template<typename Result, typename Input1, typename Input2, typename Compare>
|
||||
inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm<Result>::type
|
||||
set_difference(Input1 const& input1, Input2 const& input2, Compare comp) {
|
||||
return sprout::fixed::set_difference<Result>(sprout::begin(input1), sprout::end(input1), sprout::begin(input2), sprout::end(input2), comp);
|
||||
}
|
||||
template<typename Result, typename Input1, typename Input2>
|
||||
inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm<Result>::type
|
||||
set_difference(Input1 const& input1, Input2 const& input2) {
|
||||
return sprout::fixed::set_difference<Result>(sprout::begin(input1), sprout::end(input1), sprout::begin(input2), sprout::end(input2));
|
||||
}
|
||||
} // namespace fixed
|
||||
|
||||
using sprout::range::fixed::set_difference;
|
||||
|
|
|
@ -23,6 +23,17 @@ namespace sprout {
|
|||
set_intersection(Input1 const& input1, Input2 const& input2, Result const& result) {
|
||||
return sprout::fixed::set_intersection(sprout::begin(input1), sprout::end(input1), sprout::begin(input2), sprout::end(input2), result);
|
||||
}
|
||||
|
||||
template<typename Result, typename Input1, typename Input2, typename Compare>
|
||||
inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm<Result>::type
|
||||
set_intersection(Input1 const& input1, Input2 const& input2, Compare comp) {
|
||||
return sprout::fixed::set_intersection<Result>(sprout::begin(input1), sprout::end(input1), sprout::begin(input2), sprout::end(input2), comp);
|
||||
}
|
||||
template<typename Result, typename Input1, typename Input2>
|
||||
inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm<Result>::type
|
||||
set_intersection(Input1 const& input1, Input2 const& input2) {
|
||||
return sprout::fixed::set_intersection<Result>(sprout::begin(input1), sprout::end(input1), sprout::begin(input2), sprout::end(input2));
|
||||
}
|
||||
} // namespace fixed
|
||||
|
||||
using sprout::range::fixed::set_intersection;
|
||||
|
|
|
@ -23,6 +23,17 @@ namespace sprout {
|
|||
set_symmetric_difference(Input1 const& input1, Input2 const& input2, Result const& result) {
|
||||
return sprout::fixed::set_symmetric_difference(sprout::begin(input1), sprout::end(input1), sprout::begin(input2), sprout::end(input2), result);
|
||||
}
|
||||
|
||||
template<typename Result, typename Input1, typename Input2, typename Compare>
|
||||
inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm<Result>::type
|
||||
set_symmetric_difference(Input1 const& input1, Input2 const& input2, Compare comp) {
|
||||
return sprout::fixed::set_symmetric_difference<Result>(sprout::begin(input1), sprout::end(input1), sprout::begin(input2), sprout::end(input2), comp);
|
||||
}
|
||||
template<typename Result, typename Input1, typename Input2>
|
||||
inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm<Result>::type
|
||||
set_symmetric_difference(Input1 const& input1, Input2 const& input2) {
|
||||
return sprout::fixed::set_symmetric_difference<Result>(sprout::begin(input1), sprout::end(input1), sprout::begin(input2), sprout::end(input2));
|
||||
}
|
||||
} // namespace fixed
|
||||
|
||||
using sprout::range::fixed::set_symmetric_difference;
|
||||
|
|
|
@ -23,6 +23,17 @@ namespace sprout {
|
|||
set_union(Input1 const& input1, Input2 const& input2, Result const& result) {
|
||||
return sprout::fixed::set_union(sprout::begin(input1), sprout::end(input1), sprout::begin(input2), sprout::end(input2), result);
|
||||
}
|
||||
|
||||
template<typename Result, typename Input1, typename Input2, typename Compare>
|
||||
inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm<Result>::type
|
||||
set_union(Input1 const& input1, Input2 const& input2, Compare comp) {
|
||||
return sprout::fixed::set_union<Result>(sprout::begin(input1), sprout::end(input1), sprout::begin(input2), sprout::end(input2), comp);
|
||||
}
|
||||
template<typename Result, typename Input1, typename Input2>
|
||||
inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm<Result>::type
|
||||
set_union(Input1 const& input1, Input2 const& input2) {
|
||||
return sprout::fixed::set_union<Result>(sprout::begin(input1), sprout::end(input1), sprout::begin(input2), sprout::end(input2));
|
||||
}
|
||||
} // namespace fixed
|
||||
|
||||
using sprout::range::fixed::set_union;
|
||||
|
|
|
@ -18,6 +18,12 @@ namespace sprout {
|
|||
stable_partition_copy(Input const& input, Result const& result, Predicate pred) {
|
||||
return sprout::fixed::stable_partition_copy(sprout::begin(input), sprout::end(input), result, pred);
|
||||
}
|
||||
|
||||
template<typename Result, typename Input, typename Predicate>
|
||||
inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm<Result>::type
|
||||
stable_partition_copy(Input const& input, Predicate pred) {
|
||||
return sprout::fixed::stable_partition_copy<Result>(sprout::begin(input), sprout::end(input), pred);
|
||||
}
|
||||
} // namespace fixed
|
||||
|
||||
using sprout::range::fixed::stable_partition_copy;
|
||||
|
|
|
@ -23,6 +23,17 @@ namespace sprout {
|
|||
{
|
||||
return sprout::fixed::swap_element_copy(sprout::begin(input), sprout::end(input), result, pos1, pos2);
|
||||
}
|
||||
|
||||
template<typename Result, typename Input>
|
||||
inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm<Result>::type
|
||||
swap_element_copy(
|
||||
Input const& input,
|
||||
typename sprout::container_traits<Input>::const_iterator pos1,
|
||||
typename sprout::container_traits<Input>::const_iterator pos2
|
||||
)
|
||||
{
|
||||
return sprout::fixed::swap_element_copy<Result>(sprout::begin(input), sprout::end(input), pos1, pos2);
|
||||
}
|
||||
} // namespace fixed
|
||||
|
||||
using sprout::range::fixed::swap_element_copy;
|
||||
|
|
|
@ -23,6 +23,17 @@ namespace sprout {
|
|||
unique_copy(Input const& input, Result const& result) {
|
||||
return sprout::fixed::unique_copy(sprout::begin(input), sprout::end(input), result);
|
||||
}
|
||||
|
||||
template<typename Result, typename Input, typename BinaryPredicate>
|
||||
inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm<Result>::type
|
||||
unique_copy(Input const& input, BinaryPredicate pred) {
|
||||
return sprout::fixed::unique_copy<Result>(sprout::begin(input), sprout::end(input), pred);
|
||||
}
|
||||
template<typename Result, typename Input>
|
||||
inline SPROUT_CONSTEXPR typename sprout::fixed::result_of::algorithm<Result>::type
|
||||
unique_copy(Input const& input) {
|
||||
return sprout::fixed::unique_copy<Result>(sprout::begin(input), sprout::end(input));
|
||||
}
|
||||
} // namespace fixed
|
||||
|
||||
using sprout::range::fixed::unique_copy;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue