Я читаю код ROS.
В файле ros_comm/roscpp/include/ros/subscriber.h
я вижу такой фрагмент кода:
operator void*() const { return (impl_ && impl_->isValid()) ? (void*)1 : (void*)0; }
Ну, (void *)0
можно рассматривать как NULL
в C, но что означает (void *)1
?
Если класс Foo
содержит эту функцию, это означает, что мы можем кодировать так:
Foo foo;
void *ptr = foo;
Правильно? Значит ли это, что void *ptr = (void *)1
возможен? Что это значит?