1
เหตุใด std :: swap จึงไม่ทำงานบนองค์ประกอบเวกเตอร์ <bool> ใน Clang / Win
ฉันมีรหัสเช่นนี้: #include <vector> #include <utility> int main() { std::vector<bool> vb{true, false}; std::swap(vb[0], vb[1]); } ข้อโต้แย้งเกี่ยวกับความมีสติvector<bool>นอกเหนือจากนี้สิ่งนี้ใช้ได้ผลดีกับ: เสียงดังกราวสำหรับ Mac Visual Studio สำหรับ Windows GCC สำหรับ Linux จากนั้นฉันพยายามสร้างด้วย Clang บน Windows และได้รับข้อผิดพลาดต่อไปนี้ (ย่อ): error: no matching function for call to 'swap' std::swap(vb[0], vb[1]); ^~~~~~~~~ note: candidate function [with _Ty = std::_Vb_reference<std::_Wrap_alloc<std::allocator<unsigned int> > …