gpt4 book ai didi

c++ - 当 T 为 'const std::map' 时,如何获取 const_iterator?

转载 作者:行者123 更新时间:2023-12-01 23:13:44 26 4
gpt4 key购买 nike

我有以下结构:

template<typename T>
struct Foo
{
typename T::iterator iter;
};

预期类型:

  • iterstd::map<K, V>::iterator什么时候T推导为 std::map<K, V> .

  • iterstd::map<K, V>::const_iterator什么时候T推导为 const std::map<K, V>

但我的代码总是得到 std::map<K, V>::iterator .

如何实现预期的执行?

最佳答案

您可以提供 std::conditional输入:

#include <type_traits>  // std::conditional_t

template<typename T>
struct Foo {
using iter = std::conditional_t<std::is_const_v<T>
, typename T::const_iterator
, typename T::iterator>;
};

关于c++ - 当 T 为 'const std::map' 时,如何获取 const_iterator?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69358555/

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