Я бы хотел иметь простой способ проверки объекта на предмет допустимости. Я подумал о простой функции преобразования, примерно такой:
operator bool() const { return is_valid; }
Проверить, что она действительна, теперь будет очень просто
// is my object invalid?
if (!my_object) std::cerr << "my_object isn't valid" << std::endl;
Считается ли это хорошей практикой?