Code: Select all
g++ -std=gnu++17 -Werror -Wall -Wextra
Der folgende Code erfasst ohne Vorwarnung:
Code: Select all
struct Mutable {
int x;
};
class State {
public:
constexpr const Mutable &Immutable() const {
return mutable_;
}
private:
Mutable mutable_;
} state_instance;
Der Constexpr bedeutet im Wesentlichen bedeutet, dass die Mitgliedsfunktion zum Kompilieren der Kompilierung bewertet werden kann. /> Der zweite Const < /code> bedeutet, dass die Mitgliedsfunktion verspricht, keine Mitgliedsvariablen zu mutieren. /> Wie verwendet ein Contexpr für eine nicht-konstete Mitgliedsfunktion?>