Класс Hashtable отсутствует в llvm libc ++ - PullRequest
0 голосов
/ 02 января 2019

Я делаю миграцию стандартной библиотеки в моих проектах Android с gnustl (libstdc ++) на llvm-libc ++. и в одном из проектов я получаю несколько ошибок отсутствующего заголовочного файла,

  fatal error: 'hashtable.h' file not found
#include "hashtable.h"
         ^~~~~~~~~~~~~
clang++.exe: error: clang frontend command failed due to signal (use -v to see invocation)
Android clang version 5.0.300080  (based on LLVM 5.0.300080)

Вывод предварительно обработанного файла показал, что этот файл предоставлен gnustl

.. f:/nugetcache/androidndk.16.1.1/sources/cxx-stl/gnu-libstdc++/4.9/include/backward\\hashtable.h

Но после того, как я перешел на libc ++, я не смог найти эквивалентный заголовок в libc ++. Этот заголовочный файл объявляет класс HashTable

template<class _Val, class _Key, class _HashFcn,
       class _ExtractKey, class _EqualKey, class _Alloc>
    class hashtable
    {...}

Я попытался найти этот заголовок и этот класс в коде libc ++, но ничего не смог найти. Я думаю, что это важный класс и должен быть предоставлен libc ++ в некоторой форме, но я не смог его идентифицировать.

Кто-нибудь сталкивался с ошибкой из-за этого несоответствия и каков рекомендуемый обходной путь?

Ответы [ 2 ]

0 голосов
/ 04 января 2019

libc ++ не содержит этот заголовочный файл и содержит более конкретные интерфейсы для разных классов карт.

Следовательно, @marshall был прав, указав на это, сказав, что этот заголовок нам вообще не нужен.

0 голосов
/ 03 января 2019

Я попытался найти этот заголовок и этот класс в коде libc ++, но ничего не смог найти.Я думаю, что это важный класс и должен быть предоставлен libc ++ в некоторой форме, но я не смог его идентифицировать.

Это расширение libstdc ++, перенесенное с 11 дней до C ++.

Если вы посмотрите на содержимое здесь , вы увидите, что вверху есть комментарий: Это внутренний файл заголовка, включенный другими заголовками библиотеки,Не пытайтесь использовать его напрямую.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...