Skip to content

Commit e0f3650

Browse files
committed
I hope this will help with Microsoft failure to find right overload.
1 parent 5436e75 commit e0f3650

File tree

3 files changed

+15
-10
lines changed

3 files changed

+15
-10
lines changed

include/ctre/rotate.hpp

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,11 @@ static auto rotate(any) -> any;
4646

4747
static auto rotate(empty) -> empty;
4848

49+
// select rotates only insides of selection, not select itself
50+
template <typename... Content> static auto rotate(select<Content...>) {
51+
return select<decltype(rotate(Content{}))...>{};
52+
}
53+
4954

5055
template <size_t a, size_t b, typename... Content> static auto rotate(repeat<a,b,Content...>) -> decltype(ctre::convert_to_repeat<repeat, a, b>(ctll::rotate(ctll::list<decltype(rotate(Content{}))...>{})));
5156
template <size_t a, size_t b, typename... Content> static auto rotate(lazy_repeat<a,b,Content...>) -> decltype(ctre::convert_to_repeat<lazy_repeat, a, b>(ctll::rotate(ctll::list<decltype(rotate(Content{}))...>{})));
@@ -91,10 +96,6 @@ static auto rotate(assert_subject_end_line) -> assert_subject_end_line;
9196
static auto rotate(assert_line_begin) -> assert_line_begin;
9297
static auto rotate(assert_line_end) -> assert_line_end;
9398

94-
// select rotates only insides of selection, not select itself
95-
template <typename... Content> static auto rotate(select<Content...>) -> select<decltype(rotate(Content{}))...>;
96-
97-
9899
};
99100

100101
}

single-header/ctre-unicode.hpp

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2067,6 +2067,11 @@ static auto rotate(any) -> any;
20672067

20682068
static auto rotate(empty) -> empty;
20692069

2070+
// select rotates only insides of selection, not select itself
2071+
template <typename... Content> static auto rotate(select<Content...>) {
2072+
return select<decltype(rotate(Content{}))...>{};
2073+
}
2074+
20702075
template <size_t a, size_t b, typename... Content> static auto rotate(repeat<a,b,Content...>) -> decltype(ctre::convert_to_repeat<repeat, a, b>(ctll::rotate(ctll::list<decltype(rotate(Content{}))...>{})));
20712076
template <size_t a, size_t b, typename... Content> static auto rotate(lazy_repeat<a,b,Content...>) -> decltype(ctre::convert_to_repeat<lazy_repeat, a, b>(ctll::rotate(ctll::list<decltype(rotate(Content{}))...>{})));
20722077
template <size_t a, size_t b, typename... Content> static auto rotate(possessive_repeat<a,b,Content...>) -> decltype(ctre::convert_to_repeat<possessive_repeat, a, b>(ctll::rotate(ctll::list<decltype(rotate(Content{}))...>{})));
@@ -2111,9 +2116,6 @@ static auto rotate(assert_subject_end_line) -> assert_subject_end_line;
21112116
static auto rotate(assert_line_begin) -> assert_line_begin;
21122117
static auto rotate(assert_line_end) -> assert_line_end;
21132118

2114-
// select rotates only insides of selection, not select itself
2115-
template <typename... Content> static auto rotate(select<Content...>) -> select<decltype(rotate(Content{}))...>;
2116-
21172119
};
21182120

21192121
}

single-header/ctre.hpp

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2064,6 +2064,11 @@ static auto rotate(any) -> any;
20642064

20652065
static auto rotate(empty) -> empty;
20662066

2067+
// select rotates only insides of selection, not select itself
2068+
template <typename... Content> static auto rotate(select<Content...>) {
2069+
return select<decltype(rotate(Content{}))...>{};
2070+
}
2071+
20672072
template <size_t a, size_t b, typename... Content> static auto rotate(repeat<a,b,Content...>) -> decltype(ctre::convert_to_repeat<repeat, a, b>(ctll::rotate(ctll::list<decltype(rotate(Content{}))...>{})));
20682073
template <size_t a, size_t b, typename... Content> static auto rotate(lazy_repeat<a,b,Content...>) -> decltype(ctre::convert_to_repeat<lazy_repeat, a, b>(ctll::rotate(ctll::list<decltype(rotate(Content{}))...>{})));
20692074
template <size_t a, size_t b, typename... Content> static auto rotate(possessive_repeat<a,b,Content...>) -> decltype(ctre::convert_to_repeat<possessive_repeat, a, b>(ctll::rotate(ctll::list<decltype(rotate(Content{}))...>{})));
@@ -2108,9 +2113,6 @@ static auto rotate(assert_subject_end_line) -> assert_subject_end_line;
21082113
static auto rotate(assert_line_begin) -> assert_line_begin;
21092114
static auto rotate(assert_line_end) -> assert_line_end;
21102115

2111-
// select rotates only insides of selection, not select itself
2112-
template <typename... Content> static auto rotate(select<Content...>) -> select<decltype(rotate(Content{}))...>;
2113-
21142116
};
21152117

21162118
}

0 commit comments

Comments
 (0)