Ho questa funzione piuttosto semplice, ho alcuni valori che devono essere calcolati ma solo una volta e il momento migliore sarebbe in fase di compilazione. Questi valori sono importanti solo all'interno di questa funzione. E 'un buon uso di constexpr o dovrei semplicemente dichiararli const statici?Devo usare constexpr in questo modo?
ps So che la differenza di prestazioni è così piccola da non avere importanza, ma voglio farlo in modo "criptato".
void MainWindow::UpdateDateTimes()
{
// for some dumb reason DateTime only has add seconds method
// so we have to calculate the seconds per hour and the number of hours
// we do this with static constant values so that the calculations
// only happen once.
static constexpr const int secsPerHour = 60 * 60;
static constexpr const int cdtOffsetHours = -5;
static constexpr const int edtOffsetHours = -4;
static constexpr const int cetOffsetHours = 2;
static constexpr const int cdtOffsetSecs = secsPerHour * cdtOffsetHours;
static constexpr const int edtOffsetSecs = secsPerHour * edtOffsetHours;
static constexpr const int cetOffsetSecs = secsPerHour * cetOffsetHours;
QDateTime time(QDateTime::currentDateTimeUtc());
ui->mTimeLocal->setDateTime(time.toLocalTime());
ui->mTimeCDT->setDateTime(time.addSecs(cdtOffsetSecs));
ui->mTimeEDT->setDateTime(time.addSecs(edtOffsetSecs));
ui->mTimeCET->setDateTime(time.addSecs(cetOffsetSecs));
}
'constexpr' implica' const'. – Xeo
'const int' è sufficiente per ogni, ma' constexpr int' potrebbe essere più esplicito. Per favore non mescolare i due. – ipc
Non è un const int creato e distrutto ogni volta che viene chiamata la funzione, e quindi devono essere fatti anche i calcoli? So che può essere ottimizzato, ma voglio correggerlo così il codice dice esattamente quello che sto insinuando. – EddieV223