gpt4 book ai didi

c++ - 实现构造函数是否会阻止自动移动语义?

转载 作者:行者123 更新时间:2023-11-27 22:48:39 25 4
gpt4 key购买 nike

<分区>

我一直在阅读 C++11 的新移动语义,我不清楚使用自定义构造函数是否会阻止编译器自动向您的类添加移动语义。我不明白 5 的规则是否也包括像下面这样的简单类。

我有以下类(class):

class CodeFile
{
private:
std::vector<Function> functions;
//std::vector<std::wstring, unsigned long> variables;
std::vector<std::wstring> lines;
std::vector<unsigned char> constants;

public:
std::wstring directory;
std::wstring fileName;

void setFilePath(std::wstring filePath);
bool addFunction(Function function);
void Run();
void Finalize();

CodeFile(std::wstring filePath);
};

最后一行是构造函数。定义此构造函数是否会阻止编译器通过添加移动构造函数来优化类?

我应该改为如下声明该类吗?

class CodeFile
{
private:
std::vector<Function> functions;
//std::vector<std::wstring, unsigned long> variables;
std::vector<std::wstring> lines;
std::vector<unsigned char> constants;

public:
std::wstring directory;
std::wstring fileName;

void setFilePath(std::wstring filePath);
bool addFunction(Function function);
void Run();
void Finalize();
static CodeFile fromFile(std::wstring filePath);
};

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com