codice di errore è C2131.statico constexpr char m_pszFoo [] = "*** FOO ***" ha errore di compilazione espressione non valutata costante
intelisense non si lamenta anche quando chiamo size su questa variabile in altri file intelisense conosce la dimensione. cosa mi manca per farlo funzionare? Qualsiasi aiuto è molto apprezzato. Nella foto qui sotto vedi intelisense non lamentarsi e anche determinare le dimensioni.
esempio a.h:
class a
{
private:
static constexpr char m_pszFoo[] = "***FOO***"; // compile error on this line C2131 expression did not evaluate to a constant
public:
a() { sizeof(m_pszFoo); }; // no compile error here
};
per riprodurre tutto quello che dovete fare è includere a.h in qualsiasi altro file. Non si riprodurrà senza l'inclusione.
@NathanOliver verrified l'esempio di cui sopra in msvc 2015 14.0.24720.00 aggiornamento 1 – user1881587
posso confermare che non viene compilato in MSVS. Sia clang che gcc compilano. – NathanOliver
provare a creare il costruttore 'constexpr' –