gpt4 book ai didi

c++ - 从 'unsigned int'到 'int'的转换需要缩小转换

转载 作者:行者123 更新时间:2023-12-02 10:50:50 25 4
gpt4 key购买 nike

我的代码包括以下内容,并且根据下面的最后一行,我收到了上面的错误消息。

struct List {
int word_i;
int mod_i;
char mod_type;
char mod_char;
};

struct Morph {
Options mode;
deque<List> search_list;
vector<string> dictionary;
vector<bool> discovered;
string output;
int sel_word_i = 0;
bool end_found = 0;
};

// later on in a function:
morph->search_list.push_back({ morph->dictionary.size() - 1, 0, 0, 0 });

最佳答案

您可以将最后一行替换为:

morph->search_list.emplace_back( morph->dictionary.size() - 1, 0, 0, 0 );
因此,对象不是通过括号初始化创建的,括号初始化不允许缩小转换。
缩小转换是从调用的返回值到 size,后者返回无符号的 std::size_t
有关为什么 size() - 1不转换为带符号值的原因,请参见: C++ Implicit Conversion (Signed + Unsigned)

关于c++ - 从 'unsigned int'到 'int'的转换需要缩小转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63913022/

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