I want to assign an object to volatile object in the same type, but failed to do so with compiler error. How to change the program to make it? Besides to make it to work, wh
You need to define an assignment operator function for A
with the volatile
qualifier.
class A
{
public:
volatile A& operator = (const A& a) volatile
{
// assignment implementation
}
};
If you don't define an assignment operator for a class, C++ will create a default assignment operator of A& operator = (const A&);
. But it won't create a default assignment operator with the volatile
qualifier, so you need to explicitly define it.
I have encounted the same question. For example:
struct A { int i; }
volatile A a;
A b;
a = b; // C2678 here.
I found this method to resolve it:
const_cast<A &>(a) = b;