[問題] 最佳化
請教大家
假設因為某需求,須在函數一開始執行一些程式碼,
在函數結束後執行 inverse 的程式碼。
舉簡單例子(大概的程式碼,沒編譯,語法可能錯)
class A {
public:
static int x;
class B {
public:
static int &x; // 假設在 cpp 已經把他變成 A::x 的引用了。
B() { ++x; }
~B() { --x; }
};
int run {
B temp;
接下來進行許多與 x 有關的計算,可能會,也可能不會改變 x 的值。
但絕對不會寫到關於 B temp 的程式碼。
return x;
}
};
因為我是想讓解構的時候去執行 inverse 的動作,
但只能在函數return已經結束後執行。
想請問有沒有可能哪個編譯器
會因為中間運算沒有寫到 B temp 而去把 B temp 提前 release 或根本不產生嗎?
手邊編譯器實驗過是不會。
謝謝大家
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.110.136.52
→
02/23 00:17, , 1F
02/23 00:17, 1F
推
02/23 00:22, , 2F
02/23 00:22, 2F
→
02/23 00:23, , 3F
02/23 00:23, 3F
→
02/23 00:31, , 4F
02/23 00:31, 4F
→
02/24 21:35, , 5F
02/24 21:35, 5F
→
02/24 22:13, , 6F
02/24 22:13, 6F
→
02/24 22:15, , 7F
02/24 22:15, 7F
→
02/24 22:15, , 8F
02/24 22:15, 8F