#include <string>
#ifndef C
# define C char
#endif
namespace std
{
typedef basic_string<C> S;
template class basic_string<C>;
template S operator+(const C*, const S&);
template S operator+(C, const S&);
template S operator+(const S&, const S&);
}
namespace __gnu_cxx
{
using std::S;
template bool operator==(const S::iterator&, const S::iterator&);
template bool operator==(const S::const_iterator&, const S::const_iterator&);
}
namespace std
{
template
S::basic_string(C*, C*, const allocator<C>&);
template
S::basic_string(const C*, const C*, const allocator<C>&);
template
S::basic_string(S::iterator, S::iterator, const allocator<C>&);
template
S::basic_string(S::const_iterator, S::const_iterator, const allocator<C>&);
template
S&
S::_M_replace(S::iterator, S::iterator, S::iterator, S::iterator,
input_iterator_tag);
template
S&
S::_M_replace(S::iterator, S::iterator, S::const_iterator,
S::const_iterator, input_iterator_tag);
template
S&
S::_M_replace(S::iterator, S::iterator, C*, C*, input_iterator_tag);
template
S&
S::_M_replace(S::iterator, S::iterator, const C*, const C*,
input_iterator_tag);
template
S&
S::_M_replace_safe(S::iterator, S::iterator, S::iterator, S::iterator);
template
S&
S::_M_replace_safe(S::iterator, S::iterator, S::const_iterator,
S::const_iterator);
template
S&
S::_M_replace_safe(S::iterator, S::iterator, C*, C*);
template
S&
S::_M_replace_safe(S::iterator, S::iterator, const C*, const C*);
template
C*
S::_S_construct(S::iterator, S::iterator,
const allocator<C>&, forward_iterator_tag);
template
C*
S::_S_construct(S::const_iterator, S::const_iterator,
const allocator<C>&, forward_iterator_tag);
template
C*
S::_S_construct(C*, C*, const allocator<C>&, forward_iterator_tag);
template
C*
S::_S_construct(const C*, const C*, const allocator<C>&,
forward_iterator_tag);
template
void
__destroy_aux<S*>(S*, S*, __false_type);
}