選擇 MFC 還是 STL 取決於:專案類型、團隊熟悉度、可攜性需求、效能考量。沒有絕對優劣,適合即好。
作者開發命令列工具 RECYCLE,初用 MFC 控制台模板(CString, CStringList),後發現僅為字串處理卻須連結整個 MFC,映射檔顯示載入大量模組。改用 STL (string, list) 後:
typedef list<string> CStringList、迭代器取代 POSITION)。string::c_str() 需顯式呼叫,不如 CString 隱性轉換 LPCTSTR 方便,但避免隱性轉換帶來的型別混淆。術語抽象(迭代器、配接器、仿函數)、模板程式碼難閱讀,類 Unix 風格:難學但強大。建議參考 SGI STL 官網:https://www.sgi.com/Technology/STL/。
若團隊熟 MFC 且專案綁定 Windows,用 MFC 無妥;追求跨平台、輕量、標準化,STL 為佳選。兩者可混用,關鍵在介面邊界處理。