Skip to content

Missed const qualifier in structured binding #116

@Kurkin

Description

@Kurkin
#include <string>
#include <unordered_map>

using namespace std;

int main()
{
    unordered_map<string, string> m;
    for (auto & [key, value] : m) {
      
    }
}
#include <string>
#include <unordered_map>

using namespace std;

int main()
{
  unordered_map<std::string, std::string> m = std::unordered_map<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::hash<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >();
  {
    std::unordered_map<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::hash<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > & __range1 = m;
    std::__detail::_Node_iterator<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, 0, 1> __begin1 = __range1.begin();
    std::__detail::_Node_iterator<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, 0, 1> __end1 = __range1.end();
    
    for( ; std::__detail::operator!=(__begin1, __end1); __begin1.operator++() )
    {
      std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > & __operator9 = __begin1.operator*();
      std::basic_string<char, std::char_traits<char>, std::allocator<char> >& key = std::get<0ul>(__operator9); // missed const qualifier for key 
      std::basic_string<char, std::char_traits<char>, std::allocator<char> >& value = std::get<1ul>(__operator9);
    }
  }
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions