Lepiej zastąpićCzy zawsze, gdy to możliwe, należy zamienić "const int" na "constexpr int" w C++ 11?
const int one = 1;
const int two = 2;
z tym?
constexpr int one = 1;
constexpr int two = 2;
Czy dobrze rozumiem, że oba bloki są semantycznie identyczne i że jest to obecnie tylko kwestia gustu?
Z drugiej strony, jako constexpr
oznacza const
, można argumentować, że bardziej konsekwentnie jest zawsze preferować bardziej restrykcyjną formę, nawet w banalnych sytuacjach, w których nie ma to znaczenia?
(Rozumiem, że sytuacja całkowicie się zmienia, gdy wyrażenie po prawej stronie może być bardziej skomplikowane. W celu wyjaśnienia pytanie skupia się tylko na najbardziej prostym przypadku, w którym wyrażenie jest stałą liczbą całkowitą.)
Jedyne, co mogę wymyślić, to jeśli określasz coś podobnego do API, możesz zdecydować się na użycie 'const int' do przechowywania stałego wyrażenia, ponieważ ta właściwość może nie być dostępna w przyszłych wersjach. – Pubby