2011-10-15 19 views

risposta

14

Il costruttore di std::string che prende un puntatore a char non è constexpr. Nelle funzioni constexpr è possibile utilizzare solo le funzioni constexpr.

+0

Grazie, non lo sapevo prima. – smallB

+2

+1 e la ragione per cui quel costruttore non può essere "constexpr" è che ha effetti collaterali (cioè allocazione) che non possono essere eseguiti in fase di compilazione. –

+0

Ma non pensi che questo sia (questo particolare esempio) un po 'sciocco? la stringa letterale è const, quindi penso che il codificatore di string debba essere reso constexpr in modo da consentire tali costrutti in futuro. – smallB

Problemi correlati