const-corrective and safe bool idiom

У меня есть еще один вопрос, связанный с идиомой safe bool:

typedef void (Testable::*bool_type)() const;             // const necessary?
void this_type_does_not_support_comparisons() const {}   // const necessary?

operator bool_type() const
{
    return ok_ ? &Testable::this_type_does_not_support_comparisons : 0;
}

Почему bool_type (typedef) и this_type_does_not_support_comparisons являются const ? В любом случае никто не должен вызывать функцию-член через указатель возврата, верно? Нужен ли здесь const ? Будет ли operator bool_type (функция-член) в противном случае нарушать константную корректность?

9
задан fredoverflow 11 August 2011 в 15:00
поделиться