为什么要move进来呢,接口里面滥用move就是找死吧,不要因为move能提高性能就到处用,除非明确是瓶颈。
【 在 bihai 的大作中提到: 】
:
: 有一个类我需要加一个有默认值的参数,一般调用时使用的都是字符串const char\[\]作为参数,就是原来的Type::NAME_。现在需要有的时候传入别的名字。
: template <Type>
: class A {
: public:
: A(X x, std::string name = Type::NAME_):A(.., std::move(name)){}
: A(X x, ..., std::string name):b_(..., std::move(name)){
: b_.emplace(,,std::move(name));
: }
: private:
: B b_;
: };
:
: class B {
: public:
: B(..., std::string name):name_(std::move(name)),c_(...){
: c_->Add(name_); // was Add(Type::NAME_);
: }
: ~B(){c_->Remove(name_); // was Remove(Type::NAME_);
: private:
: std::string name_;
: C* c_;
: }
:
: 使用的时候,原来A a(...);即可,现在A a(..., "dfddf");
:
: 问题是,我在哪里需要std::move?函数定义需要吗?
: --
发自「今日水木 on 钛星」
--
FROM 222.129.49.*