@@ -410,6 +410,9 @@ See_also: $(LREF swapped), $(LREF everted)
410410template transposed (Dimensions... )
411411 if (Dimensions.length)
412412{
413+ static if (! allSatisfy! (isSize_t, Dimensions))
414+ alias transposed = .transposed! (staticMap! (toSize_t, Dimensions));
415+ else
413416 @fmb Slice! (N, Range ) transposed(size_t N, Range )(Slice! (N, Range ) slice)
414417 {
415418 mixin DimensionsCountCTError;
@@ -537,6 +540,9 @@ Returns:
537540template reversed (Dimensions... )
538541 if (Dimensions.length)
539542{
543+ static if (! allSatisfy! (isSize_t, Dimensions))
544+ alias reversed = .reversed! (staticMap! (toSize_t, Dimensions));
545+ else
540546 @fmb auto reversed(size_t N, Range )(Slice! (N, Range ) slice)
541547 {
542548 foreach (i, dimension; Dimensions)
@@ -642,6 +648,9 @@ Returns:
642648template strided (Dimensions... )
643649 if (Dimensions.length)
644650{
651+ static if (! allSatisfy! (isSize_t, Dimensions))
652+ alias strided = .strided! (staticMap! (toSize_t, Dimensions));
653+ else
645654 @fmb auto strided(size_t N, Range )(Slice! (N, Range ) slice, Repeat! (Dimensions.length, size_t ) factors)
646655 body
647656 {
@@ -868,6 +877,9 @@ Returns:
868877template dropOne (Dimensions... )
869878 if (Dimensions.length)
870879{
880+ static if (! allSatisfy! (isSize_t, Dimensions))
881+ alias dropOne = .dropOne! (staticMap! (toSize_t, Dimensions));
882+ else
871883 @fmb Slice! (N, Range ) dropOne(size_t N, Range )(Slice! (N, Range ) slice)
872884 {
873885 foreach (i, dimension; Dimensions)
900912template dropBackOne (Dimensions... )
901913 if (Dimensions.length)
902914{
915+ static if (! allSatisfy! (isSize_t, Dimensions))
916+ alias dropBackOne = .dropBackOne! (staticMap! (toSize_t, Dimensions));
917+ else
903918 @fmb Slice! (N, Range ) dropBackOne(size_t N, Range )(Slice! (N, Range ) slice)
904919 {
905920 foreach (i, dimension; Dimensions)
@@ -987,6 +1002,9 @@ Returns:
9871002template dropExactly (Dimensions... )
9881003 if (Dimensions.length)
9891004{
1005+ static if (! allSatisfy! (isSize_t, Dimensions))
1006+ alias dropExactly = .dropExactly! (staticMap! (toSize_t, Dimensions));
1007+ else
9901008 @fmb Slice! (N, Range ) dropExactly(size_t N, Range )(Slice! (N, Range ) slice, Repeat! (Dimensions.length, size_t ) ns)
9911009 body
9921010 {
@@ -1015,6 +1033,9 @@ body
10151033template dropBackExactly (Dimensions... )
10161034 if (Dimensions.length)
10171035{
1036+ static if (! allSatisfy! (isSize_t, Dimensions))
1037+ alias dropBackExactly = .dropBackExactly! (staticMap! (toSize_t, Dimensions));
1038+ else
10181039 @fmb Slice! (N, Range ) dropBackExactly(size_t N, Range )(Slice! (N, Range ) slice, Repeat! (Dimensions.length, size_t ) ns)
10191040 body
10201041 {
@@ -1076,6 +1097,9 @@ Returns:
10761097template drop (Dimensions... )
10771098 if (Dimensions.length)
10781099{
1100+ static if (! allSatisfy! (isSize_t, Dimensions))
1101+ alias drop = .drop! (staticMap! (toSize_t, Dimensions));
1102+ else
10791103 @fmb Slice! (N, Range ) drop(size_t N, Range )(Slice! (N, Range ) slice, Repeat! (Dimensions.length, size_t ) ns)
10801104 body
10811105 {
@@ -1104,6 +1128,9 @@ body
11041128template dropBack (Dimensions... )
11051129 if (Dimensions.length)
11061130{
1131+ static if (! allSatisfy! (isSize_t, Dimensions))
1132+ alias dropBack = .dropBack! (staticMap! (toSize_t, Dimensions));
1133+ else
11071134 @fmb Slice! (N, Range ) dropBack(size_t N, Range )(Slice! (N, Range ) slice, Repeat! (Dimensions.length, size_t ) ns)
11081135 body
11091136 {
0 commit comments