http://www.cplusplus.com/reference/string/string/insert/
string& insert ( size_t pos1, const string& str );
string& insert ( size_t pos1, const string& str, size_t pos2, size_t n );
string& insert ( size_t pos1, const char* s, size_t n);
string& insert ( size_t pos1, const char* s );
string& insert ( size_t pos1, size_t n, char c );
iterator insert ( iterator p, char c );
void insert ( iterator p, size_t n, char c );
template<class InputIterator>
void insert ( iterator p, InputIterator first, InputIterator last );
Your call to std::basic_string<t>::insert
does not match any of the above overloads.
a.insert(a.begin()+1, ge);
needs to be
a.insert(a.begin()+1, ge.begin(), ge.end());
or
a.insert(1, ge);
Otherwise that code is not valid.