我剛纔看到this really nice talkRock Hard:C++ Evolving作者:Boris Jabes。在關於高階泛型編程談話的部分他說,下面是一個函數,是關於它的返回類型更通用的例子,並導致更少的模板函數重載C++ 11 decltype的啓發性用法
template <typename Func>
auto deduce(const Func & f) -> decltype(f())
{..}
這然而,可以使用普通的模板語法如下
template <typename Func>
Func deduce(const Func & f)
{..}
,所以我想選擇不真正展現decltype
的獨特的電源的例子來實現。任何人都可以舉一個這樣的例子嗎啓發使用decltype
?
號的第一個例子是指'''推斷(F)'''返回'''Func'''的結果的類型。第二個例子意味着'''推斷(f)'''返回'''Func'''。你看得到差別嗎? –
啊,對不起,我錯過了'decltype'參數內的額外'()'。我的錯。 –