作者yoco315 (眠月)
看板C_and_CPP
標題Re: [語法] 請問回傳值形態不同,函數如何宣告
時間Tue May 11 21:38:06 2010
※ 引述《a77d4e06 (喵~>"<||)》之銘言:
: 如題,
: 請問我同一個函數要回傳一個字串或是一個數值,
: 那該函數要設甚麼形態呢??
如果可以接受知其然不知其所以然的話,
那可以直接使用 boost::any 就好了。
#include <boost/any.hpp>
boost::any f ( int t ) {
if ( n == t ) return std::string("abc") ;
else return 123 ;
}
int main () {
std::string s = boost::any_cast<std::string>(f(0)) ;
int n = boost::any_cast<int >(f(1)) ;
}
--
To iterate is human, to recurse, divine.
遞迴只應天上有, 凡人該當用迴圈. L. Peter Deutsch
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.160.115.219
→ james732:boost真是充滿了無限的可能.... 05/11 21:40
推 tomap41017:看完浮現....X...這三小@@" 05/11 21:51
推 VictorTom:這是C++這不是C, 這是C++這不是C.... (哭著跑開Q_Q~) 05/11 22:04
推 loveme00835:真想知道他的實作... 05/11 22:15
→ james732:boost的原始碼都是開放的 去下載來看吧 XD 05/11 22:16
推 jmren:請問.hpp這是什麼格式的檔案@@ 05/11 22:33
→ james732:跟 .h 的意思差不多 05/11 22:33
推 DBoyX:最後還是 cast 成特殊型態.. 那也可以傳個 void* 不是嗎? 05/11 22:38
推 ilovebbs:其實感覺都差不多就是.... 05/11 22:41
→ tabinoyume:if ( n == t ) n的來源是?? 05/12 00:49
推 ilovebbs:就跟之前的例子一樣,自己設個條件來判斷要傳啥 05/12 10:44