当我使用时,
std::bitset<5> op1 (std::string("01001"));
std::bitset<5> op2 (std::string("10011"));
std::cout << (op1|=op2) << std::endl;
Run Code Online (Sandbox Code Playgroud)
显然一切都很好。
但我的问题是,如何使用两个不同大小的“std::bitset”进行 OR 运算?例如,
std::bitset<11> op1 (std::string("101110011"));
std::bitset<5> op2 (std::string("01001"));
std::cout << (op1|=op2) << std::endl;
Run Code Online (Sandbox Code Playgroud)
我无法在 VS 2012 中编译此代码。我在这里错过了什么?我不能使用不同大小的位集进行“或”运算(以及“异或”运算)吗?这是平台特定的问题吗?
我理解在从基类派生时使用virtual关键字的要求,以避免与钻石继承相关的歧义问题.
但是,我的问题是,为什么这不是C++中导出类时的默认行为,无论钻石问题是否存在或不存在?
在没有钻石继承的情况下,使用'virtual'关键字是否有"伤害"?
c++ virtual inheritance multiple-inheritance diamond-problem