gpt4 book ai didi

c++ - 将推断类型传递给 std::find_if lambda 函数

转载 作者:搜寻专家 更新时间:2023-10-30 23:58:03 27 4
gpt4 key购买 nike

我有以下代码。我试图消除将 localization_data_t::language_t 类型显式传递到 lambda 参数的需要。

auto language_itr = std::find_if(languages.begin(), languages.end(), [&](const localization_data_t::language_t& language)
{
return language.code == language_code;
});

我假设有一种方法可以做到这一点,因为编译器可以通过迭代器的基础类型派生出要迭代的对象的类型。然而,我在旅行中没有发现这样的例子。

如有任何帮助,我们将不胜感激。

最佳答案

您可以在 C++11 中使用 decltype:

auto result = std::find_if(v.begin(), v.end(), [](const decltype(*v.begin())& t) { /*   */ });

在 C++1y 中,您可以只使用 auto

auto result = std::find_if(v.begin(), v.end(), [](const auto& t) { /*   */ });

还有 std::iterator_traits 但它更冗长。

关于c++ - 将推断类型传递给 std::find_if lambda 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22082847/

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