: 耐心去看錯誤訊息也是一種學習的必經之路,
: 如果因為 compiler 吐了十幾頁 error 就被嚇到的話,
: 那就表示還必須再多磨練,
: 其實基礎夠穩的話那些也只不過是數量多而已。
template 的 error message 乍看之下真的很嚇人,
但是其實仔細去看,會發現真正需要用到的資訊通常只是一兩句話而已
當然,這不是表示多數的 message 都是無用的,有時候那些還是必要的
template 的複雜度原本就是這麼高,所以會有這樣的訊息是必然的
真的也只能說,多多磨練看久了就會習慣了
不過我個人覺得可以多換幾個 compiler 看不同的錯誤訊息
每個 compiler 會報的角度都不太一樣,交互參考更容易抓到問題重心
: 我也很好奇使用非 open source 的 compiler 做這些事的人,
: 是怎麼樣去解決的。
就像上面所說的,如果所得錯誤訊息過於神秘難解,換個 compiler
看不同角度的報告,可以較為快速釐清問題所在
再沒頭緒的話,也就真的只能 try & error 了
也不見得是毫無意義的行為,換個做法看訊息的差異,也能從中尋找原本的問題
:>常常會困在說「是compiler剛好不支援這樣寫的方式,還是我寫的方式本來就不合法」
基本上除非是用太舊的 compiler, 不然我是沒碰過 compiler 不支援的情況
或是那種非標準的特殊用法,例如現在有人在提案的 variadic template
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n2087.pdf
template<typename...Args> class tuple { /* implementation */ };
像是這種東西,我記得有聽說哪個 compiler 有支援,
但我相信多數 compiler 是不支援的
: > 因為實際是找不到方法,所以....想在此請教曾經有克服這段經驗的大大....
: > 我在猜我是不是學習的方法有什麼嚴重錯誤而不自知??
: 學會看懂所有錯誤訊息是第一步吧,
: 我想這點應該沒什麼爭議,
: 另外就是不要先懷疑 compiler 沒支援。
同意… :o
: > 希望 能夠 在 Modern C++ Design 讀書會下,透過大家一起討論的方式,
: > 理想是能夠抓住GoF的方法,把Modern C++ Design 的精隨舉一反三的方式
: > 可以實際的把這精巧的元素 真的直接用於 系統的開發上。
: > ........感恩.....
其實我覺得 Loki 跟 design pattern 的關聯並不是很大
design pattern 只是概念而已,Loki 則是概念和實作的組合
像是 Loki 0.1.4 和 0.1.5 就沒增加什麼跟 dp 有關係的東西
Pimpl, 這個也只是在 C++ 中比較有意義的實作手法,在動態連結的語言中根本就無用
LockingPtr, 這個也只是 C++ 專屬的實作技巧,徹頭徹尾的 C++ 技巧
還有 ScopeGuard, SafeFormat, 等等,都跟 dp 無關…
--
Nobody can take anything away from him.
Nor can anyone give anything to him.
What came from the sea,
has returned to the sea.
Chrono Cross
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 125.232.0.188