According to this webpage, a non-static member function can have a trailing &
or &&
in its declaration. They have the following example
struct S {
virtual int f(char) const, g(int) &&; // declares two non-static member functions
};
1) Does the signature of the second function include the virtual
?
virtual int g(int) &&
2) What is the meaning of the trailing &&
?
struct S {
virtual int f(char) const, g(int) &&;
};
struct D : S {
virtual int f(char) const override;
virtual int g(int) && override;
};
the above code compiles in both g++ and clang. This indicates, at least in practice, that g
is virtual
in S
.
See What is "rvalue reference for *this"? for your other question.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With