так:
void A::foo(std::weak_ptr<B> b)
{
if(auto shared = b.lock()) { //do something}
}
я передаю ему явный нульптр. Прям создаю дефолный шаред, явно присваиваю нульптр. Но метод все равно заходит в do something. И он уверен, что лок возвращает не nullptr
что я делаю не так? Почему ноль перестает быть нулем?
потому что он указывает на ноль, но сам объект не ноль
у меня твой кот нормально работает. https://wandbox.org/permlink/YV88GStZ5joPCQIz
Покажи код. Если вызов foo(nullptr), то проверка не пройдёт
Натали, открой наконец для себя удивительный мир дебагера...
Обсуждают сегодня