私はそれらをビットマスクすることによっていくつかのオプションを追跡したいと思い、この回答からビットマスク値を借用しましたが、それらは一緒に機能していないようです。
#include <iostream>
#define OP1 0x00003FFFUL
#define OP2 0x00007FFFUL
#define OP3 0x0000FFFFUL
int main() {
unsigned long params = 0; // .
params |= OP3;
if ( (params & OP1) == OP1)
std::cout << "Whoa. Lame masking\n";
}
それはタイプの問題ですか、それともこの方法を一度に複数のオプションを保持するために使用することはできません(OP1、OP2、およびOP3の両方が同じままである必要がありますparams)?