std::ref(及其相关的std::reference_wrapper)是为标准库中非常特定的用例设计的工具,只能用于那些; 如果你想在自己的地方使用它,你必须详细了解它并尊重它的作用.
std::ref
std::reference_wrapper
从根本上说,a reference_wrapper更接近指针而不是引用.因此,在交换函数中替换指针,您将看到没有理由假设它实际交换:
reference_wrapper
void myswap(int* a, int* b) { int* temp = a; a = b; b = temp; }