Я тестирую код cpp, как показано ниже, и получил одно очень запутанное явление, ниже код не печатает строку "label". Кто-нибудь может это объяснить? действительно спасибо за вашу помощь!
class Data {
public:
Data() { std::cout << __FUNCTION__ << std::endl; }
~Data() { std::cout << __FUNCTION__ << std::endl; }
void show() { std::cout << label << std::endl; }
private:
std::string label{"label"};
};
int main() {
auto data = std::make_shared<Data>();
std::thread t([=]() mutable{
data->show();
});
t.detach();
}