假設我有一個字符串,例如string values = "hello 2 88.9 true"
,它包含多個不同類型的值。我有幾個變量是用適當的類型聲明的(這裏是一個字符串,一個int,一個float和一個bool)。我基本上想要做的是這樣的:解析類型名稱
field0 = getValue(0,values);
field1 = getValue(1,values);
... etc
所以,我要的是一個getValue
返回類型對應的字段類型相匹配。這是簡單的模板可能嗎?我覺得你不能在模板函數的參數中指定你想要使用的返回類型,而不需要使用模板類型。 函數本身可能會使用boost的lexical_cast和一個stringstream,但如果你有更好的解決方案,我也爲此而努力!
我是新來的模板,所以我非常感激的解釋...
看起來粘粘d,謝謝!是否有其他類型,如布爾不會被stringstream處理?字符串'values'實際上來自TCP端口,我不應該知道我在運行前收到了什麼。但我不希望有一個不愉快的驚喜,所以我希望代碼儘可能通用。 – wrousseau
請注意,如果您的輸入爲「1 2.3 true」,而第一個字符串字段不存在,則變量a,b,c和d將分別爲1,2,0.3,true。但是由於投入不健全,因此沒有正確的解釋方法。 –