我正在尝试这样做:
int main(){
std::unique_ptr<std::thread> up(nullptr);
up = std::make_unique<std::thread>(upload, url, path);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
其中,upload基本上是一个静态非成员函数,url并且path是std::string.upload定义为:
static void upload(const string url, const string path){ int sync_status;}
Run Code Online (Sandbox Code Playgroud)
但在Valgrind下,这总是被报告为内存泄漏:
249 (80 direct, 169 indirect) bytes in 1 blocks are definitely lost in loss record 151 of 169
==12088== at 0x4C3017F: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==12088== by 0x1395F9: _S_make_state<std::thread::_Invoker<std::tuple<void (*)(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >), std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> , std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> …Run Code Online (Sandbox Code Playgroud)