2015-10-20 50 views
-3

是否有任何寫作方式如果作爲C++中的函數? 我不確定我是否寫正確的問題。代表是否在C++中作爲函數

int sum(int a, int b) 
int total; 
total = a + b; 
return total; 

所以這是總和功能,我該怎麼寫呢如果那樣呢?

+2

你能說明你打算如何使用它嗎?另外,你的函數缺少一些大括號'{}'。您可能能夠脫離謂詞/函數對象.... –

回答

1

這樣的事情?

void if_else(bool cond, std::function<void()> if_, std::function<void()> else_) { 
    cond ? if_() : else_(); 
} 

即使到那裏仍然是在三元運算符的形式if/else語句...

這一次可能是另一種解決方案:

void if_else(bool cond, std::function<void()> if_, std::function<void()> else_) { 
    (cond && ([&]() { if_(); return true; })()) || else_(); 
} 

我不知道關於第二個,主要是因爲立即執行的函數的定義,但我想這個想法很清楚。

+0

您正在從void函數返回一個值。 – NathanOliver

+0

你說得對,讓我放棄回報。 – skypjack

相關問題