使用 C++23 将有
std::pair<T1, T1>::operator =( const pair &other ) const;
对我来说,对 const 对象进行操作的赋值运算符没有任何意义,因为无法修改对象。为什么 C++23 会在 pair 上有这个操作符?更令人困惑的是,还有:
std::pair<T1, T1>::operator =( pair &&other ) const;
[编辑]:这行不通,因为 this 指向的是 const:
template<typename T>
struct S
{
void operator +=( T x ) const;
T m_x;
};
template<typename T>
void S<T>::operator +=( T x ) const
{
m_x += x;
}
int main( int argc, char **argv )
{
S<int> si;
si += 1;
}
那么为什么会有一个带有 const 限定的赋值运算符 pair 呢?