Я пытаюсь написать оператор преобразования bool для std :: bitset
Я пытался:
template<size_t size>
operator bool(std::bitset<size> & b)
{
return b.any();
}
, но я получил
error C2801: 'mynamespace::operator bool' must be a non-static member
из моего визуала-studio.
Но когда я смотрю объяснение C2801 , оно ничего не говорит об операторах преобразования (только об =, ->, [], ())
Итак,возможно ли как-то написать «Преобразование std :: bitset в оператор bool?»
(я не могу вызвать b.any()
в моих операторах if, потому что тот же код должен выполняться при замене std :: bitsetс unsigned или чем-то
typedef std::bitset<x> Bitset;
//typedef unsigned Bitset;
, поэтому идеальный синтаксис будет выглядеть так:
Bitset b = whatewer;
if(b)
doStuff();
)
Если эта перегрузка невозможна, какой метод рекомендуется использовать?
пока я использую это как:
if(b == Bitset(0))
doStuff();
, но мне это не нравится.
Спасибо