開發平台(Platform): (Ex: Win10, Linux, ...)
Linux
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
GCC
最近看到一個例子不太懂這是c++的甚麼機制讓他產生暫時物件的
#include <iostream>
#include <string>
using namespace std;
int main(){
pair<const string,int> data = {"123",5};
const pair<string,int> &ref = data;
}
我看文章說因為data的first是const可是ref的first沒有const但是編譯器
不會讓他編譯錯誤會產生暫時物件.
1.可是這邊我就不懂了,是甚麼機制讓他產生暫時物件的?有這機制的名稱嗎??
還有為何不讓他編譯錯誤要幫他產生暫時物件??
2.這種暫時物件新手蠻容易犯錯的,
有比較好的方式可以幫助我們確認是否產生暫時物件嗎??
我知道書上推薦用auto不過如果先不考慮auto有甚麼方法確認嗎??
感謝各位
※ 編輯: WangDaMing (111.248.244.154 臺灣), 01/10/2022 22:18:42