如何在OSX High Sierra(10.13.5)上的Xcode(9.4.1)中启用C++ 17?
在现场C++编码访谈期间询问了这个问题.在那次采访中我没有提供一个好的答案.所以我希望在堆栈溢出时得到人们的反馈和建议.现在我已经有更多的时间来提出解决方案了,我相信我写了一个不错的解决方案.我认为这可以正常工作a并b引用不同的整数.如果a并且b引用相同的整数,那么该整数将被破坏为0.
void SwapRightMostNBits(int& a, int& b, unsigned int n){
if (n>31) { n=31; }
int mask=static_cast<int>(pow(2,n)-1);
a ^= (b & mask);
b ^= (a & mask);
a ^= (b & mask);
}
Run Code Online (Sandbox Code Playgroud)