2013-01-24 58 views
1

我想寫這種類型的函數:如何編寫接受未知類型和參數個數的C++函數?

void Print(void* args ...) 
{ 
    while(args) 
    cout<<args[i]; 
} 

的funcdtion應該處理int和(的std :: string或字符*)

這可能嗎?

+2

你想達到什麼目的? –

+0

將變量類型/參數個數連接到一個字符串 – itamar

+0

我不確定'std :: initializer_list'是否可以工作。我使用了C++ 11的功能。但你可以試試 –

回答

6

你可以用可變參數模板做到這一點:

void Print() { } 

template <typename T, typename ...Args> 
void Print(T const & t, Args const &... args) 
{ 
    cout << t; 
    Print(args...); 
} 
+0

'std :: initializer_list'呢? –

+0

@NeelBasu:那該怎麼辦?想想'Print(5,「Hello」);'...... –

+2

@NeelBasu:單一類型,限制你如何調用它。 –

相關問題