我知道這可能是一個愚蠢的問題,但我不知道如何正確描述它。 當我嘗試調用例如std::transform
功能,classname()是否等同於類對象?
template < class InputIterator, class OutputIterator, class UnaryOperator >
OutputIterator transform (InputIterator first1, InputIterator last1,
OutputIterator result, UnaryOperator op)
可以寫成UnaryOperator op;
,然後調用transform(..,..,.., op);
不過,我也看到有人寫的只是transform(..,..,..,UnaryOperator());
我的問題是:是不是真的classname()
相當於一個類對象嗎?
感謝,所以你的意思是,當你寫UnaryOperator()你是調用默認構造函數。 – SJinxin 2012-07-22 00:45:55
*表達式* UnaryOperator()總是一個右值。然而,相同的文本可以被解析爲聲明,具體取決於上下文。 – 2012-07-22 00:46:05
@ Cheersandhth.-Alf你說得對,在函數等待右值引用如'&&'(C++ 11)的情況下,正確的名稱是什麼? – 2012-07-22 00:57:36