@@ -1081,7 +1081,7 @@ namespace pcs // i.e. "pythonic c++ strings"
10811081if (slice.step () ==1 ) {
10821082 slice.begin (*this );
10831083if (slice.start () < slice.stop ())
1084- return this ->substr (slice.start (), slice.stop () - slice.start () +1 );
1084+ return this ->substr (size_type ( slice.start ()), size_type ( slice.stop () - slice.start () +1 ) );
10851085else
10861086return CppStringT ();
10871087 }
@@ -1092,15 +1092,15 @@ namespace pcs // i.e. "pythonic c++ strings"
10921092if (slice.step () == -1 ) {
10931093 slice.begin (*this );
10941094if (slice.stop () < slice.start ()) {
1095- res =this ->substr (slice.stop (), slice.start () - slice.stop () +1 );
1095+ res =this ->substr (size_type ( slice.stop ()), size_type ( slice.start () - slice.stop () +1 ) );
10961096std::ranges::reverse (res);// notice: may use vectorization if available
10971097 }
10981098return res;
10991099 }
11001100
11011101// finally, no trivial optimization -- and naive implementation...
11021102for (slice.begin (*this ); !slice.end (); ++slice)
1103- res += (*this )[*slice];
1103+ res += (*this )[size_type ( *slice) ];
11041104
11051105return res;
11061106 }