Тестовый пример:
#include <cstdlib>
#include <string>
using std::string;
static const char *f() { return "a"; }
int main()
{
char *b="b", *c="c";
string s(string(f())+b+c);
return EXIT_SUCCESS;
}
gcc 3.3.6 говорит что ошибка в строке
> string s(string(f())+b+c);
gcc 3.4 gcc 4.0 icc 7.1.006 говорит что все хорошо.
Действительно ошибка в синтаксисе которую замечает только gcc 3.3.6
или это баг gcc?