小编man*_*l34的帖子

何时使用右值引用

所以基本上我的问题是:我什么时候应该使用右值引用?在这个例子中,我正在处理一个记录器类(它只是将事情记录到控制台......)。我有不同的功能来记录不同日志级别的消息。他们接受一个 std::string 作为参数。我应该有每个函数的两个版本,第一个用于“正常”引用,第二个用于右值引用?

namespace lnr
{
    class logger
    {
    public:
        logger(const string& name);
        logger(const string&& name);
        ~logger() = default;

        const void trace(const string& message) const;
        const void trace(const string&& message) const;
        const void info(const string& message) const;
        const void info(const string&& message) const;
        const void warn(const string& message) const;
        const void warn(const string&& message) const;
        const void error(const string& message) const;
        const void error(const string&& message) const;


    private:
        const string name;
    };
}
Run Code Online (Sandbox Code Playgroud)

因为用两者记录一些东西是很常见的

logger.trace("Hello");
Run Code Online (Sandbox Code Playgroud)

std::string error_message = "..."; …
Run Code Online (Sandbox Code Playgroud)

c++ parameters rvalue rvalue-reference

2
推荐指数
1
解决办法
80
查看次数

标签 统计

c++ ×1

parameters ×1

rvalue ×1

rvalue-reference ×1