boost :: split函数的参数不是恒定的。 boost::split
在输入字符串不恒定时会更改输入字符串还是将其移到另一个内存地址?
问题的背景:我的服务是用C ++编写的,它始终是核心转储。我正在寻找原因。我的代码使用boost::split
函数,并将字符串的非恒定引用传递给boost::split
。该代码将运行多线程,因此我认为它不是线程安全的,并且会导致核心转储。
答案 0 :(得分:0)
boost::split()
不会修改其参数(see the documentation)。更有可能的原因是,您正在一个线程中修改字符串,而boost::split
正在另一个线程中读取字符串。为避免这种情况,请使用mutex保护变量。