1
雖然我認爲它不會是一個很好的做法,我使用的編譯器(包括GNU和鐺)似乎讓類似下面的大括號或相等的初始化
int f() {return 11;}
class A {
int a = f();
public:
int tell_me() {return a;}
};
即其中通過調用完全無關的函數來進行括號或相等的初始化。
這是正確的,並允許由標準? 執行f()
最終引入的附帶效應如何?
由於優化,編譯器可能會用11替換f(),如果不進行優化,就像user2079303回答一樣。 – 2015-04-02 08:59:35
你可以使用[constexpr說明符](http://en.cppreference.com/w/cpp/language/constexpr),編譯器可以在編譯時進行評估。 – 2015-04-02 09:13:10