1
0
Fork 0
mirror of https://github.com/bolero-MURAKAMI/Sprout synced 2024-11-12 21:09:01 +00:00
This commit is contained in:
bolero-MURAKAMI 2014-07-02 22:16:29 +09:00
parent 93e22a984d
commit 15c3f55ebb
69 changed files with 406 additions and 367 deletions

View file

@ -24,7 +24,7 @@ namespace testspr {
{
SPROUT_STATIC_CONSTEXPR auto arr1 = array<int, 5>{{5, 1, 4, 2, 3}};
// ソート
// sort
{
SPROUT_STATIC_CONSTEXPR auto sorted = sprout::bogo_sort(
arr1,
@ -45,8 +45,8 @@ namespace testspr {
array<int, 5>{{1, 2, 3, 4, 5}}
));
}
// ソート
// 範囲の切り出し
// sort
// from sub range
{
SPROUT_STATIC_CONSTEXPR auto sorted = sprout::bogo_sort(
sprout::sub(arr1, 1, 4),
@ -79,7 +79,7 @@ namespace testspr {
{
SPROUT_STATIC_CONSTEXPR auto arr1 = array<int, 5>{{5, 1, 4, 2, 3}};
// ソート
// sort
{
SPROUT_STATIC_CONSTEXPR auto sorted = sprout::bogo_sort(
arr1,
@ -102,8 +102,8 @@ namespace testspr {
array<int, 5>{{1, 2, 3, 4, 5}}
));
}
// ソート
// 範囲の切り出し
// sort
// from sub range
{
SPROUT_STATIC_CONSTEXPR auto sorted = sprout::bogo_sort(
sprout::sub(arr1, 1, 4),
@ -139,7 +139,7 @@ namespace testspr {
{
SPROUT_STATIC_CONSTEXPR auto arr1 = array<int, 4>{{1, 4, 2, 3}};
// ソート
// sort
{
SPROUT_STATIC_CONSTEXPR auto sorted = sprout::bogo_sort(
arr1,
@ -160,8 +160,8 @@ namespace testspr {
array<int, 4>{{1, 2, 3, 4}}
));
}
// ソート
// 範囲の切り出し
// sort
// from sub range
{
SPROUT_STATIC_CONSTEXPR auto sorted = sprout::bogo_sort(
sprout::sub(arr1, 1, 3),
@ -194,7 +194,7 @@ namespace testspr {
{
SPROUT_STATIC_CONSTEXPR auto arr1 = array<int, 4>{{1, 4, 2, 3}};
// ソート
// sort
{
SPROUT_STATIC_CONSTEXPR auto sorted = sprout::bogo_sort(
arr1,
@ -217,8 +217,8 @@ namespace testspr {
array<int, 4>{{1, 2, 3, 4}}
));
}
// ソート
// 範囲の切り出し
// sort
// from sub range
{
SPROUT_STATIC_CONSTEXPR auto sorted = sprout::bogo_sort(
sprout::sub(arr1, 1, 3),

View file

@ -25,7 +25,7 @@ namespace testspr {
SPROUT_STATIC_CONSTEXPR auto arr1 = array<int, 5>{{5, 1, 4, 2, 3}};
SPROUT_STATIC_CONSTEXPR auto g = sprout::random::default_random_engine(SPROUT_UNIQUE_SEED);
// ソート
// sort
{
SPROUT_STATIC_CONSTEXPR auto sorted = sprout::bogo_sort_result(
arr1,
@ -56,8 +56,8 @@ namespace testspr {
);
TESTSPR_BOTH_ASSERT(sprout::get<1>(sorted) == sprout::get<1>(sorted2));
}
// ソート
// 範囲の切り出し
// sort
// from sub range
{
SPROUT_STATIC_CONSTEXPR auto sorted = sprout::bogo_sort_result(
sprout::sub(arr1, 1, 4),
@ -101,7 +101,7 @@ namespace testspr {
SPROUT_STATIC_CONSTEXPR auto arr1 = array<int, 5>{{5, 1, 4, 2, 3}};
SPROUT_STATIC_CONSTEXPR auto g = sprout::random::default_random_engine(SPROUT_UNIQUE_SEED);
// ソート
// sort
{
SPROUT_STATIC_CONSTEXPR auto sorted = sprout::bogo_sort_result(
arr1,
@ -134,8 +134,8 @@ namespace testspr {
);
TESTSPR_BOTH_ASSERT(sprout::get<1>(sorted) == sprout::get<1>(sorted2));
}
// ソート
// 範囲の切り出し
// sort
// from sub range
{
SPROUT_STATIC_CONSTEXPR auto sorted = sprout::bogo_sort_result(
sprout::sub(arr1, 1, 4),
@ -182,7 +182,7 @@ namespace testspr {
SPROUT_STATIC_CONSTEXPR auto arr1 = array<int, 4>{{1, 4, 2, 3}};
SPROUT_STATIC_CONSTEXPR auto g = sprout::random::default_random_engine(SPROUT_UNIQUE_SEED);
// ソート
// sort
{
SPROUT_STATIC_CONSTEXPR auto sorted = sprout::bogo_sort_result(
arr1,
@ -213,8 +213,8 @@ namespace testspr {
);
TESTSPR_BOTH_ASSERT(sprout::get<1>(sorted) == sprout::get<1>(sorted2));
}
// ソート
// 範囲の切り出し
// sort
// from sub range
{
SPROUT_STATIC_CONSTEXPR auto sorted = sprout::bogo_sort_result(
sprout::sub(arr1, 1, 3),
@ -258,7 +258,7 @@ namespace testspr {
SPROUT_STATIC_CONSTEXPR auto arr1 = array<int, 4>{{1, 4, 2, 3}};
SPROUT_STATIC_CONSTEXPR auto g = sprout::random::default_random_engine(SPROUT_UNIQUE_SEED);
// ソート
// sort
{
SPROUT_STATIC_CONSTEXPR auto sorted = sprout::bogo_sort_result(
arr1,
@ -291,8 +291,8 @@ namespace testspr {
);
TESTSPR_BOTH_ASSERT(sprout::get<1>(sorted) == sprout::get<1>(sorted2));
}
// ソート
// 範囲の切り出し
// sort
// from sub range
{
SPROUT_STATIC_CONSTEXPR auto sorted = sprout::bogo_sort_result(
sprout::sub(arr1, 1, 3),

View file

@ -22,7 +22,7 @@ namespace testspr {
{
SPROUT_STATIC_CONSTEXPR auto arr1 = array<int, 5>{{5, 1, 4, 2, 3}};
// ソート
// sort
{
SPROUT_STATIC_CONSTEXPR auto sorted = sprout::bozo_sort(
arr1,
@ -43,8 +43,8 @@ namespace testspr {
array<int, 5>{{1, 2, 3, 4, 5}}
));
}
// ソート
// 範囲の切り出し
// sort
// from sub range
{
SPROUT_STATIC_CONSTEXPR auto sorted = sprout::bozo_sort(
sprout::sub(arr1, 1, 4),
@ -77,7 +77,7 @@ namespace testspr {
{
SPROUT_STATIC_CONSTEXPR auto arr1 = array<int, 5>{{5, 1, 4, 2, 3}};
// ソート
// sort
{
SPROUT_STATIC_CONSTEXPR auto sorted = sprout::bozo_sort(
arr1,
@ -100,8 +100,8 @@ namespace testspr {
array<int, 5>{{1, 2, 3, 4, 5}}
));
}
// ソート
// 範囲の切り出し
// sort
// from sub range
{
SPROUT_STATIC_CONSTEXPR auto sorted = sprout::bozo_sort(
sprout::sub(arr1, 1, 4),

View file

@ -23,7 +23,7 @@ namespace testspr {
SPROUT_STATIC_CONSTEXPR auto arr1 = array<int, 5>{{5, 1, 4, 2, 3}};
SPROUT_STATIC_CONSTEXPR auto g = sprout::random::default_random_engine(SPROUT_UNIQUE_SEED);
// ソート
// sort
{
SPROUT_STATIC_CONSTEXPR auto sorted = sprout::bozo_sort_result(
arr1,
@ -54,8 +54,8 @@ namespace testspr {
);
TESTSPR_BOTH_ASSERT(sprout::get<1>(sorted) == sprout::get<1>(sorted2));
}
// ソート
// 範囲の切り出し
// sort
// from sub range
{
SPROUT_STATIC_CONSTEXPR auto sorted = sprout::bozo_sort_result(
sprout::sub(arr1, 1, 4),
@ -99,7 +99,7 @@ namespace testspr {
SPROUT_STATIC_CONSTEXPR auto arr1 = array<int, 5>{{5, 1, 4, 2, 3}};
SPROUT_STATIC_CONSTEXPR auto g = sprout::random::default_random_engine(SPROUT_UNIQUE_SEED);
// ソート
// sort
{
SPROUT_STATIC_CONSTEXPR auto sorted = sprout::bozo_sort_result(
arr1,
@ -132,8 +132,8 @@ namespace testspr {
);
TESTSPR_BOTH_ASSERT(sprout::get<1>(sorted) == sprout::get<1>(sorted2));
}
// ソート
// 範囲の切り出し
// sort
// from sub range
{
SPROUT_STATIC_CONSTEXPR auto sorted = sprout::bozo_sort_result(
sprout::sub(arr1, 1, 4),

View file

@ -20,7 +20,7 @@ namespace testspr {
{
SPROUT_STATIC_CONSTEXPR auto arr1 = array<int, 10>{{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}};
// クランプ (4 <= x <= 7)
// clamp (4 <= x <= 7)
{
SPROUT_STATIC_CONSTEXPR auto clamped = sprout::clamp_range(
arr1,
@ -43,8 +43,8 @@ namespace testspr {
array<int, 10>{{4, 4, 4, 4, 5, 6, 7, 7, 7, 7}}
));
}
// クランプ (4 <= x <= 7)
// 範囲の切り出し
// clamp (4 <= x <= 7)
// from sub range
{
SPROUT_STATIC_CONSTEXPR auto clamped = sprout::clamp_range(
sprout::sub(arr1, 2, 8),
@ -79,7 +79,7 @@ namespace testspr {
{
SPROUT_STATIC_CONSTEXPR auto arr1 = array<int, 10>{{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}};
// クランプ (4 <= x <= 7)
// clamp (4 <= x <= 7)
{
SPROUT_STATIC_CONSTEXPR auto clamped = sprout::clamp_range(
arr1,
@ -104,8 +104,8 @@ namespace testspr {
array<int, 10>{{4, 4, 4, 4, 5, 6, 7, 7, 7, 7}}
));
}
// クランプ (4 <= x <= 7)
// 範囲の切り出し
// clamp (4 <= x <= 7)
// from sub range
{
SPROUT_STATIC_CONSTEXPR auto clamped = sprout::clamp_range(
sprout::sub(arr1, 2, 8),

View file

@ -22,7 +22,7 @@ namespace testspr {
SPROUT_STATIC_CONSTEXPR auto arr2 = array<int, 10>{{}};
SPROUT_STATIC_CONSTEXPR auto arr3 = array<int, 4>{{}};
// [2 .. 8) の範囲をクランプ (4 <= x <= 7)
// clamp in range [2 .. 8) (4 <= x <= 7)
{
SPROUT_STATIC_CONSTEXPR auto clamped = sprout::clamp_range_copy(
sprout::begin(arr1) + 2,
@ -49,8 +49,8 @@ namespace testspr {
array<int, 6>{{4, 4, 5, 6, 7, 7}}
));
}
// [2 .. 8) の範囲をクランプ (4 <= x <= 7)
// 出力範囲をオーバーする場合
// clamp in range [2 .. 8) (4 <= x <= 7)
// overrun from output range
{
SPROUT_STATIC_CONSTEXPR auto clamped = sprout::clamp_range_copy(
sprout::begin(arr1) + 2,
@ -77,8 +77,8 @@ namespace testspr {
array<int, 4>{{4, 4, 5, 6}}
));
}
// [2 .. 8) の範囲をクランプ (4 <= x <= 7)
// 出力範囲の切り出し
// clamp in range [2 .. 8) (4 <= x <= 7)
// to sub range
{
SPROUT_STATIC_CONSTEXPR auto clamped = sprout::clamp_range_copy(
sprout::begin(arr1) + 2,
@ -119,7 +119,7 @@ namespace testspr {
SPROUT_STATIC_CONSTEXPR auto arr2 = array<int, 10>{{}};
SPROUT_STATIC_CONSTEXPR auto arr3 = array<int, 4>{{}};
// [2 .. 8) の範囲をクランプ (4 <= x <= 7)
// clamp in range [2 .. 8) (4 <= x <= 7)
{
SPROUT_STATIC_CONSTEXPR auto clamped = sprout::clamp_range_copy(
sprout::begin(arr1) + 2,
@ -148,8 +148,8 @@ namespace testspr {
array<int, 6>{{4, 4, 5, 6, 7, 7}}
));
}
// [2 .. 8) の範囲をクランプ (4 <= x <= 7)
// 出力範囲をオーバーする場合
// clamp in range [2 .. 8) (4 <= x <= 7)
// overrun from output range
{
SPROUT_STATIC_CONSTEXPR auto clamped = sprout::clamp_range_copy(
sprout::begin(arr1) + 2,
@ -178,8 +178,8 @@ namespace testspr {
array<int, 4>{{4, 4, 5, 6}}
));
}
// [2 .. 8) の範囲をクランプ (4 <= x <= 7)
// 出力範囲の切り出し
// clamp in range [2 .. 8) (4 <= x <= 7)
// to sub range
{
SPROUT_STATIC_CONSTEXPR auto clamped = sprout::clamp_range_copy(
sprout::begin(arr1) + 2,

View file

@ -22,7 +22,7 @@ namespace testspr {
SPROUT_STATIC_CONSTEXPR auto arr2 = array<int, 10>{{}};
SPROUT_STATIC_CONSTEXPR auto arr3 = array<int, 4>{{}};
// [2 .. 8) の範囲をコピー
// copy in range [2 .. 8)
{
SPROUT_STATIC_CONSTEXPR auto copied = sprout::copy(
sprout::begin(arr1) + 2,
@ -45,8 +45,8 @@ namespace testspr {
array<int, 6>{{3, 4, 5, 6, 7, 8}}
));
}
// [2 .. 8) の範囲をコピー
// 出力範囲をオーバーする場合
// copy in range [2 .. 8)
// overrun from output range
{
SPROUT_STATIC_CONSTEXPR auto copied = sprout::copy(
sprout::begin(arr1) + 2,
@ -69,8 +69,8 @@ namespace testspr {
array<int, 4>{{3, 4, 5, 6}}
));
}
// [2 .. 8) の範囲をコピー
// 出力範囲の切り出し
// copy in range [2 .. 8)
// to sub range
{
SPROUT_STATIC_CONSTEXPR auto copied = sprout::copy(
sprout::begin(arr1) + 2,
@ -102,7 +102,7 @@ namespace testspr {
));
}
// [2 .. 8) の範囲をコピー
// copy in range [2 .. 8)
{
SPROUT_STATIC_CONSTEXPR auto copied = sprout::copy(
testspr::reduct_input(sprout::begin(arr1) + 2),
@ -126,8 +126,8 @@ namespace testspr {
// array<int, 6>{{3, 4, 5, 6, 7, 8}}
// ));
// }
// [2 .. 8) の範囲をコピー
// 出力範囲をオーバーする場合
// copy in range [2 .. 8)
// overrun from output range
{
SPROUT_STATIC_CONSTEXPR auto copied = sprout::copy(
testspr::reduct_input(sprout::begin(arr1) + 2),
@ -151,8 +151,8 @@ namespace testspr {
// array<int, 4>{{3, 4, 5, 6}}
// ));
// }
// [2 .. 8) の範囲をコピー
// 出力範囲の切り出し
// copy in range [2 .. 8)
// to sub range
{
SPROUT_STATIC_CONSTEXPR auto copied = sprout::copy(
testspr::reduct_input(sprout::begin(arr1) + 2),
@ -185,7 +185,7 @@ namespace testspr {
// ));
// }
// [2 .. 8) の範囲をコピー
// copy in range [2 .. 8)
{
SPROUT_STATIC_CONSTEXPR auto copied = sprout::copy(
testspr::reduct_forward(sprout::begin(arr1) + 2),
@ -208,8 +208,8 @@ namespace testspr {
array<int, 6>{{3, 4, 5, 6, 7, 8}}
));
}
// [2 .. 8) の範囲をコピー
// 出力範囲をオーバーする場合
// copy in range [2 .. 8)
// overrun from output range
{
SPROUT_STATIC_CONSTEXPR auto copied = sprout::copy(
testspr::reduct_forward(sprout::begin(arr1) + 2),
@ -232,8 +232,8 @@ namespace testspr {
array<int, 4>{{3, 4, 5, 6}}
));
}
// [2 .. 8) の範囲をコピー
// 出力範囲の切り出し
// copy in range [2 .. 8)
// to sub range
{
SPROUT_STATIC_CONSTEXPR auto copied = sprout::copy(
testspr::reduct_forward(sprout::begin(arr1) + 2),
@ -265,7 +265,7 @@ namespace testspr {
));
}
// [2 .. 8) の範囲をコピー
// copy in range [2 .. 8)
{
SPROUT_STATIC_CONSTEXPR auto copied = sprout::copy(
testspr::reduct_random_access(sprout::begin(arr1) + 2),
@ -288,8 +288,8 @@ namespace testspr {
array<int, 6>{{3, 4, 5, 6, 7, 8}}
));
}
// [2 .. 8) の範囲をコピー
// 出力範囲をオーバーする場合
// copy in range [2 .. 8)
// overrun from output range
{
SPROUT_STATIC_CONSTEXPR auto copied = sprout::copy(
testspr::reduct_random_access(sprout::begin(arr1) + 2),
@ -312,8 +312,8 @@ namespace testspr {
array<int, 4>{{3, 4, 5, 6}}
));
}
// [2 .. 8) の範囲をコピー
// 出力範囲の切り出し
// copy in range [2 .. 8)
// to sub range
{
SPROUT_STATIC_CONSTEXPR auto copied = sprout::copy(
testspr::reduct_random_access(sprout::begin(arr1) + 2),

View file

@ -22,7 +22,7 @@ namespace testspr {
SPROUT_STATIC_CONSTEXPR auto arr2 = array<int, 10>{{}};
SPROUT_STATIC_CONSTEXPR auto arr3 = array<int, 4>{{}};
// [2 .. 8) の範囲をコピー
// copy in range [2 .. 8)
{
SPROUT_STATIC_CONSTEXPR auto copied = sprout::copy_backward(
sprout::begin(arr1) + 2,
@ -45,8 +45,8 @@ namespace testspr {
array<int, 6>{{3, 4, 5, 6, 7, 8}}
));
}
// [2 .. 8) の範囲をコピー
// 出力範囲をオーバーする場合
// copy in range [2 .. 8)
// overrun from output range
{
SPROUT_STATIC_CONSTEXPR auto copied = sprout::copy_backward(
sprout::begin(arr1) + 2,
@ -69,8 +69,8 @@ namespace testspr {
array<int, 4>{{5, 6, 7, 8}}
));
}
// [2 .. 8) の範囲をコピー
// 出力範囲の切り出し
// copy in range [2 .. 8)
// to sub range
{
SPROUT_STATIC_CONSTEXPR auto copied = sprout::copy_backward(
sprout::begin(arr1) + 2,

View file

@ -22,7 +22,7 @@ namespace testspr {
SPROUT_STATIC_CONSTEXPR auto arr2 = array<int, 10>{{}};
SPROUT_STATIC_CONSTEXPR auto arr3 = array<int, 4>{{}};
// 奇数をコピー
// copy odd
{
SPROUT_STATIC_CONSTEXPR auto copied = sprout::copy_if(
sprout::begin(arr1),
@ -47,8 +47,8 @@ namespace testspr {
array<int, 5>{{1, 3, 5, 7, 9}}
));
}
// 奇数をコピー
// 出力範囲をオーバーする場合
// copy odd
// overrun from output range
{
SPROUT_STATIC_CONSTEXPR auto copied = sprout::copy_if(
sprout::begin(arr1),
@ -73,8 +73,8 @@ namespace testspr {
array<int, 4>{{1, 3, 5, 7}}
));
}
// 奇数をコピー
// 出力範囲の切り出し
// copy odd
// to sub range
{
SPROUT_STATIC_CONSTEXPR auto copied = sprout::copy_if(
sprout::begin(arr1),

View file

@ -21,7 +21,7 @@ namespace testspr {
SPROUT_STATIC_CONSTEXPR auto arr2 = array<int, 10>{{}};
SPROUT_STATIC_CONSTEXPR auto arr3 = array<int, 4>{{}};
// 6 要素をコピー
// copy 6 elements
{
SPROUT_STATIC_CONSTEXPR auto copied = sprout::copy_n(
sprout::begin(arr1) + 2,
@ -45,8 +45,8 @@ namespace testspr {
));
}
// 6 要素をコピー
// 出力範囲をオーバーする場合
// copy 6 elements
// overrun from output range
{
SPROUT_STATIC_CONSTEXPR auto copied = sprout::copy_n(
sprout::begin(arr1) + 2,
@ -69,8 +69,8 @@ namespace testspr {
array<int, 4>{{3, 4, 5, 6}}
));
}
// 6 要素をコピー
// 出力範囲の切り出し
// copy 6 elements
// to sub range
{
SPROUT_STATIC_CONSTEXPR auto copied = sprout::copy_n(
sprout::begin(arr1) + 2,

View file

@ -22,7 +22,7 @@ namespace testspr {
SPROUT_STATIC_CONSTEXPR auto arr2 = array<int, 10>{{}};
SPROUT_STATIC_CONSTEXPR auto arr3 = array<int, 4>{{}};
// 6 未満をコピー
// copy less than 6
{
SPROUT_STATIC_CONSTEXPR auto copied = sprout::copy_until(
sprout::begin(arr1),
@ -47,8 +47,8 @@ namespace testspr {
array<int, 5>{{1, 2, 3, 4, 5}}
));
}
// 8 未満をコピー
// 出力範囲をオーバーする場合
// copy less than 8
// overrun from output range
{
SPROUT_STATIC_CONSTEXPR auto copied = sprout::copy_until(
sprout::begin(arr1),
@ -73,8 +73,8 @@ namespace testspr {
array<int, 4>{{1, 2, 3, 4}}
));
}
// 8 未満をコピー
// 出力範囲の切り出し
// copy less than 8
// to sub range
{
SPROUT_STATIC_CONSTEXPR auto copied = sprout::copy_until(
sprout::begin(arr1),

View file

@ -22,7 +22,7 @@ namespace testspr {
SPROUT_STATIC_CONSTEXPR auto arr2 = array<int, 10>{{}};
SPROUT_STATIC_CONSTEXPR auto arr3 = array<int, 4>{{}};
// 6 未満をコピー
// copy less than 6
{
SPROUT_STATIC_CONSTEXPR auto copied = sprout::copy_while(
sprout::begin(arr1),
@ -47,8 +47,8 @@ namespace testspr {
array<int, 5>{{1, 2, 3, 4, 5}}
));
}
// 8 未満をコピー
// 出力範囲をオーバーする場合
// copy less than 8
// overrun from output range
{
SPROUT_STATIC_CONSTEXPR auto copied = sprout::copy_while(
sprout::begin(arr1),
@ -73,8 +73,8 @@ namespace testspr {
array<int, 4>{{1, 2, 3, 4}}
));
}
// 8 未満をコピー
// 出力範囲の切り出し
// copy less than 8
// to sub range
{
SPROUT_STATIC_CONSTEXPR auto copied = sprout::copy_while(
sprout::begin(arr1),

View file

@ -20,7 +20,7 @@ namespace testspr {
{
SPROUT_STATIC_CONSTEXPR auto arr1 = array<int, 10>{{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}};
// 充填 (-1)
// fill (-1)
{
SPROUT_STATIC_CONSTEXPR auto filled = sprout::fill(
arr1,
@ -41,8 +41,8 @@ namespace testspr {
array<int, 10>{{-1, -1, -1, -1, -1, -1, -1, -1, -1, -1}}
));
}
// 充填 (-1)
// 範囲の切り出し
// fill (-1)
// from sub range
{
SPROUT_STATIC_CONSTEXPR auto filled = sprout::fill(
sprout::sub(arr1, 2, 8),

View file

@ -20,7 +20,7 @@ namespace testspr {
{
SPROUT_STATIC_CONSTEXPR auto arr1 = array<int, 10>{{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}};
// 充填 (-1)
// fill (-1)
{
SPROUT_STATIC_CONSTEXPR auto filled = sprout::fill_n(
arr1,
@ -43,8 +43,8 @@ namespace testspr {
array<int, 4>{{-1, -1, -1, -1}}
));
}
// 充填 (-1)
// 範囲の切り出し
// fill (-1)
// from sub range
{
SPROUT_STATIC_CONSTEXPR auto filled = sprout::fill_n(
sprout::sub(arr1, 2, 8),

View file

@ -20,7 +20,7 @@ namespace testspr {
{
SPROUT_STATIC_CONSTEXPR auto arr1 = array<int, 10>{{}};
// 生成
// generate
{
SPROUT_STATIC_CONSTEXPR auto generated = sprout::generate(
arr1,
@ -41,8 +41,8 @@ namespace testspr {
array<int, 10>{{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}}
));
}
// 生成
// 範囲の切り出し
// generate
// from sub range
{
SPROUT_STATIC_CONSTEXPR auto generated = sprout::generate(
sprout::sub(arr1, 2, 8),

View file

@ -20,7 +20,7 @@ namespace testspr {
{
SPROUT_STATIC_CONSTEXPR auto arr1 = array<int, 10>{{}};
// 生成
// generate
{
SPROUT_STATIC_CONSTEXPR auto generated = sprout::generate_n(
arr1,
@ -43,8 +43,8 @@ namespace testspr {
array<int, 4>{{1, 2, 3, 4}}
));
}
// 生成
// 範囲の切り出し
// generate
// from sub range
{
SPROUT_STATIC_CONSTEXPR auto generated = sprout::generate_n(
sprout::sub(arr1, 2, 8),

View file

@ -20,7 +20,7 @@ namespace testspr {
{
SPROUT_STATIC_CONSTEXPR auto arr1 = array<int, 10>{{1, 3, 5, 7, 9, 2, 4, 6, 8, 10}};
// マージ
// merge
{
SPROUT_STATIC_CONSTEXPR auto merged = sprout::inplace_merge(
arr1,
@ -41,8 +41,8 @@ namespace testspr {
array<int, 10>{{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}}
));
}
// マージ
// 範囲の切り出し
// merge
// from sub range
{
SPROUT_STATIC_CONSTEXPR auto merged = sprout::inplace_merge(
sprout::sub(arr1, 2, 8),
@ -75,7 +75,7 @@ namespace testspr {
{
SPROUT_STATIC_CONSTEXPR auto arr1 = array<int, 10>{{1, 3, 5, 7, 9, 2, 4, 6, 8, 10}};
// マージ
// merge
{
SPROUT_STATIC_CONSTEXPR auto merged = sprout::inplace_merge(
arr1,
@ -98,8 +98,8 @@ namespace testspr {
array<int, 10>{{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}}
));
}
// マージ
// 範囲の切り出し
// merge
// from sub range
{
SPROUT_STATIC_CONSTEXPR auto merged = sprout::inplace_merge(
sprout::sub(arr1, 2, 8),

View file

@ -20,7 +20,7 @@ namespace testspr {
{
SPROUT_STATIC_CONSTEXPR auto arr1 = array<int, 10>{{10, 7, 8, 6, 9, 2, 5, 3, 4, 1}};
// ヒープ作成
// make heap
{
SPROUT_STATIC_CONSTEXPR auto heap = sprout::make_heap(
arr1
@ -39,8 +39,8 @@ namespace testspr {
array<int, 10>{{10, 9, 8, 6, 7, 2, 5, 3, 4, 1}}
));
}
// ヒープ作成
// 範囲の切り出し
// make heap
// from sub range
{
SPROUT_STATIC_CONSTEXPR auto heap = sprout::make_heap(
sprout::sub(arr1, 2, 10)
@ -71,7 +71,7 @@ namespace testspr {
{
SPROUT_STATIC_CONSTEXPR auto arr1 = array<int, 10>{{10, 7, 8, 6, 9, 2, 5, 3, 4, 1}};
// ヒープ作成
// make heap
{
SPROUT_STATIC_CONSTEXPR auto heap = sprout::make_heap(
arr1,
@ -92,8 +92,8 @@ namespace testspr {
array<int, 10>{{10, 9, 8, 6, 7, 2, 5, 3, 4, 1}}
));
}
// ヒープ作成
// 範囲の切り出し
// make heap
// from sub range
{
SPROUT_STATIC_CONSTEXPR auto heap = sprout::make_heap(
sprout::sub(arr1, 2, 10),

View file

@ -20,7 +20,7 @@ namespace testspr {
{
SPROUT_STATIC_CONSTEXPR auto arr1 = array<int, 10>{{10, 7, 8, 6, 9, 2, 5, 3, 4, 1}};
// ヒープ作成
// make heap
{
SPROUT_STATIC_CONSTEXPR auto heap = sprout::make_partial_heap(
arr1,
@ -41,8 +41,8 @@ namespace testspr {
array<int, 5>{{5, 4, 1, 3, 2}}
));
}
// ヒープ作成
// 範囲の切り出し
// make heap
// from sub range
{
SPROUT_STATIC_CONSTEXPR auto heap = sprout::make_partial_heap(
sprout::sub(arr1, 2, 10),
@ -75,7 +75,7 @@ namespace testspr {
{
SPROUT_STATIC_CONSTEXPR auto arr1 = array<int, 10>{{10, 7, 8, 6, 9, 2, 5, 3, 4, 1}};
// ヒープ作成
// make heap
{
SPROUT_STATIC_CONSTEXPR auto heap = sprout::make_partial_heap(
arr1,
@ -98,8 +98,8 @@ namespace testspr {
array<int, 5>{{5, 4, 1, 3, 2}}
));
}
// ヒープ作成
// 範囲の切り出し
// make heap
// from sub range
{
SPROUT_STATIC_CONSTEXPR auto heap = sprout::make_partial_heap(
sprout::sub(arr1, 2, 10),

View file

@ -23,7 +23,7 @@ namespace testspr {
SPROUT_STATIC_CONSTEXPR auto arr2 = array<int, 10>{{}};
SPROUT_STATIC_CONSTEXPR auto arr3 = array<int, 4>{{}};
// マージ
// merge
{
SPROUT_STATIC_CONSTEXPR auto merged = sprout::merge(
sprout::begin(arr1),
@ -50,8 +50,8 @@ namespace testspr {
array<int, 8>{{2, 3, 4, 5, 6, 7, 8, 9}}
));
}
// マージ
// 出力範囲をオーバーする場合
// merge
// overrun from output range
{
SPROUT_STATIC_CONSTEXPR auto merged = sprout::merge(
sprout::begin(arr1),
@ -78,8 +78,8 @@ namespace testspr {
array<int, 4>{{2, 3, 4, 5}}
));
}
// マージ
// 出力範囲の切り出し
// merge
// to sub range
{
SPROUT_STATIC_CONSTEXPR auto merged = sprout::merge(
sprout::begin(arr1),
@ -121,7 +121,7 @@ namespace testspr {
SPROUT_STATIC_CONSTEXPR auto arr2 = array<int, 10>{{}};
SPROUT_STATIC_CONSTEXPR auto arr3 = array<int, 4>{{}};
// マージ
// merge
{
SPROUT_STATIC_CONSTEXPR auto merged = sprout::merge(
sprout::begin(arr1),
@ -150,8 +150,8 @@ namespace testspr {
array<int, 8>{{2, 3, 4, 5, 6, 7, 8, 9}}
));
}
// マージ
// 出力範囲をオーバーする場合
// merge
// overrun from output range
{
SPROUT_STATIC_CONSTEXPR auto merged = sprout::merge(
sprout::begin(arr1),
@ -180,8 +180,8 @@ namespace testspr {
array<int, 4>{{2, 3, 4, 5}}
));
}
// マージ
// 出力範囲の切り出し
// merge
// to sub range
{
SPROUT_STATIC_CONSTEXPR auto merged = sprout::merge(
sprout::begin(arr1),

View file

@ -20,7 +20,7 @@ namespace testspr {
{
SPROUT_STATIC_CONSTEXPR auto arr1 = array<int, 5>{{1, 2, 3, 4, 5}};
// 順列
// next permutation
{
SPROUT_STATIC_CONSTEXPR auto permutation = sprout::next_permutation(
arr1
@ -41,8 +41,8 @@ namespace testspr {
));
TESTSPR_BOTH_ASSERT(permutation.second);
}
// 順列
// 範囲の切り出し
// next permutation
// from sub range
{
SPROUT_STATIC_CONSTEXPR auto permutation = sprout::next_permutation(
sprout::sub(arr1, 1, 4)
@ -75,7 +75,7 @@ namespace testspr {
{
SPROUT_STATIC_CONSTEXPR auto arr1 = array<int, 5>{{1, 2, 3, 4, 5}};
// 順列
// next permutation
{
SPROUT_STATIC_CONSTEXPR auto permutation = sprout::next_permutation(
arr1,
@ -98,8 +98,8 @@ namespace testspr {
));
TESTSPR_BOTH_ASSERT(permutation.second);
}
// 順列
// 範囲の切り出し
// next permutation
// from sub range
{
SPROUT_STATIC_CONSTEXPR auto permutation = sprout::next_permutation(
sprout::sub(arr1, 1, 4),

View file

@ -20,7 +20,7 @@ namespace testspr {
{
SPROUT_STATIC_CONSTEXPR auto arr1 = array<int, 10>{{10, 7, 8, 6, 9, 2, 5, 3, 4, 1}};
// ソート
// sort
{
SPROUT_STATIC_CONSTEXPR auto nth = sprout::nth_element(
arr1,
@ -41,8 +41,8 @@ namespace testspr {
array<int, 5>{{2, 4, 1, 3, 5}}
));
}
// ソート
// 範囲の切り出し
// sort
// from sub range
{
SPROUT_STATIC_CONSTEXPR auto nth = sprout::nth_element(
sprout::sub(arr1, 2, 8),
@ -75,7 +75,7 @@ namespace testspr {
{
SPROUT_STATIC_CONSTEXPR auto arr1 = array<int, 10>{{10, 7, 8, 6, 9, 2, 5, 3, 4, 1}};
// ソート
// sort
{
SPROUT_STATIC_CONSTEXPR auto nth = sprout::nth_element(
arr1,
@ -98,8 +98,8 @@ namespace testspr {
array<int, 5>{{2, 4, 1, 3, 5}}
));
}
// ソート
// 範囲の切り出し
// sort
// from sub range
{
SPROUT_STATIC_CONSTEXPR auto nth = sprout::nth_element(
sprout::sub(arr1, 2, 8),

View file

@ -20,7 +20,7 @@ namespace testspr {
{
SPROUT_STATIC_CONSTEXPR auto arr1 = array<int, 10>{{5, 1, 9, 4, 8, 2, 7, 3, 10, 6}};
// ソート
// sort
{
SPROUT_STATIC_CONSTEXPR auto sorted = sprout::partial_sort(
arr1,
@ -41,8 +41,8 @@ namespace testspr {
array<int, 5>{{1, 2, 3, 4, 5}}
));
}
// ソート
// 範囲の切り出し
// sort
// from sub range
{
SPROUT_STATIC_CONSTEXPR auto sorted = sprout::partial_sort(
sprout::sub(arr1, 2, 8),
@ -75,7 +75,7 @@ namespace testspr {
{
SPROUT_STATIC_CONSTEXPR auto arr1 = array<int, 10>{{5, 1, 9, 4, 8, 2, 7, 3, 10, 6}};
// ソート
// sort
{
SPROUT_STATIC_CONSTEXPR auto sorted = sprout::partial_sort(
arr1,
@ -98,8 +98,8 @@ namespace testspr {
array<int, 5>{{1, 2, 3, 4, 5}}
));
}
// ソート
// 範囲の切り出し
// sort
// from sub range
{
SPROUT_STATIC_CONSTEXPR auto sorted = sprout::partial_sort(
sprout::sub(arr1, 2, 8),

View file

@ -20,7 +20,7 @@ namespace testspr {
{
SPROUT_STATIC_CONSTEXPR auto arr1 = array<int, 10>{{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}};
// パーティション (is_odd)
// partition (odd)
{
SPROUT_STATIC_CONSTEXPR auto partitioned = sprout::partition(
arr1,
@ -41,8 +41,8 @@ namespace testspr {
array<int, 5>{{9, 7, 5, 3, 1}}
));
}
// パーティション (is_odd)
// 範囲の切り出し
// partition (odd)
// from sub range
{
SPROUT_STATIC_CONSTEXPR auto partitioned = sprout::partition(
sprout::sub(arr1, 2, 8),

View file

@ -22,7 +22,7 @@ namespace testspr {
SPROUT_STATIC_CONSTEXPR auto arr2 = array<int, 10>{{}};
SPROUT_STATIC_CONSTEXPR auto arr3 = array<int, 4>{{}};
// [2 .. 8) の範囲をパーティション (is_odd)
// partition in range [2 .. 8) (odd)
{
SPROUT_STATIC_CONSTEXPR auto partitioned = sprout::partition_copy(
sprout::begin(arr1) + 2,
@ -47,8 +47,8 @@ namespace testspr {
array<int, 3>{{7, 5, 3}}
));
}
// [2 .. 8) の範囲をパーティション (is_odd)
// 出力範囲をオーバーする場合
// partition in range [2 .. 8) (odd)
// overrun from output range
{
SPROUT_STATIC_CONSTEXPR auto partitioned = sprout::partition_copy(
sprout::begin(arr1) + 2,
@ -73,8 +73,8 @@ namespace testspr {
array<int, 2>{{5, 3}}
));
}
// [2 .. 8) の範囲をパーティション (is_odd)
// 出力範囲の切り出し
// partition in range [2 .. 8) (odd)
// to sub range
{
SPROUT_STATIC_CONSTEXPR auto partitioned = sprout::partition_copy(
sprout::begin(arr1) + 2,

View file

@ -20,7 +20,7 @@ namespace testspr {
{
SPROUT_STATIC_CONSTEXPR auto arr1 = array<int, 10>{{10, 8, 9, 6, 7, 5, 3, 1, 2, 4}};
// ヒープからポップ
// pop heap
{
SPROUT_STATIC_CONSTEXPR auto heap = sprout::pop_heap(
arr1
@ -39,8 +39,8 @@ namespace testspr {
array<int, 9>{{9, 8, 5, 6, 7, 4, 3, 1, 2}}
));
}
// ヒープからポップ
// 範囲の切り出し
// pop heap
// from sub range
{
SPROUT_STATIC_CONSTEXPR auto heap = sprout::pop_heap(
sprout::sub(arr1, 2, 10)

View file

@ -20,7 +20,7 @@ namespace testspr {
{
SPROUT_STATIC_CONSTEXPR auto arr1 = array<int, 5>{{5, 4, 3, 2, 1}};
// 順列
// prev permutation
{
SPROUT_STATIC_CONSTEXPR auto permutation = sprout::prev_permutation(
arr1
@ -41,8 +41,8 @@ namespace testspr {
));
TESTSPR_BOTH_ASSERT(permutation.second);
}
// 順列
// 範囲の切り出し
// prev permutation
// from sub range
{
SPROUT_STATIC_CONSTEXPR auto permutation = sprout::prev_permutation(
sprout::sub(arr1, 1, 4)
@ -75,7 +75,7 @@ namespace testspr {
{
SPROUT_STATIC_CONSTEXPR auto arr1 = array<int, 5>{{5, 4, 3, 2, 1}};
// 順列
// prev permutation
{
SPROUT_STATIC_CONSTEXPR auto permutation = sprout::prev_permutation(
arr1,
@ -98,8 +98,8 @@ namespace testspr {
));
TESTSPR_BOTH_ASSERT(permutation.second);
}
// 順列
// 範囲の切り出し
// prev permutation
// from sub range
{
SPROUT_STATIC_CONSTEXPR auto permutation = sprout::prev_permutation(
sprout::sub(arr1, 1, 4),

View file

@ -20,7 +20,7 @@ namespace testspr {
{
SPROUT_STATIC_CONSTEXPR auto arr1 = array<int, 10>{{10, 8, 9, 6, 4, 5, 3, 1, 2, 7}};
// ヒープにプッシュ
// push heap
{
SPROUT_STATIC_CONSTEXPR auto heap = sprout::push_heap(
arr1
@ -39,8 +39,8 @@ namespace testspr {
array<int, 10>{{10, 8, 9, 6, 7, 5, 3, 1, 2, 4}}
));
}
// ヒープにプッシュ
// 範囲の切り出し
// push heap
// from sub range
{
SPROUT_STATIC_CONSTEXPR auto heap = sprout::push_heap(
sprout::sub(arr1, 2, 10)
@ -71,7 +71,7 @@ namespace testspr {
{
SPROUT_STATIC_CONSTEXPR auto arr1 = array<int, 10>{{10, 8, 9, 6, 4, 5, 3, 1, 2, 7}};
// ヒープにプッシュ
// push heap
{
SPROUT_STATIC_CONSTEXPR auto heap = sprout::push_heap(
arr1,
@ -92,8 +92,8 @@ namespace testspr {
array<int, 10>{{10, 8, 9, 6, 7, 5, 3, 1, 2, 4}}
));
}
// ヒープにプッシュ
// 範囲の切り出し
// push heap
// from sub range
{
SPROUT_STATIC_CONSTEXPR auto heap = sprout::push_heap(
sprout::sub(arr1, 2, 10),

View file

@ -22,7 +22,7 @@ namespace testspr {
{
SPROUT_STATIC_CONSTEXPR auto arr1 = array<int, 10>{{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}};
// ランダムスワップ
// random swap
{
SPROUT_STATIC_CONSTEXPR auto random_swapped = sprout::random_swap(
arr1,
@ -43,8 +43,8 @@ namespace testspr {
arr1
));
}
// ランダムスワップ
// 範囲の切り出し
// random swap
// from sub range
{
SPROUT_STATIC_CONSTEXPR auto random_swapped = sprout::random_swap(
sprout::sub(arr1, 2, 8),

View file

@ -23,7 +23,7 @@ namespace testspr {
SPROUT_STATIC_CONSTEXPR auto arr1 = array<int, 10>{{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}};
SPROUT_STATIC_CONSTEXPR auto g = sprout::random::default_random_engine(SPROUT_UNIQUE_SEED);
// ランダムスワップ
// random swap
{
SPROUT_STATIC_CONSTEXPR auto random_swapped = sprout::random_swap_result(
arr1,
@ -54,8 +54,8 @@ namespace testspr {
);
TESTSPR_BOTH_ASSERT(sprout::get<1>(random_swapped) == sprout::get<1>(random_swapped2));
}
// ランダムスワップ
// 範囲の切り出し
// random swap
// from sub range
{
SPROUT_STATIC_CONSTEXPR auto random_swapped = sprout::random_swap_result(
sprout::sub(arr1, 2, 8),

View file

@ -20,7 +20,7 @@ namespace testspr {
{
SPROUT_STATIC_CONSTEXPR auto arr1 = array<int, 10>{{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}};
// 生成
// generate
{
SPROUT_STATIC_CONSTEXPR auto recurrenced = sprout::recurrence(
arr1,
@ -43,8 +43,8 @@ namespace testspr {
array<int, 10>{{2, 4, 8, 16, 32, 64, 128, 256, 512, 1024}}
));
}
// 生成
// 範囲の切り出し
// generate
// from sub range
{
SPROUT_STATIC_CONSTEXPR auto recurrenced = sprout::recurrence(
sprout::sub(arr1, 2, 8),

View file

@ -20,7 +20,7 @@ namespace testspr {
{
SPROUT_STATIC_CONSTEXPR auto arr1 = array<int, 10>{{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}};
// 生成
// generate
{
SPROUT_STATIC_CONSTEXPR auto recurrenced = sprout::recurrence_n(
arr1,
@ -45,8 +45,8 @@ namespace testspr {
array<int, 4>{{1, 2, 4, 8}}
));
}
// 生成
// 範囲の切り出し
// generate
// from sub range
{
SPROUT_STATIC_CONSTEXPR auto recurrenced = sprout::recurrence_n(
sprout::sub(arr1, 2, 8),

View file

@ -20,7 +20,7 @@ namespace testspr {
{
SPROUT_STATIC_CONSTEXPR auto arr1 = array<int, 10>{{1, 0, 3, 0, 5, 0, 7, 0, 9, 0}};
// 削除 (0)
// remove (0)
{
SPROUT_STATIC_CONSTEXPR auto removed = sprout::remove(
arr1,
@ -41,8 +41,8 @@ namespace testspr {
array<int, 5>{{1, 3, 5, 7, 9}}
));
}
// 削除 (0)
// 範囲の切り出し
// remove (0)
// from sub range
{
SPROUT_STATIC_CONSTEXPR auto removed = sprout::remove(
sprout::sub(arr1, 2, 8),

View file

@ -22,7 +22,7 @@ namespace testspr {
SPROUT_STATIC_CONSTEXPR auto arr2 = array<int, 10>{{}};
SPROUT_STATIC_CONSTEXPR auto arr3 = array<int, 2>{{}};
// [2 .. 8) の範囲を削除 (0)
// remove in range [2 .. 8) (0)
{
SPROUT_STATIC_CONSTEXPR auto removed = sprout::remove_copy(
sprout::begin(arr1) + 2,
@ -47,8 +47,8 @@ namespace testspr {
array<int, 3>{{3, 5, 7}}
));
}
// [2 .. 8) の範囲を削除 (0)
// 出力範囲をオーバーする場合
// remove in range [2 .. 8) (0)
// overrun from output range
{
SPROUT_STATIC_CONSTEXPR auto removed = sprout::remove_copy(
sprout::begin(arr1) + 2,
@ -73,8 +73,8 @@ namespace testspr {
array<int, 2>{{3, 5}}
));
}
// [2 .. 8) の範囲を削除 (0)
// 出力範囲の切り出し
// remove in range [2 .. 8) (0)
// to sub range
{
SPROUT_STATIC_CONSTEXPR auto removed = sprout::remove_copy(
sprout::begin(arr1) + 2,

View file

@ -22,7 +22,7 @@ namespace testspr {
SPROUT_STATIC_CONSTEXPR auto arr2 = array<int, 10>{{}};
SPROUT_STATIC_CONSTEXPR auto arr3 = array<int, 2>{{}};
// [2 .. 8) の範囲を削除 (is_odd)
// remove in range [2 .. 8) (odd)
{
SPROUT_STATIC_CONSTEXPR auto removed = sprout::remove_copy_if(
sprout::begin(arr1) + 2,
@ -47,8 +47,8 @@ namespace testspr {
array<int, 3>{{0, 0, 0}}
));
}
// [2 .. 8) の範囲を削除 (is_odd)
// 出力範囲をオーバーする場合
// remove in range [2 .. 8) (odd)
// overrun from output range
{
SPROUT_STATIC_CONSTEXPR auto removed = sprout::remove_copy_if(
sprout::begin(arr1) + 2,
@ -73,8 +73,8 @@ namespace testspr {
array<int, 2>{{0, 0}}
));
}
// [2 .. 8) の範囲を削除 (is_odd)
// 出力範囲の切り出し
// remove in range [2 .. 8) (odd)
// to sub range
{
SPROUT_STATIC_CONSTEXPR auto removed = sprout::remove_copy_if(
sprout::begin(arr1) + 2,

View file

@ -20,7 +20,7 @@ namespace testspr {
{
SPROUT_STATIC_CONSTEXPR auto arr1 = array<int, 10>{{1, 0, 3, 0, 5, 0, 7, 0, 9, 0}};
// 削除 (is_odd)
// remove (odd)
{
SPROUT_STATIC_CONSTEXPR auto removed = sprout::remove_if(
arr1,
@ -41,8 +41,8 @@ namespace testspr {
array<int, 5>{{0, 0, 0, 0, 0}}
));
}
// 削除 (is_odd)
// 範囲の切り出し
// remove (odd)
// from sub range
{
SPROUT_STATIC_CONSTEXPR auto removed = sprout::remove_if(
sprout::sub(arr1, 2, 8),

View file

@ -20,7 +20,7 @@ namespace testspr {
{
SPROUT_STATIC_CONSTEXPR auto arr1 = array<int, 10>{{1, 0, 3, 0, 5, 0, 7, 0, 9, 0}};
// 置換 (0 -> -1)
// replace (0 -> -1)
{
SPROUT_STATIC_CONSTEXPR auto replaced = sprout::replace(
arr1,
@ -43,8 +43,8 @@ namespace testspr {
array<int, 10>{{1, -1, 3, -1, 5, -1, 7, -1, 9, -1}}
));
}
// 置換 (0 -> -1)
// 範囲の切り出し
// replace (0 -> -1)
// from sub range
{
SPROUT_STATIC_CONSTEXPR auto replaced = sprout::replace(
sprout::sub(arr1, 2, 8),

View file

@ -22,7 +22,7 @@ namespace testspr {
SPROUT_STATIC_CONSTEXPR auto arr2 = array<int, 10>{{}};
SPROUT_STATIC_CONSTEXPR auto arr3 = array<int, 4>{{}};
// [2 .. 8) の範囲を置換 (0 -> -1)
// replace in range [2 .. 8) (0 -> -1)
{
SPROUT_STATIC_CONSTEXPR auto replaced = sprout::replace_copy(
sprout::begin(arr1) + 2,
@ -49,8 +49,8 @@ namespace testspr {
array<int, 6>{{3, -1, 5, -1, 7, -1}}
));
}
// [2 .. 8) の範囲を置換 (0 -> -1)
// 出力範囲をオーバーする場合
// replace in range [2 .. 8) (0 -> -1)
// overrun from output range
{
SPROUT_STATIC_CONSTEXPR auto replaced = sprout::replace_copy(
sprout::begin(arr1) + 2,
@ -77,8 +77,8 @@ namespace testspr {
array<int, 4>{{3, -1, 5, -1}}
));
}
// [2 .. 8) の範囲を置換 (0 -> -1)
// 出力範囲の切り出し
// replace in range [2 .. 8) (0 -> -1)
// to sub range
{
SPROUT_STATIC_CONSTEXPR auto replaced = sprout::replace_copy(
sprout::begin(arr1) + 2,

View file

@ -22,7 +22,7 @@ namespace testspr {
SPROUT_STATIC_CONSTEXPR auto arr2 = array<int, 10>{{}};
SPROUT_STATIC_CONSTEXPR auto arr3 = array<int, 4>{{}};
// [2 .. 8) の範囲を置換 (is_odd -> -1)
// replace in range [2 .. 8) (odd -> -1)
{
SPROUT_STATIC_CONSTEXPR auto replaced = sprout::replace_copy_if(
sprout::begin(arr1) + 2,
@ -49,8 +49,8 @@ namespace testspr {
array<int, 6>{{-1, 0, -1, 0, -1, 0}}
));
}
// [2 .. 8) の範囲を置換 (is_odd -> -1)
// 出力範囲をオーバーする場合
// replace in range [2 .. 8) (odd -> -1)
// overrun from output range
{
SPROUT_STATIC_CONSTEXPR auto replaced = sprout::replace_copy_if(
sprout::begin(arr1) + 2,
@ -77,8 +77,8 @@ namespace testspr {
array<int, 4>{{-1, 0, -1, 0}}
));
}
// [2 .. 8) の範囲を置換 (is_odd -> -1)
// 出力範囲の切り出し
// replace in range [2 .. 8) (odd -> -1)
// to sub range
{
SPROUT_STATIC_CONSTEXPR auto replaced = sprout::replace_copy_if(
sprout::begin(arr1) + 2,

View file

@ -20,7 +20,7 @@ namespace testspr {
{
SPROUT_STATIC_CONSTEXPR auto arr1 = array<int, 10>{{1, 0, 3, 0, 5, 0, 7, 0, 9, 0}};
// 置換 (is_odd -> -1)
// replace (odd -> -1)
{
SPROUT_STATIC_CONSTEXPR auto replaced = sprout::replace_if(
arr1,
@ -43,8 +43,8 @@ namespace testspr {
array<int, 10>{{-1, 0, -1, 0, -1, 0, -1, 0, -1, 0}}
));
}
// 置換 (is_odd -> -1)
// 範囲の切り出し
// replace (odd -> -1)
// from sub range
{
SPROUT_STATIC_CONSTEXPR auto replaced = sprout::replace_if(
sprout::sub(arr1, 2, 8),

View file

@ -20,7 +20,7 @@ namespace testspr {
{
SPROUT_STATIC_CONSTEXPR auto arr1 = array<int, 10>{{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}};
// 反転
// reverse
{
SPROUT_STATIC_CONSTEXPR auto reversed = sprout::reverse(
arr1
@ -39,8 +39,8 @@ namespace testspr {
array<int, 10>{{10, 9, 8, 7, 6, 5, 4, 3, 2, 1}}
));
}
// 反転
// 範囲の切り出し
// reverse
// from sub range
{
SPROUT_STATIC_CONSTEXPR auto reversed = sprout::reverse(
sprout::sub(arr1, 2, 8)

View file

@ -22,7 +22,7 @@ namespace testspr {
SPROUT_STATIC_CONSTEXPR auto arr2 = array<int, 10>{{}};
SPROUT_STATIC_CONSTEXPR auto arr3 = array<int, 4>{{}};
// [2 .. 8) の範囲を反転
// reverse in range [2 .. 8)
{
SPROUT_STATIC_CONSTEXPR auto reversed = sprout::reverse_copy(
sprout::begin(arr1) + 2,
@ -45,8 +45,8 @@ namespace testspr {
array<int, 6>{{8, 7, 6, 5, 4, 3}}
));
}
// [2 .. 8) の範囲を反転
// 出力範囲をオーバーする場合
// reverse in range [2 .. 8)
// overrun from output range
{
SPROUT_STATIC_CONSTEXPR auto reversed = sprout::reverse_copy(
sprout::begin(arr1) + 2,
@ -69,8 +69,8 @@ namespace testspr {
array<int, 4>{{8, 7, 6, 5}}
));
}
// [2 .. 8) の範囲を反転
// 出力範囲の切り出し
// reverse in range [2 .. 8)
// to sub range
{
SPROUT_STATIC_CONSTEXPR auto reversed = sprout::reverse_copy(
sprout::begin(arr1) + 2,

View file

@ -20,7 +20,7 @@ namespace testspr {
{
SPROUT_STATIC_CONSTEXPR auto arr1 = array<int, 10>{{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}};
// 回転
// rotate
{
SPROUT_STATIC_CONSTEXPR auto rotated = sprout::rotate(
arr1,
@ -41,8 +41,8 @@ namespace testspr {
array<int, 10>{{6, 7, 8, 9, 10, 1, 2, 3, 4, 5}}
));
}
// 回転
// 範囲の切り出し
// rotate
// from sub range
{
SPROUT_STATIC_CONSTEXPR auto rotated = sprout::rotate(
sprout::sub(arr1, 2, 8),

View file

@ -22,7 +22,7 @@ namespace testspr {
SPROUT_STATIC_CONSTEXPR auto arr2 = array<int, 10>{{}};
SPROUT_STATIC_CONSTEXPR auto arr3 = array<int, 4>{{}};
// [2 .. 8) の範囲を回転
// rotate in range [2 .. 8)
{
SPROUT_STATIC_CONSTEXPR auto rotated = sprout::rotate_copy(
sprout::begin(arr1) + 2,
@ -47,8 +47,8 @@ namespace testspr {
array<int, 6>{{6, 7, 8, 3, 4, 5}}
));
}
// [2 .. 8) の範囲を回転
// 出力範囲をオーバーする場合
// rotate in range [2 .. 8)
// overrun from output range
{
SPROUT_STATIC_CONSTEXPR auto rotated = sprout::rotate_copy(
sprout::begin(arr1) + 2,
@ -73,8 +73,8 @@ namespace testspr {
array<int, 4>{{6, 7, 8, 3}}
));
}
// [2 .. 8) の範囲を回転
// 出力範囲の切り出し
// rotate in range [2 .. 8)
// to sub range
{
SPROUT_STATIC_CONSTEXPR auto rotated = sprout::rotate_copy(
sprout::begin(arr1) + 2,

View file

@ -23,7 +23,7 @@ namespace testspr {
SPROUT_STATIC_CONSTEXPR auto arr2 = array<int, 10>{{}};
SPROUT_STATIC_CONSTEXPR auto arr3 = array<int, 2>{{}};
// 論理差
// difference
{
SPROUT_STATIC_CONSTEXPR auto merged = sprout::set_difference(
sprout::begin(arr1),
@ -50,8 +50,8 @@ namespace testspr {
array<int, 3>{{5, 15, 25}}
));
}
// 論理差
// 出力範囲をオーバーする場合
// difference
// overrun from output range
{
SPROUT_STATIC_CONSTEXPR auto merged = sprout::set_difference(
sprout::begin(arr1),
@ -78,8 +78,8 @@ namespace testspr {
array<int, 2>{{5, 15}}
));
}
// 論理差
// 出力範囲の切り出し
// difference
// to sub range
{
SPROUT_STATIC_CONSTEXPR auto merged = sprout::set_difference(
sprout::begin(arr1),
@ -121,7 +121,7 @@ namespace testspr {
SPROUT_STATIC_CONSTEXPR auto arr2 = array<int, 10>{{}};
SPROUT_STATIC_CONSTEXPR auto arr3 = array<int, 2>{{}};
// 論理差
// difference
{
SPROUT_STATIC_CONSTEXPR auto merged = sprout::set_difference(
sprout::begin(arr1),
@ -150,8 +150,8 @@ namespace testspr {
array<int, 3>{{5, 15, 25}}
));
}
// 論理差
// 出力範囲をオーバーする場合
// difference
// overrun from output range
{
SPROUT_STATIC_CONSTEXPR auto merged = sprout::set_difference(
sprout::begin(arr1),
@ -180,8 +180,8 @@ namespace testspr {
array<int, 2>{{5, 15}}
));
}
// 論理差
// 出力範囲の切り出し
// difference
// to sub range
{
SPROUT_STATIC_CONSTEXPR auto merged = sprout::set_difference(
sprout::begin(arr1),

View file

@ -23,7 +23,7 @@ namespace testspr {
SPROUT_STATIC_CONSTEXPR auto arr2 = array<int, 10>{{}};
SPROUT_STATIC_CONSTEXPR auto arr3 = array<int, 2>{{}};
// 論理積
// intersection
{
SPROUT_STATIC_CONSTEXPR auto merged = sprout::set_intersection(
sprout::begin(arr1),
@ -50,8 +50,8 @@ namespace testspr {
array<int, 3>{{20, 30, 40}}
));
}
// 論理積
// 出力範囲をオーバーする場合
// intersection
// overrun from output range
{
SPROUT_STATIC_CONSTEXPR auto merged = sprout::set_intersection(
sprout::begin(arr1),
@ -78,8 +78,8 @@ namespace testspr {
array<int, 2>{{20, 30}}
));
}
// 論理積
// 出力範囲の切り出し
// intersection
// to sub range
{
SPROUT_STATIC_CONSTEXPR auto merged = sprout::set_intersection(
sprout::begin(arr1),
@ -121,7 +121,7 @@ namespace testspr {
SPROUT_STATIC_CONSTEXPR auto arr2 = array<int, 10>{{}};
SPROUT_STATIC_CONSTEXPR auto arr3 = array<int, 2>{{}};
// 論理積
// intersection
{
SPROUT_STATIC_CONSTEXPR auto merged = sprout::set_intersection(
sprout::begin(arr1),
@ -150,8 +150,8 @@ namespace testspr {
array<int, 3>{{20, 30, 40}}
));
}
// 論理積
// 出力範囲をオーバーする場合
// intersection
// overrun from output range
{
SPROUT_STATIC_CONSTEXPR auto merged = sprout::set_intersection(
sprout::begin(arr1),
@ -180,8 +180,8 @@ namespace testspr {
array<int, 2>{{20, 30}}
));
}
// 論理積
// 出力範囲の切り出し
// intersection
// to sub range
{
SPROUT_STATIC_CONSTEXPR auto merged = sprout::set_intersection(
sprout::begin(arr1),

View file

@ -23,7 +23,7 @@ namespace testspr {
SPROUT_STATIC_CONSTEXPR auto arr2 = array<int, 10>{{}};
SPROUT_STATIC_CONSTEXPR auto arr3 = array<int, 4>{{}};
// 排他的論理和
// symmetric difference
{
SPROUT_STATIC_CONSTEXPR auto merged = sprout::set_symmetric_difference(
sprout::begin(arr1),
@ -50,8 +50,8 @@ namespace testspr {
array<int, 6>{{5, 15, 25, 30, 40, 50}}
));
}
// 排他的論理和
// 出力範囲をオーバーする場合
// symmetric difference
// overrun from output range
{
SPROUT_STATIC_CONSTEXPR auto merged = sprout::set_symmetric_difference(
sprout::begin(arr1),
@ -78,8 +78,8 @@ namespace testspr {
array<int, 4>{{5, 15, 25, 30}}
));
}
// 排他的論理和
// 出力範囲の切り出し
// symmetric difference
// to sub range
{
SPROUT_STATIC_CONSTEXPR auto merged = sprout::set_symmetric_difference(
sprout::begin(arr1),
@ -121,7 +121,7 @@ namespace testspr {
SPROUT_STATIC_CONSTEXPR auto arr2 = array<int, 10>{{}};
SPROUT_STATIC_CONSTEXPR auto arr3 = array<int, 4>{{}};
// 排他的論理和
// symmetric difference
{
SPROUT_STATIC_CONSTEXPR auto merged = sprout::set_symmetric_difference(
sprout::begin(arr1),
@ -150,8 +150,8 @@ namespace testspr {
array<int, 6>{{5, 15, 25, 30, 40, 50}}
));
}
// 排他的論理和
// 出力範囲をオーバーする場合
// symmetric difference
// overrun from output range
{
SPROUT_STATIC_CONSTEXPR auto merged = sprout::set_symmetric_difference(
sprout::begin(arr1),
@ -180,8 +180,8 @@ namespace testspr {
array<int, 4>{{5, 15, 25, 30}}
));
}
// 排他的論理和
// 出力範囲の切り出し
// symmetric difference
// to sub range
{
SPROUT_STATIC_CONSTEXPR auto merged = sprout::set_symmetric_difference(
sprout::begin(arr1),

View file

@ -23,7 +23,7 @@ namespace testspr {
SPROUT_STATIC_CONSTEXPR auto arr2 = array<int, 10>{{}};
SPROUT_STATIC_CONSTEXPR auto arr3 = array<int, 4>{{}};
// 論理和
// union
{
SPROUT_STATIC_CONSTEXPR auto merged = sprout::set_union(
sprout::begin(arr1),
@ -50,8 +50,8 @@ namespace testspr {
array<int, 8>{{5, 10, 15, 20, 25, 30, 40, 50}}
));
}
// 論理和
// 出力範囲をオーバーする場合
// union
// overrun from output range
{
SPROUT_STATIC_CONSTEXPR auto merged = sprout::set_union(
sprout::begin(arr1),
@ -78,8 +78,8 @@ namespace testspr {
array<int, 4>{{5, 10, 15, 20}}
));
}
// 論理和
// 出力範囲の切り出し
// union
// to sub range
{
SPROUT_STATIC_CONSTEXPR auto merged = sprout::set_union(
sprout::begin(arr1),
@ -121,7 +121,7 @@ namespace testspr {
SPROUT_STATIC_CONSTEXPR auto arr2 = array<int, 10>{{}};
SPROUT_STATIC_CONSTEXPR auto arr3 = array<int, 4>{{}};
// 論理和
// union
{
SPROUT_STATIC_CONSTEXPR auto merged = sprout::set_union(
sprout::begin(arr1),
@ -150,8 +150,8 @@ namespace testspr {
array<int, 8>{{5, 10, 15, 20, 25, 30, 40, 50}}
));
}
// 論理和
// 出力範囲をオーバーする場合
// union
// overrun from output range
{
SPROUT_STATIC_CONSTEXPR auto merged = sprout::set_union(
sprout::begin(arr1),
@ -180,8 +180,8 @@ namespace testspr {
array<int, 4>{{5, 10, 15, 20}}
));
}
// 論理和
// 出力範囲の切り出し
// union
// to sub range
{
SPROUT_STATIC_CONSTEXPR auto merged = sprout::set_union(
sprout::begin(arr1),

View file

@ -22,7 +22,7 @@ namespace testspr {
{
SPROUT_STATIC_CONSTEXPR auto arr1 = array<int, 10>{{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}};
// シャッフル
// shuffle
{
SPROUT_STATIC_CONSTEXPR auto shuffled = sprout::shuffle(
arr1,
@ -43,8 +43,8 @@ namespace testspr {
arr1
));
}
// シャッフル
// 範囲の切り出し
// shuffle
// from sub range
{
SPROUT_STATIC_CONSTEXPR auto shuffled = sprout::shuffle(
sprout::sub(arr1, 2, 8),

View file

@ -23,7 +23,7 @@ namespace testspr {
SPROUT_STATIC_CONSTEXPR auto arr1 = array<int, 10>{{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}};
SPROUT_STATIC_CONSTEXPR auto g = sprout::random::default_random_engine(SPROUT_UNIQUE_SEED);
// シャッフル
// shuffle
{
SPROUT_STATIC_CONSTEXPR auto shuffled = sprout::shuffle_result(
arr1,
@ -54,8 +54,8 @@ namespace testspr {
);
TESTSPR_BOTH_ASSERT(sprout::get<1>(shuffled) == sprout::get<1>(shuffled2));
}
// シャッフル
// 範囲の切り出し
// shuffle
// from sub range
{
SPROUT_STATIC_CONSTEXPR auto shuffled = sprout::shuffle_result(
sprout::sub(arr1, 2, 8),

View file

@ -20,7 +20,7 @@ namespace testspr {
{
SPROUT_STATIC_CONSTEXPR auto arr1 = array<int, 10>{{5, 1, 9, 4, 8, 2, 7, 3, 10, 6}};
// ソート
// sort
{
SPROUT_STATIC_CONSTEXPR auto sorted = sprout::sort(
arr1
@ -39,8 +39,8 @@ namespace testspr {
array<int, 10>{{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}}
));
}
// ソート
// 範囲の切り出し
// sort
// from sub range
{
SPROUT_STATIC_CONSTEXPR auto sorted = sprout::sort(
sprout::sub(arr1, 2, 8)
@ -71,7 +71,7 @@ namespace testspr {
{
SPROUT_STATIC_CONSTEXPR auto arr1 = array<int, 10>{{5, 1, 9, 4, 8, 2, 7, 3, 10, 6}};
// ソート
// sort
{
SPROUT_STATIC_CONSTEXPR auto sorted = sprout::sort(
arr1,
@ -92,8 +92,8 @@ namespace testspr {
array<int, 10>{{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}}
));
}
// ソート
// 範囲の切り出し
// sort
// from sub range
{
SPROUT_STATIC_CONSTEXPR auto sorted = sprout::sort(
sprout::sub(arr1, 2, 8),

View file

@ -20,7 +20,7 @@ namespace testspr {
{
SPROUT_STATIC_CONSTEXPR auto arr1 = array<int, 10>{{10, 9, 8, 6, 7, 2, 5, 3, 4, 1}};
// ソート
// sort
{
SPROUT_STATIC_CONSTEXPR auto sorted = sprout::sort_heap(
arr1
@ -39,8 +39,8 @@ namespace testspr {
array<int, 10>{{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}}
));
}
// ソート
// 範囲の切り出し
// sort
// from sub range
{
SPROUT_STATIC_CONSTEXPR auto sorted = sprout::sort_heap(
sprout::sub(arr1, 2, 8)
@ -71,7 +71,7 @@ namespace testspr {
{
SPROUT_STATIC_CONSTEXPR auto arr1 = array<int, 10>{{10, 9, 8, 6, 7, 2, 5, 3, 4, 1}};
// ソート
// sort
{
SPROUT_STATIC_CONSTEXPR auto sorted = sprout::sort_heap(
arr1,
@ -92,8 +92,8 @@ namespace testspr {
array<int, 10>{{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}}
));
}
// ソート
// 範囲の切り出し
// sort
// from sub range
{
SPROUT_STATIC_CONSTEXPR auto sorted = sprout::sort_heap(
sprout::sub(arr1, 2, 8),

View file

@ -20,7 +20,7 @@ namespace testspr {
{
SPROUT_STATIC_CONSTEXPR auto arr1 = array<int, 10>{{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}};
// パーティション (is_odd)
// partition (odd)
{
SPROUT_STATIC_CONSTEXPR auto partitioned = sprout::stable_partition(
arr1,
@ -41,8 +41,8 @@ namespace testspr {
array<int, 5>{{1, 3, 5, 7, 9}}
));
}
// パーティション (is_odd)
// 範囲の切り出し
// partition (odd)
// from sub range
{
SPROUT_STATIC_CONSTEXPR auto partitioned = sprout::stable_partition(
sprout::sub(arr1, 2, 8),

View file

@ -22,7 +22,7 @@ namespace testspr {
SPROUT_STATIC_CONSTEXPR auto arr2 = array<int, 10>{{}};
SPROUT_STATIC_CONSTEXPR auto arr3 = array<int, 4>{{}};
// [2 .. 8) の範囲をパーティション (is_odd)
// partition in range [2 .. 8) (odd)
{
SPROUT_STATIC_CONSTEXPR auto partitioned = sprout::stable_partition_copy(
sprout::begin(arr1) + 2,
@ -47,8 +47,8 @@ namespace testspr {
array<int, 3>{{3, 5, 7}}
));
}
// [2 .. 8) の範囲をパーティション (is_odd)
// 出力範囲をオーバーする場合
// partition in range [2 .. 8) (odd)
// overrun from output range
{
SPROUT_STATIC_CONSTEXPR auto partitioned = sprout::stable_partition_copy(
sprout::begin(arr1) + 2,
@ -73,8 +73,8 @@ namespace testspr {
array<int, 3>{{3, 5, 7}}
));
}
// [2 .. 8) の範囲をパーティション (is_odd)
// 出力範囲の切り出し
// partition in range [2 .. 8) (odd)
// to sub range
{
SPROUT_STATIC_CONSTEXPR auto partitioned = sprout::stable_partition_copy(
sprout::begin(arr1) + 2,

View file

@ -20,7 +20,7 @@ namespace testspr {
{
SPROUT_STATIC_CONSTEXPR auto arr1 = array<int, 10>{{5, 1, 9, 4, 8, 2, 7, 3, 10, 6}};
// ソート
// sort
{
SPROUT_STATIC_CONSTEXPR auto sorted = sprout::stable_sort(
arr1
@ -39,8 +39,8 @@ namespace testspr {
array<int, 10>{{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}}
));
}
// ソート
// 範囲の切り出し
// sort
// from sub range
{
SPROUT_STATIC_CONSTEXPR auto sorted = sprout::stable_sort(
sprout::sub(arr1, 2, 8)
@ -71,7 +71,7 @@ namespace testspr {
{
SPROUT_STATIC_CONSTEXPR auto arr1 = array<int, 10>{{5, 1, 9, 4, 8, 2, 7, 3, 10, 6}};
// ソート
// sort
{
SPROUT_STATIC_CONSTEXPR auto sorted = sprout::stable_sort(
arr1,
@ -92,8 +92,8 @@ namespace testspr {
array<int, 10>{{5, 10, 1, 6, 2, 7, 8, 3, 9, 4}}
));
}
// ソート
// 範囲の切り出し
// sort
// from sub range
{
SPROUT_STATIC_CONSTEXPR auto sorted = sprout::stable_sort(
sprout::sub(arr1, 2, 8),

View file

@ -20,7 +20,7 @@ namespace testspr {
{
SPROUT_STATIC_CONSTEXPR auto arr1 = array<int, 10>{{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}};
// スワップ
// swap
{
SPROUT_STATIC_CONSTEXPR auto swapped = sprout::swap_element(
arr1,
@ -43,8 +43,8 @@ namespace testspr {
array<int, 10>{{1, 2, 8, 4, 5, 6, 7, 3, 9, 10}}
));
}
// スワップ
// 範囲の切り出し
// swap
// from sub range
{
SPROUT_STATIC_CONSTEXPR auto swapped = sprout::swap_element(
sprout::sub(arr1, 2, 8),

View file

@ -22,7 +22,7 @@ namespace testspr {
SPROUT_STATIC_CONSTEXPR auto arr2 = array<int, 10>{{}};
SPROUT_STATIC_CONSTEXPR auto arr3 = array<int, 4>{{}};
// [2 .. 8) の範囲をスワップ
// swap in range [2 .. 8)
{
SPROUT_STATIC_CONSTEXPR auto swapped = sprout::swap_element_copy(
sprout::begin(arr1) + 2,
@ -49,8 +49,8 @@ namespace testspr {
array<int, 6>{{8, 4, 5, 6, 7, 3}}
));
}
// [2 .. 8) の範囲をスワップ
// 出力範囲をオーバーする場合
// swap in range [2 .. 8)
// overrun from output range
{
SPROUT_STATIC_CONSTEXPR auto swapped = sprout::swap_element_copy(
sprout::begin(arr1) + 2,
@ -77,8 +77,8 @@ namespace testspr {
array<int, 4>{{8, 4, 5, 6}}
));
}
// [2 .. 8) の範囲をスワップ
// 出力範囲の切り出し
// swap in range [2 .. 8)
// to sub range
{
SPROUT_STATIC_CONSTEXPR auto swapped = sprout::swap_element_copy(
sprout::begin(arr1) + 2,

View file

@ -22,7 +22,7 @@ namespace testspr {
SPROUT_STATIC_CONSTEXPR auto arr2 = array<int, 10>{{}};
SPROUT_STATIC_CONSTEXPR auto arr3 = array<int, 4>{{}};
// [2 .. 8) の範囲を変換
// transform in range [2 .. 8) (a * 2)
{
SPROUT_STATIC_CONSTEXPR auto transformed = sprout::transform(
sprout::begin(arr1) + 2,
@ -47,8 +47,8 @@ namespace testspr {
array<int, 6>{{6, 8, 10, 12, 14, 16}}
));
}
// [2 .. 8) の範囲を変換
// 出力範囲をオーバーする場合
// transform in range [2 .. 8) (a * 2)
// overrun from output range
{
SPROUT_STATIC_CONSTEXPR auto transformed = sprout::transform(
sprout::begin(arr1) + 2,
@ -73,8 +73,8 @@ namespace testspr {
array<int, 4>{{6, 8, 10, 12}}
));
}
// [2 .. 8) の範囲を変換
// 出力範囲の切り出し
// transform in range [2 .. 8) (a * 2)
// to sub range
{
SPROUT_STATIC_CONSTEXPR auto transformed = sprout::transform(
sprout::begin(arr1) + 2,
@ -114,7 +114,7 @@ namespace testspr {
SPROUT_STATIC_CONSTEXPR auto arr2 = array<int, 10>{{}};
SPROUT_STATIC_CONSTEXPR auto arr3 = array<int, 4>{{}};
// [2 .. 8) の範囲を変換
// transform in range [2 .. 8) (a + b)
{
SPROUT_STATIC_CONSTEXPR auto transformed = sprout::transform(
sprout::begin(arr1) + 2,
@ -141,8 +141,8 @@ namespace testspr {
array<int, 6>{{6, 8, 10, 12, 14, 16}}
));
}
// [2 .. 8) の範囲を変換
// 出力範囲をオーバーする場合
// transform in range [2 .. 8) (a + b)
// overrun from output range
{
SPROUT_STATIC_CONSTEXPR auto transformed = sprout::transform(
sprout::begin(arr1) + 2,
@ -169,8 +169,8 @@ namespace testspr {
array<int, 4>{{6, 8, 10, 12}}
));
}
// [2 .. 8) の範囲を変換
// 出力範囲の切り出し
// transform in range [2 .. 8) (a + b)
// to sub range
{
SPROUT_STATIC_CONSTEXPR auto transformed = sprout::transform(
sprout::begin(arr1) + 2,

View file

@ -20,7 +20,7 @@ namespace testspr {
{
SPROUT_STATIC_CONSTEXPR auto arr1 = array<int, 10>{{}};
// 生成
// generate
{
SPROUT_STATIC_CONSTEXPR auto unfolded = sprout::unfold(
arr1,
@ -43,8 +43,8 @@ namespace testspr {
array<int, 10>{{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}}
));
}
// 生成
// 範囲の切り出し
// generate
// from sub range
{
SPROUT_STATIC_CONSTEXPR auto unfolded = sprout::unfold(
sprout::sub(arr1, 2, 8),

View file

@ -20,7 +20,7 @@ namespace testspr {
{
SPROUT_STATIC_CONSTEXPR auto arr1 = array<int, 10>{{}};
// 生成
// generate
{
SPROUT_STATIC_CONSTEXPR auto unfolded = sprout::unfold_n(
arr1,
@ -45,8 +45,8 @@ namespace testspr {
array<int, 4>{{1, 2, 3, 4}}
));
}
// 生成
// 範囲の切り出し
// generate
// from sub range
{
SPROUT_STATIC_CONSTEXPR auto unfolded = sprout::unfold_n(
sprout::sub(arr1, 2, 8),

View file

@ -20,7 +20,7 @@ namespace testspr {
{
SPROUT_STATIC_CONSTEXPR auto arr1 = array<int, 10>{{1, 1, 3, 3, 5, 5, 7, 7, 9, 9}};
// 「……ユニーク」
// "...Unique".
{
SPROUT_STATIC_CONSTEXPR auto uniqued = sprout::unique(
arr1
@ -39,8 +39,8 @@ namespace testspr {
array<int, 5>{{1, 3, 5, 7, 9}}
));
}
// 「……ユニーク」
// 範囲の切り出し
// "...Unique".
// from sub range
{
SPROUT_STATIC_CONSTEXPR auto uniqued = sprout::unique(
sprout::sub(arr1, 2, 8)
@ -71,7 +71,7 @@ namespace testspr {
{
SPROUT_STATIC_CONSTEXPR auto arr1 = array<int, 10>{{1, 1, 3, 3, 5, 5, 7, 7, 9, 9}};
// 「……ユニーク」
// "...Unique".
{
SPROUT_STATIC_CONSTEXPR auto uniqued = sprout::unique(
arr1,
@ -92,8 +92,8 @@ namespace testspr {
array<int, 5>{{1, 3, 5, 7, 9}}
));
}
// 「……ユニーク」
// 範囲の切り出し
// "...Unique".
// from sub range
{
SPROUT_STATIC_CONSTEXPR auto uniqued = sprout::unique(
sprout::sub(arr1, 2, 8),

View file

@ -22,7 +22,7 @@ namespace testspr {
SPROUT_STATIC_CONSTEXPR auto arr2 = array<int, 10>{{}};
SPROUT_STATIC_CONSTEXPR auto arr3 = array<int, 2>{{}};
// [2 .. 8) の範囲「……ユニーク」
// "...Unique". in range [2 .. 8)
{
SPROUT_STATIC_CONSTEXPR auto uniqued = sprout::unique_copy(
sprout::begin(arr1) + 2,
@ -45,8 +45,8 @@ namespace testspr {
array<int, 3>{{3, 5, 7}}
));
}
// [2 .. 8) の範囲「……ユニーク」
// 出力範囲をオーバーする場合
// "...Unique". in range [2 .. 8)
// overrun from output range
{
SPROUT_STATIC_CONSTEXPR auto uniqued = sprout::unique_copy(
sprout::begin(arr1) + 2,
@ -69,8 +69,8 @@ namespace testspr {
array<int, 2>{{3, 5}}
));
}
// [2 .. 8) の範囲「……ユニーク」
// 出力範囲の切り出し
// "...Unique". in range [2 .. 8)
// to sub range
{
SPROUT_STATIC_CONSTEXPR auto uniqued = sprout::unique_copy(
sprout::begin(arr1) + 2,
@ -107,7 +107,7 @@ namespace testspr {
SPROUT_STATIC_CONSTEXPR auto arr2 = array<int, 10>{{}};
SPROUT_STATIC_CONSTEXPR auto arr3 = array<int, 2>{{}};
// [2 .. 8) の範囲「……ユニーク」
// "...Unique". in range [2 .. 8)
{
SPROUT_STATIC_CONSTEXPR auto uniqued = sprout::unique_copy(
sprout::begin(arr1) + 2,
@ -132,8 +132,8 @@ namespace testspr {
array<int, 3>{{3, 5, 7}}
));
}
// [2 .. 8) の範囲「……ユニーク」
// 出力範囲をオーバーする場合
// "...Unique". in range [2 .. 8)
// overrun from output range
{
SPROUT_STATIC_CONSTEXPR auto uniqued = sprout::unique_copy(
sprout::begin(arr1) + 2,
@ -158,8 +158,8 @@ namespace testspr {
array<int, 2>{{3, 5}}
));
}
// [2 .. 8) の範囲「……ユニーク」
// 出力範囲の切り出し
// "...Unique". in range [2 .. 8)
// to sub range
{
SPROUT_STATIC_CONSTEXPR auto uniqued = sprout::unique_copy(
sprout::begin(arr1) + 2,

View file

@ -26,10 +26,10 @@ namespace sprout {
merge(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2, OutputIterator result, Compare comp) {
while (true) {
if (first1 == last1) {
return std::copy(first2, last2, result);
return sprout::copy(first2, last2, result);
}
if (first2 == last2) {
return std::copy(first1, last1, result);
return sprout::copy(first1, last1, result);
}
*result++ = comp(*first2, *first1)
? *first2++

View file

@ -47,7 +47,7 @@ namespace sprout {
typename sprout::container_traits<Container>::difference_type start,
typename sprout::container_traits<Container>::difference_type end
)
{ // pivot を選ぶ(中央の要素)
{ // select pivot (center)
return *sprout::next(origin, (end + start) / 2);
}
template<typename Container, typename RandomAccessIterator, typename Compare>
@ -58,7 +58,7 @@ namespace sprout {
typename sprout::container_traits<Container>::difference_type l,
typename sprout::container_traits<Container>::value_type const& p
)
{ // left を見つける
{ // find left
return comp(*sprout::next(origin, l), p)
? sprout::fixed::detail::sort_find_l<Container>(origin, comp, l + 1, p)
: l
@ -72,7 +72,7 @@ namespace sprout {
typename sprout::container_traits<Container>::difference_type r,
typename sprout::container_traits<Container>::value_type const& p
)
{ // right を見つける
{ // find right
return comp(p, *sprout::next(origin, r))
? sprout::fixed::detail::sort_find_r<Container>(origin, comp, r - 1, p)
: r
@ -86,7 +86,7 @@ namespace sprout {
Compare comp,
typename sprout::container_traits<Container>::difference_type l
)
{ // 左側をソート
{ // sort left side
return start < l - 1
? sprout::fixed::detail::sort_start(cont, start, l - 1, comp)
: sprout::deep_copy(cont)
@ -100,7 +100,7 @@ namespace sprout {
Compare comp,
typename sprout::container_traits<Container>::difference_type r
)
{ // 右側をソート
{ // sort right side
return r + 1 < end
? sprout::fixed::detail::sort_start(cont, r + 1, end, comp)
: sprout::deep_copy(cont)
@ -116,7 +116,7 @@ namespace sprout {
typename sprout::container_traits<Container>::difference_type l,
typename sprout::container_traits<Container>::difference_type r
)
{ // 左右に分けてソート
{ // sort both side
return sprout::fixed::detail::sort_part_r(
sprout::fixed::detail::sort_part_l(cont, start, comp, l),
end,
@ -135,7 +135,7 @@ namespace sprout {
typename sprout::container_traits<Container>::difference_type r,
typename sprout::container_traits<Container>::value_type const& p
)
{ // left と right 比較して、左右に分けてソートするか、またはスワップしてこの範囲のソートを続ける
{ // comparing right and left, sort both side, or swap and continue
return l >= r
? sprout::fixed::detail::sort_part_lr(cont, start, end, comp, l, r)
: sprout::fixed::detail::sort_lr(
@ -164,7 +164,7 @@ namespace sprout {
typename sprout::container_traits<Container>::difference_type r,
typename sprout::container_traits<Container>::value_type const& p
)
{ // left と right を検索
{ // find left and right
return sprout::fixed::detail::sort_next(
cont,
start,
@ -183,7 +183,7 @@ namespace sprout {
typename sprout::container_traits<Container>::difference_type end,
Compare comp
)
{ // pivot を選択してソートを開始
{ // start sort
return sprout::fixed::detail::sort_lr(
cont,
start,

View file

@ -21,11 +21,11 @@ namespace sprout {
template<typename T>
struct memchr_result {
private:
static void const* check(void const*);
static void* check(void*);
static void check(...);
static void const* test(void const*);
static void* test(void*);
static void test(...);
public:
typedef decltype(check(std::declval<T>())) type;
typedef decltype(test(std::declval<T>())) type;
};
template<typename PtrIterator>

View file

@ -31,6 +31,7 @@
#include <sprout/type_traits/arithmetic_promote.hpp>
#include <sprout/type_traits/float_promote.hpp>
#include <sprout/type_traits/inherit_if_type.hpp>
#include <sprout/type_traits/enable_if.hpp>
#include <sprout/type_traits/enabler_if.hpp>
#include <sprout/type_traits/has_xxx.hpp>
#include <sprout/type_traits/inherit_if_xxx.hpp>

View file

@ -0,0 +1,30 @@
/*=============================================================================
Copyright (c) 2011-2014 Bolero MURAKAMI
https://github.com/bolero-MURAKAMI/Sprout
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
=============================================================================*/
#ifndef SPROUT_TYPE_TRAITS_ENABLE_IF_HPP
#define SPROUT_TYPE_TRAITS_ENABLE_IF_HPP
#include <sprout/config.hpp>
#include <sprout/type_traits/std_type_traits.hpp>
#include <sprout/type_traits/std_type_aliases.hpp>
namespace sprout {
//
// disable_if
//
template<bool B, typename T = void>
struct disable_if
: public sprout::enable_if<!B, T>
{};
#if SPROUT_USE_TEMPLATE_ALIASES
template<bool B, typename T = void>
using disable_if_t = typename sprout::disable_if<B, T>::type;
#endif // #if SPROUT_USE_TEMPLATE_ALIASES
} // namespace sprout
#endif // #ifndef SPROUT_TYPE_TRAITS_ENABLE_IF_HPP

View file

@ -35,10 +35,19 @@ namespace sprout {
: public std::enable_if<C, sprout::enabler_t&>
#endif
{};
//
// disabler_if
//
template<bool C>
struct disabler_if
: public sprout::enabler_if<!C>
{};
#if SPROUT_USE_TEMPLATE_ALIASES
template<bool C>
using enabler_if_t = typename sprout::enabler_if<C>::type;
template<bool C>
using disabler_if_t = typename sprout::disabler_if<C>::type;
#endif // #if SPROUT_USE_TEMPLATE_ALIASES
} // namespace sprout

View file

@ -58,8 +58,7 @@ namespace sprout {
&&sprout::equal(sprout::begin(arg), sprout::end(arg), ctx.begin())
? result_type(
true,
sprout::next(ctx.begin(),
sprout::size(arg)),
sprout::next(ctx.begin(), sprout::size(arg)),
attribute_type(),
context_type(ctx, sprout::next(ctx.begin(), sprout::size(arg)))
)