@@ -133,8 +133,8 @@ struct RHString {
133
133
/* *
134
134
* @brief charやunsigned long longなどで初期化する
135
135
*/
136
- template <class T , std::enable_if_t <!is_range_v<T > && !std::is_convertible_v<T, std::string_view>, std::nullptr_t > = nullptr >
137
- RHString (RollingHash& rh, T x) : rh(rh) {
136
+ template <class T , std::enable_if_t <std::is_convertible_v<T, unsigned long long > && !std::is_convertible_v<T, std::string_view>, std::nullptr_t > = nullptr >
137
+ RHString (RollingHash& rh, T&& x) : rh(rh) {
138
138
sz = 1 ;
139
139
hash1 = x;
140
140
hash2 = x;
@@ -197,7 +197,7 @@ struct RHString {
197
197
/* *
198
198
* @brief charやunsigned long longなどを再代入する
199
199
*/
200
- template <class T , std::enable_if_t <!is_range_v<T > && !std::is_convertible_v<T, std::string_view>, std::nullptr_t > = nullptr >
200
+ template <class T , std::enable_if_t <std::is_convertible_v<T, unsigned long long > && !std::is_convertible_v<T, std::string_view>, std::nullptr_t > = nullptr >
201
201
void assign (T&& x) {
202
202
sz = 1 ;
203
203
hash1 = x;
@@ -230,7 +230,7 @@ struct RHString {
230
230
/* *
231
231
* @brief charやunsigned long longなどを再代入する
232
232
*/
233
- template <class T , std::enable_if_t <!is_range_v<T > && !std::is_convertible_v<T, std::string_view>, std::nullptr_t > = nullptr >
233
+ template <class T , std::enable_if_t <std::is_convertible_v<T, unsigned long long > && !std::is_convertible_v<T, std::string_view>, std::nullptr_t > = nullptr >
234
234
RHString& operator =(T&& x) {
235
235
assign (x);
236
236
return *this ;
0 commit comments