当我尝试测试std::ostringstream
的清除功能时,我为此做了demo。
#include <iostream>
#include <sstream>
#include <iomanip>
#include <vector>
void test()
{
std::ostringstream buff;
buff << "Check:";
buff.str("");
buff.clear();
buff << "haha";
}
int main()
{
std::ostringstream buff;
buff << "Check:";
buff.str("");
buff.clear();
buff << "haha";
// test();
return 0;
}
我使用gcc8进行了编译:
g++ -std=c++14 -pthread -fgnu-tm -O2 -Wall -Wextra -pedantic -pthread -pedantic-errors main.cpp -lm -latomic -lstdc++fs && ./a.out
但是编译器给出了错误:
collect2: fatal error: ld terminated with signal 25 [File size limit exceeded], core dumped
compilation terminated.
如果我删除了test()
函数,则该程序的编译和运行将正常。
问题: 有什么错误?我该如何解决?