フラグの管理用に0, 1が格納されているunsigned char配列hogeがあるとして、この配列を元に「いづれかのフラグがたったらtrueを返す」様な関数をbit演算を駆使して作りたいと考えています。(bitを駆使したフラグ管理練習用なので「別にbit使わなくても...」は無しでお願いいたします)
そこで、以下の様な関数を作成してみました。

bool IsAnyFlag() const
{
    unsigned int flags = 0;
    for (int i = 0; i < NUM; i++)
    {
        flags |= hoge[i] << i;
    }
    return flags != 0;
}

しかしこれでは、一応正常に動きはしますが「for文内で1だったら速攻true返せば早くね?」という話になってしまい、bitに直している意味が無いように感じてしまいます。

では、unsigned char配列を一括でbit列に直せる方法があれば良いのではとも考えましたが、そのような方法は私が調べた限りでは無いようで頓挫しています。

あいまいな言葉で申し訳ないのですが、もっとスマートな方法はありませんでしょうか。
よろしくお願いいたします。

余談ですがchar型が文字専用型ではないというのを最近知り「え!? ちがうのぉ!?」と驚愕しております。