我知道这可能是一个愚蠢的问题,但我不知道如何正确描述它。 当我尝试调用例如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