C调用临时对象的函数

例如:

private:
    std::vector<std::string> _content;
public:
    Document (const std::string& path) :_content(FileIO().read(path)) { }

是否可以使用“临时”对象(FileIO())直接调用函数(read())?
我问,因为它看起来很方便,但我以前从未见过这样的代码.只是想知道这是否是“有效”的C代码,而不是一些奇怪的反模式或性能“不行”.

解决方法:

没关系. path是明确定义的,匿名临时在成员_content初始化期间有效.

您应该注意,如果FileIO()抛出异常.read(path)则不会调用~Document().

上一篇:c:临时的特殊行为


下一篇:c – const引用类成员是否延长了临时生命?