Próba utworzenia elementu struct z atrybutem constexpr bez statycznego skutkuje błędem kompilatora (patrz poniżej). Dlaczego? dla pojedynczej stałej wartości mam tę wartość w pamięci, aż program zostanie zakończony zamiast tylko zakresu struct? powinienem wrócić do korzystania z makra?Dlaczego constexpr musi być statyczny?
struct foo
{
constexpr int n = 10;
// ...
};
error: non-static data member cannot be constexpr; did you intend to make it static?
Cóż, skopiowanie go nie miałoby większego sensu. – Ben
Znacznie lepiej raz w pamięci statycznej niż wiele razy, po jednym w każdym wystąpieniu struktury. – chris
Dlaczego miałbyś mieć kopię "constexpr" dla każdego obiektu? –