我正在開發使用ODBC進行數據訪問的傳統C++應用程序。來自C#背景,我真的很想念ADO風格的數據訪問。我正在寫一個包裝(因爲我們實際上不能使用ADO)來使我們的數據訪問變得不那麼痛苦。這意味着沒有char
數組,沒有手動文本blob流,也沒有聲明列綁定。從C++函數中返回一個靈活的數據類型
我正在努力如何存儲/返回數據值。在C#中,至少可以聲明一個object
並將其轉換爲任何內容(只要該類型是可轉換的)。
我目前的C++解決方案是使用boost::any
將數據值存儲在自定義的DataColumnValue
對象中。這個類有轉換和賦值運算符到我們的應用程序中使用的各種類型(超過10)。這裏有一點複雜,因爲如果您在boost::any
中存儲int
並嘗試boost::any_cast<long>
,您將獲得boost::bad_any_cast
。客戶端對象不應該知道值是如何存儲在內部的。
有沒有人有任何經驗試圖存儲/返回其類型只在運行時知道的值?有更好的/更清潔的方式嗎?
這看起來好像在SO上會問得更好。 – 2011-02-07 23:24:33
你能解釋一下爲什麼?這個網站關於如果沒有編程相關的問題是什麼? – 2011-02-08 00:03:20