我有一个自定义赋值运算符的类,故意引入受控副作用。可以std :: set :: insert()调用赋值运算符吗?
如果我有这些元素的std::set
,我想知道赋值运算符是否可以使用insert
来调用。
即:
class A
{
public:
A & operator=(A const & rhs)
{
// custom assignment operator with deliberate side effects
// Could this be called with use of std::set::insert()?
}
};
std::set<A> a;
// Is it possible with this, or any use of "insert", that
// the assignment operator will ever be called?
a.insert(A());
能否赋值运算符曾与使用std::set::insert
叫?
有什么副作用?你可以调试代码吗? ,找出最好的方法是在'operator =' – Raxvan
@Dan Nissenbaum里面放一个断点,经过一次小测试后,似乎'operator ='是**不被**调用。 – Raxvan
@JoachimPileborg这将告诉他他的当前实现是否在他测试的特定情况下使用赋值运算符。它不会告诉他是否保证不会。 –