5#if __cplusplus >= 201103L || (defined(_MSC_VER) && _MSC_VER >= 1900)
6#define REMOVE_AT_CXX11_IS_SUPPORTED
7#elif !defined(__cplusplus) && !defined(_MSC_VER)
18template <
class ForwardIt,
class SortUniqIndsFwdIt>
19inline ForwardIt remove_at(
22 SortUniqIndsFwdIt ii_first,
23 SortUniqIndsFwdIt ii_last)
25 if(ii_first == ii_last)
27 typedef typename std::iterator_traits<ForwardIt>::difference_type diff_t;
28 typedef typename std::iterator_traits<SortUniqIndsFwdIt>::value_type ind_t;
29 ForwardIt destination = first +
static_cast<diff_t
>(*ii_first);
30 while(ii_first != ii_last)
33 for(ind_t cur = *ii_first++; ii_first != ii_last; ++ii_first)
35 const ind_t nxt = *ii_first;
41 const ForwardIt source_first =
42 first +
static_cast<diff_t
>(*(ii_first - 1)) + 1;
43 const ForwardIt source_last =
44 ii_first != ii_last ? first +
static_cast<diff_t
>(*ii_first) : last;
45#ifdef REMOVE_AT_CXX11_IS_SUPPORTED
46 std::move(source_first, source_last, destination);
48 std::copy(source_first, source_last, destination);
50 destination += source_last - source_first;
char couldnt_parse_cxx_standard[-1]
Error: couldn't parse standard.