У GCC unordered_map кривой
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 08.10.24 18:49
Оценка: -1 :)
Здравствуйте!

Столкнулся с таким, когда в структуре захотел сделать unordered_map из самих себя. Говорит incomplete type.

#include <iostream>
#include <string>
#include <unordered_map>
#include <map>

struct A
{
    std::unordered_map<std::string, A>  m;
    //std::map<std::string, A>  m;
};


int main()
{
    A a;
    a.m["aaa"] = A();
    return 0;
}

error: 'std::pair<_T1, _T2>::second' has incomplete type


https://godbolt.org/z/dqv6n8K1M

MSVC нормально собирает.

Это баг в стандартной реализации у GCC или так и должно быть? Проверил на GCC 13.2 — там тоже есть
Маньяк Робокряк колесит по городу
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.