我收到此错误:错误c2064:术语不评估为采用0参数的函数,但我不明白为什么

Alo*_*'er 1 c++ mutex file locks rwlock

我有这个错误:错误c2064:term不评估为采用0参数的函数.事情是函数接受0参数,我调用0参数,我不明白什么是错的.

    RWLock* rwl = new RWLock();
    std::thread t1(&RWLock::read);
Run Code Online (Sandbox Code Playgroud)

这是对函数的调用.这是功能:

    void read();
Run Code Online (Sandbox Code Playgroud)

有人知道问题是什么吗?提前致谢!

Som*_*ude 8

所有非静态成员函数都有一个隐藏参数,它成为this成员函数中的指针.如果要将非静态成员函数用作线程,则必须在启动线程时提供此隐藏参数:

std::thread t1(&RWLock::read, rwl);
Run Code Online (Sandbox Code Playgroud)