據this頁,有五種方式分配的東西轉換爲字符串:我可以分配雙重字符串?
string (1) string& operator= (const string& str);
c-string (2) string& operator= (const char* s);
character (3) string& operator= (char c);
initializer list (4) string& operator= (initializer_list<char> il);
move (5) string& operator= (string&& str) noexcept;
那爲什麼我能編譯下面的文字?編譯器使用了哪個選項?
#include <iostream>
#include <string>
int main()
{
std::string s;
double d = 1.0;
s = d;
std::cout << s << std::endl;
}
這是不是隻是一個毫無意義的問題 - 我花了很長時間試圖找到我的代碼這個s = d
分配。當然應該是s = std::to_string(d)
。
編譯器:GCC 4.8.4。
什麼印刷?什麼是's'? –
你真的指的是分配還是你的意思是**轉換成double到string? – Alex
@Alex - 這是分配在我的代碼 – HEKTO