답안 #154581

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
154581 2019-09-22T20:19:53 Z AQT Sunčanje (COCI18_suncanje) C++14
컴파일 오류
0 ms 0 KB
#include <bits/stdc++.h>

using namespace std;

struct Node{
    int l, r;
    set<int> f, p, can; //full, part, candidate
};

int N, M;
bool ans[100005];
vector<int> cmp;
pair<int, int> arr[100005];
Node seg[1000000];
int xo[100005], xn[100005], yo[100005], yn[100005];

int getidx(int n){
    return lower_bound(cmp.begin(), cmp.end(), n) - cmp.begin() + 1;
}

void build(int l, int r, int idx){
    seg[idx].l = l, seg[idx].r = r;
    if(l == r){
        return;
    }
    int mid = l+r>>1;
    build(l, mid, 2*idx);
    build(mid+1, r, 2*idx+1);
}

void add(int l, int r, int v, int idx){
    //cout << l << " " << r << " " << v << endl;
    seg[idx].p.insert(v);
    seg[idx].can.insert(v);
    if(seg[idx].f.size() && *(--seg[idx].f.end()) > v){
        ans[v] = 1;
    }
    if(seg[idx].l == l && seg[idx].r == r){
        seg[idx].f.insert(v);
        //cout << *seg[idx].can.begin() << endl;
        while(*seg[idx].can.begin() < v){
            int n = *seg[idx].can.begin();
            seg[idx].can.erase(n);
            ans[n] = 1;
        }
        if(*(--seg[idx].p.end()) > v){
            ans[v] = 1;
        }
        return;
    }
    int mid = seg[idx].l + seg[idx].r >> 1;
    if(r <= mid){
        add(l, r, v, 2*idx);
    }
    else if(l > mid){
        add(l, r, v, 2*idx+1);
    }
    else{
        add(l, mid, v, 2*idx);
        add(mid+1, r, v, 2*idx+1);
    }
}

void rem(int l, int r, int v, int idx){
    seg[idx].p.erase(v);
    if(seg[idx].can.count(v)){
        seg[idx].can.erase(v);
    }
    if(seg[idx].l == l && seg[idx].r == r){
        seg[idx].f.erase(v);
        return;
    }
    int mid = seg[idx].l + seg[idx].r >> 1;
    if(r <= mid){
        rem(l, r, v, 2*idx);
    }
    else if(l > mid){
        rem(l, r, v, 2*idx+1);
    }
    else{
        rem(l, mid, v, 2*idx);
        rem(mid+1, r, v, 2*idx+1);
    }
}

int main(){
    cin.sync_with_stdio(0);
    cin.tie(0);
    cin >> N;
    for(int i = 1; i<=N; i++){
        cin >> xo[i] >> yo[i] >> xn[i] >> yn[i];
        xn[i] += xo[i];
        yn[i] += yo[i];
        yn[i]--;
        cmp.push_back(yo[i]);
        cmp.push_back(yn[i]);
    }
    sort(cmp.begin(), cmp.end());
    cmp.erase(unique(cmp.begin(), cmp.end()), cmp.end());
    M = cmp.size();
    build(1, M, 1);
    for(int i = 1; i<=N; i++){
        yo[i] = getidx(yo[i]), yn[i] = getidx(yn[i]);
        arr[i].first = xo[i];
        arr[i+N].first = xn[i];
        arr[i].second = i;
        arr[i+N].second = -i;
    }
    sort(arr+1, arr+1+2*N);
    for(int n = 1; n<=2*N; n++){
        //cout << arr[n].second << endl;
        if(arr[n].second > 0){
            add(yo[arr[n].second], yn[arr[n].second], arr[n].second, 1);
        }
        else{
            rem(yo[-arr[n].second], yn[-arr[n].second], -arr[n].second, 1);
        }
    }
    for(int i = 1; i<=N; i++){
        if(ans[i]){
            cout << "NE\n";
        }
        else{
            cout << "DA\n";
        }
    }
}

Compilation message

suncanje.cpp:15:50: error: 'int yn [100005]' redeclared as different kind of symbol
 int xo[100005], xn[100005], yo[100005], yn[100005];
                                                  ^
In file included from /usr/include/features.h:367:0,
                 from /usr/include/x86_64-linux-gnu/c++/7/bits/os_defines.h:39,
                 from /usr/include/x86_64-linux-gnu/c++/7/bits/c++config.h:533,
                 from /usr/include/c++/7/cassert:43,
                 from /usr/include/x86_64-linux-gnu/c++/7/bits/stdc++.h:33,
                 from suncanje.cpp:1:
/usr/include/x86_64-linux-gnu/bits/mathcalls.h:252:1: note: previous declaration 'double yn(int, double)'
 __MATHCALL (yn,, (int, _Mdouble_));
 ^
suncanje.cpp: In function 'void build(int, int, int)':
suncanje.cpp:26:16: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
     int mid = l+r>>1;
               ~^~
suncanje.cpp: In function 'void add(int, int, int, int)':
suncanje.cpp:51:26: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
     int mid = seg[idx].l + seg[idx].r >> 1;
               ~~~~~~~~~~~^~~~~~~~~~~~
suncanje.cpp: In function 'void rem(int, int, int, int)':
suncanje.cpp:73:26: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
     int mid = seg[idx].l + seg[idx].r >> 1;
               ~~~~~~~~~~~^~~~~~~~~~~~
suncanje.cpp: In function 'int main()':
suncanje.cpp:91:47: warning: pointer to a function used in arithmetic [-Wpointer-arith]
         cin >> xo[i] >> yo[i] >> xn[i] >> yn[i];
                                               ^
suncanje.cpp:91:40: error: no match for 'operator>>' (operand types are 'std::basic_istream<char>::__istream_type {aka std::basic_istream<char>}' and 'double(int, double) throw ()')
         cin >> xo[i] >> yo[i] >> xn[i] >> yn[i];
         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
In file included from /usr/include/c++/7/sstream:38:0,
                 from /usr/include/c++/7/complex:45,
                 from /usr/include/c++/7/ccomplex:39,
                 from /usr/include/x86_64-linux-gnu/c++/7/bits/stdc++.h:52,
                 from suncanje.cpp:1:
/usr/include/c++/7/istream:120:7: note: candidate: std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(std::basic_istream<_CharT, _Traits>::__istream_type& (*)(std::basic_istream<_CharT, _Traits>::__istream_type&)) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>] <near match>
       operator>>(__istream_type& (*__pf)(__istream_type&))
       ^~~~~~~~
/usr/include/c++/7/istream:120:7: note:   conversion of argument 1 would be ill-formed:
suncanje.cpp:91:47: error: invalid conversion from 'double (*)(int, double) throw ()' to 'std::basic_istream<char>::__istream_type& (*)(std::basic_istream<char>::__istream_type&) {aka std::basic_istream<char>& (*)(std::basic_istream<char>&)}' [-fpermissive]
         cin >> xo[i] >> yo[i] >> xn[i] >> yn[i];
                                           ~~~~^
In file included from /usr/include/c++/7/sstream:38:0,
                 from /usr/include/c++/7/complex:45,
                 from /usr/include/c++/7/ccomplex:39,
                 from /usr/include/x86_64-linux-gnu/c++/7/bits/stdc++.h:52,
                 from suncanje.cpp:1:
/usr/include/c++/7/istream:124:7: note: candidate: std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(std::basic_istream<_CharT, _Traits>::__ios_type& (*)(std::basic_istream<_CharT, _Traits>::__ios_type&)) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>; std::basic_istream<_CharT, _Traits>::__ios_type = std::basic_ios<char>] <near match>
       operator>>(__ios_type& (*__pf)(__ios_type&))
       ^~~~~~~~
/usr/include/c++/7/istream:124:7: note:   conversion of argument 1 would be ill-formed:
suncanje.cpp:91:47: error: invalid conversion from 'double (*)(int, double) throw ()' to 'std::basic_istream<char>::__ios_type& (*)(std::basic_istream<char>::__ios_type&) {aka std::basic_ios<char>& (*)(std::basic_ios<char>&)}' [-fpermissive]
         cin >> xo[i] >> yo[i] >> xn[i] >> yn[i];
                                           ~~~~^
In file included from /usr/include/c++/7/sstream:38:0,
                 from /usr/include/c++/7/complex:45,
                 from /usr/include/c++/7/ccomplex:39,
                 from /usr/include/x86_64-linux-gnu/c++/7/bits/stdc++.h:52,
                 from suncanje.cpp:1:
/usr/include/c++/7/istream:131:7: note: candidate: std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(std::ios_base& (*)(std::ios_base&)) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>] <near match>
       operator>>(ios_base& (*__pf)(ios_base&))
       ^~~~~~~~
/usr/include/c++/7/istream:131:7: note:   conversion of argument 1 would be ill-formed:
suncanje.cpp:91:47: error: invalid conversion from 'double (*)(int, double) throw ()' to 'std::ios_base& (*)(std::ios_base&)' [-fpermissive]
         cin >> xo[i] >> yo[i] >> xn[i] >> yn[i];
                                           ~~~~^
In file included from /usr/include/c++/7/sstream:38:0,
                 from /usr/include/c++/7/complex:45,
                 from /usr/include/c++/7/ccomplex:39,
                 from /usr/include/x86_64-linux-gnu/c++/7/bits/stdc++.h:52,
                 from suncanje.cpp:1:
/usr/include/c++/7/istream:168:7: note: candidate: std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(bool&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>] <near match>
       operator>>(bool& __n)
       ^~~~~~~~
/usr/include/c++/7/istream:168:7: note:   conversion of argument 1 would be ill-formed:
suncanje.cpp:91:47: error: cannot bind non-const lvalue reference of type 'bool&' to an rvalue of type 'bool'
         cin >> xo[i] >> yo[i] >> xn[i] >> yn[i];
                                           ~~~~^
In file included from /usr/include/c++/7/sstream:38:0,
                 from /usr/include/c++/7/complex:45,
                 from /usr/include/c++/7/ccomplex:39,
                 from /usr/include/x86_64-linux-gnu/c++/7/bits/stdc++.h:52,
                 from suncanje.cpp:1:
/usr/include/c++/7/istream:172:7: note: candidate: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>::operator>>(short int&) [with _CharT = char; _Traits = std::char_traits<char>] <near match>
       operator>>(short& __n);
       ^~~~~~~~
/usr/include/c++/7/istream:172:7: note:   conversion of argument 1 would be ill-formed:
suncanje.cpp:91:47: error: invalid conversion from 'double (*)(int, double) throw ()' to 'short int' [-fpermissive]
         cin >> xo[i] >> yo[i] >> xn[i] >> yn[i];
                                           ~~~~^
suncanje.cpp:91:47: error: cannot bind rvalue '(short int)(yn + ((sizetype)i))' to 'short int&'
In file included from /usr/include/c++/7/sstream:38:0,
                 from /usr/include/c++/7/complex:45,
                 from /usr/include/c++/7/ccomplex:39,
                 from /usr/include/x86_64-linux-gnu/c++/7/bits/stdc++.h:52,
                 from suncanje.cpp:1:
/usr/include/c++/7/istream:175:7: note: candidate: std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(short unsigned int&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>] <near match>
       operator>>(unsigned short& __n)
       ^~~~~~~~
/usr/include/c++/7/istream:175:7: note:   conversion of argument 1 would be ill-formed:
suncanje.cpp:91:47: error: invalid conversion from 'double (*)(int, double) throw ()' to 'short unsigned int' [-fpermissive]
         cin >> xo[i] >> yo[i] >> xn[i] >> yn[i];
                                           ~~~~^
suncanje.cpp:91:47: error: cannot bind rvalue '(short unsigned int)(yn + ((sizetype)i))' to 'short unsigned int&'
In file included from /usr/include/c++/7/sstream:38:0,
                 from /usr/include/c++/7/complex:45,
                 from /usr/include/c++/7/ccomplex:39,
                 from /usr/include/x86_64-linux-gnu/c++/7/bits/stdc++.h:52,
                 from suncanje.cpp:1:
/usr/include/c++/7/istream:179:7: note: candidate: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>::operator>>(int&) [with _CharT = char; _Traits = std::char_traits<char>] <near match>
       operator>>(int& __n);
       ^~~~~~~~
/usr/include/c++/7/istream:179:7: note:   conversion of argument 1 would be ill-formed:
suncanje.cpp:91:47: error: invalid conversion from 'double (*)(int, double) throw ()' to 'int' [-fpermissive]
         cin >> xo[i] >> yo[i] >> xn[i] >> yn[i];
                                           ~~~~^
suncanje.cpp:91:47: error: cannot bind rvalue '(int)(yn + ((sizetype)i))' to 'int&'
In file included from /usr/include/c++/7/sstream:38:0,
                 from /usr/include/c++/7/complex:45,
                 from /usr/include/c++/7/ccomplex:39,
                 from /usr/include/x86_64-linux-gnu/c++/7/bits/stdc++.h:52,
                 from suncanje.cpp:1:
/usr/include/c++/7/istream:182:7: note: candidate: std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(unsigned int&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>] <near match>
       operator>>(unsigned int& __n)
       ^~~~~~~~
/usr/include/c++/7/istream:182:7: note:   conversion of argument 1 would be ill-formed:
suncanje.cpp:91:47: error: invalid conversion from 'double (*)(int, double) throw ()' to 'unsigned int' [-fpermissive]
         cin >> xo[i] >> yo[i] >> xn[i] >> yn[i];
                                           ~~~~^
suncanje.cpp:91:47: error: cannot bind rvalue '(unsigned int)(yn + ((sizetype)i))' to 'unsigned int&'
In file included from /usr/include/c++/7/sstream:38:0,
                 from /usr/include/c++/7/complex:45,
                 from /usr/include/c++/7/ccomplex:39,
                 from /usr/include/x86_64-linux-gnu/c++/7/bits/stdc++.h:52,
                 from suncanje.cpp:1:
/usr/include/c++/7/istream:186:7: note: candidate: std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(long int&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>] <near match>
       operator>>(long& __n)
       ^~~~~~~~
/usr/include/c++/7/istream:186:7: note:   conversion of argument 1 would be ill-formed:
suncanje.cpp:91:47: error: invalid conversion from 'double (*)(int, double) throw ()' to 'long int' [-fpermissive]
         cin >> xo[i] >> yo[i] >> xn[i] >> yn[i];
                                           ~~~~^
suncanje.cpp:91:47: error: cannot bind rvalue '(long int)(yn + ((sizetype)i))' to 'long int&'
In file included from /usr/include/c++/7/sstream:38:0,
                 from /usr/include/c++/7/complex:45,
                 from /usr/include/c++/7/ccomplex:39,
                 from /usr/include/x86_64-linux-gnu/c++/7/bits/stdc++.h:52,
                 from suncanje.cpp:1:
/usr/include/c++/7/istream:190:7: note: candidate: std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(long unsigned int&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>] <near match>
       operator>>(unsigned long& __n)
       ^~~~~~~~
/usr/include/c++/7/istream:190:7: note:   conversion of argument 1 would be ill-formed:
suncanje.cpp:91:47: error: invalid conversion from 'double (*)(int, double) throw ()' to 'long unsigned int' [-fpermissive]
         cin >> xo[i] >> yo[i] >> xn[i] >> yn[i];
                                           ~~~~^
suncanje.cpp:91:47: error: cannot bind rvalue '(long unsigned int)(yn + ((sizetype)i))' to 'long unsigned int&'
In file included from /usr/include/c++/7/sstream:38:0,
                 from /usr/include/c++/7/complex:45,
                 from /usr/include/c++/7/ccomplex:39,
                 from /usr/include/x86_64-linux-gnu/c++/7/bits/stdc++.h:52,
                 from suncanje.cpp:1:
/usr/include/c++/7/istream:195:7: note: candidate: std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(long long int&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>] <near match>
       operator>>(long long& __n)
       ^~~~~~~~
/usr/include/c++/7/istream:195:7: note:   conversion of argument 1 would be ill-formed:
suncanje.cpp:91:47: error: invalid conversion from 'double (*)(int, double) throw ()' to 'long long int' [-fpermissive]
         cin >> xo[i] >> yo[i] >> xn[i] >> yn[i];
                                           ~~~~^
suncanje.cpp:91:47: error: cannot bind rvalue '(long long int)(yn + ((sizetype)i))' to 'long long int&'
In file included from /usr/include/c++/7/sstream:38:0,
                 from /usr/include/c++/7/complex:45,
                 from /usr/include/c++/7/ccomplex:39,
                 from /usr/include/x86_64-linux-gnu/c++/7/bits/stdc++.h:52,
                 from suncanje.cpp:1:
/usr/include/c++/7/istream:199:7: note: candidate: std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(long long unsigned int&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>] <near match>
       operator>>(unsigned long long& __n)
       ^~~~~~~~
/usr/include/c++/7/istream:199:7: note:   conversion of argument 1 would be ill-formed:
suncanje.cpp:91:47: error: invalid conversion from 'double (*)(int, double) throw ()' to 'long long unsigned int' [-fpermissive]
         cin >> xo[i] >> yo[i] >> xn[i] >> yn[i];
                                           ~~~~^
suncanje.cpp:91:47: error: cannot bind rvalue '(long long unsigned int)(yn + ((sizetype)i))' to 'long long unsigned int&'
In file included from /usr/include/c++/7/sstream:38:0,
                 from /usr/include/c++/7/complex:45,
                 from /usr/include/c++/7/ccomplex:39,
                 from /usr/include/x86_64-linux-gnu/c++/7/bits/stdc++.h:52,
                 from suncanje.cpp:1:
/usr/include/c++/7/istream:235:7: note: candidate: std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(void*&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>] <near match>
       operator>>(void*& __p)
       ^~~~~~~~
/usr/include/c++/7/istream:235:7: note:   conversion of argument 1 would be ill-formed:
suncanje.cpp:91:47: error: invalid conversion from 'double (*)(int, double) throw ()' to 'void*' [-fpermissive]
         cin >> xo[i] >> yo[i] >> xn[i] >> yn[i];
                                           ~~~~^
suncanje.cpp:91:47: error: cannot bind rvalue '(void*)(yn + ((sizetype)i))' to 'void*&'
In file included from /usr/include/c++/7/sstream:38:0,
                 from /usr/include/c++/7/complex:45,
                 from /usr/include/c++/7/ccomplex:39,
                 from /usr/include/x86_64-linux-gnu/c++/7/bits/stdc++.h:52,
                 from suncanje.cpp:1:
/usr/include/c++/7/istream:214:7: note: candidate: std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(float&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]
       operator>>(float& __f)
       ^~~~~~~~
/usr/include/c++/7/istream:214:7: note:   no known conversion for argument 1 from 'double(int, double) throw ()' to 'float&'
/usr/include/c++/7/istream:218:7: note: candidate: std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(double&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]
       operator>>(double& __f)
       ^~~~~~~~
/usr/include/c++/7/istream:218:7: note:   no known conversion for argument 1 from 'double(int, double) throw ()' to 'double&'
/usr/include/c++/7/istream:222:7: note: candidate: std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(long double&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]
       operator>>(long double& __f)
       ^~~~~~~~
/usr/include/c++/7/istream:222:7: note:   no known conversion for argument 1 from 'double(int, double) throw ()' to 'long double&'
/usr/include/c++/7/istream:259:7: note: candidate: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>::operator>>(std::basic_istream<_CharT, _Traits>::__streambuf_type*) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__streambuf_type = std::basic_streambuf<char>]
       operator>>(__streambuf_type* __sb);
       ^~~~~~~~
/usr/include/c++/7/istream:259:7: note:   no known conversion for argument 1 from 'double(int, double) throw ()' to 'std::basic_istream<char>::__streambuf_type* {aka std::basic_streambuf<char>*}'
In file included from /usr/include/c++/7/string:53:0,
                 from /usr/include/c++/7/bits/locale_classes.h:40,
                 from /usr/include/c++/7/bits/ios_base.h:41,
                 from /usr/include/c++/7/ios:42,
                 from /usr/include/c++/7/istream:38,
                 from /usr/include/c++/7/sstream:38,
                 from /usr/include/c++/7/complex:45,
                 from /usr/include/c++/7/ccomplex:39,
                 from /usr/include/x86_64-linux-gnu/c++/7/bits/stdc++.h:52,
                 from suncanje.cpp:1:
/usr/include/c++/7/bits/basic_string.tcc:1465:5: note: candidate: template<class _CharT, class _Traits, class _Alloc> std::basic_istream<_CharT, _Traits>& std::operator>>(std::basic_istream<_CharT, _Traits>&, std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&)
     operator>>(basic_istream<_CharT, _Traits>& __in,
     ^~~~~~~~
/usr/include/c++/7/bits/basic_string.tcc:1465:5: note:   te