指定返回类型时为什么不能自动推断类型?

问题描述 投票:0回答:1

MRE:

std::vector<std::string> someFunction() {
    auto vec;
    return vec;
}

什么阻止“自动”将

vec
的类型推断为
std::vector<std::string>

c++ type-inference auto
1个回答
0
投票

将函数的返回类型设置为

vector<string>
并不一定意味着您将在此函数中使用的每个向量都是字符串类型的向量。

如果要使用

auto
关键字声明变量,则必须初始化该变量。示例:
auto x = 42; // x is inferred to be an int

所以要解决这个问题,你应该明确指定向量的类型

vec

© www.soinside.com 2019 - 2024. All rights reserved.