使用这种swap实现的最大威胁是什么?除了线程安全和差的优化.什么时候失败(反例)?
template<typename T> void swapViaMemory(T& left,T& right) { if(&left == &right) { return ; } unsigned int tSize = sizeof(T); unsigned char* lPtr = reinterpret_cast<unsigned char*>(&left); unsigned char* rPtr = reinterpret_cast<unsigned char*>(&right); for(unsigned int i = 0; i < tSize; ++i) { *(lPtr + i) ^= *(rPtr + i); *(rPtr + i) ^= *(lPtr + i); *(lPtr + i) ^= *(rPtr + i); } }
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。