Я в основном программист на R, и я использую Rcpp для запуска реализации хэш-карты Малте Скарупке под названием ska :: flat_hash_map в Windows 10 через RStudio (Microsoft OpenR).Компилятор C ++ - это g ++, запускаемый с флагами c11.
Без изменений в его файле .hpp, я не могу запустить его, так как он выдает ошибку
Line 276 no type named 'hash_policy' in 'struct std::hash<char>'
Строка с ошибкой в flat_hash_map.hpp:
template<typename T>
struct HashPolicySelector<T, void_t<typename T::hash_policy>>
{
typedef typename T::hash_policy type;
};
Я нашел несколько тестовых библиотек на github, которые, кажется, включают библиотеку без проблем и имеют к ней доступ как std :: unordered_map, поэтому я не понимаю, почему у меня возникают проблемы с его запуском.
Я также попытался предоставить разные типы вместо char, придерживаясь тех, которые std :: hash должен обрабатывать автоматически, таких как int и std :: string.
Мой исходный файл действительно прост, поскольку я буквально просто пытаюсь создать хеш-карту, например, мой последний запуск использовал это:
#include <Rcpp.h>
#include "flat_hash_map.hpp"
using namespace Rcpp;
// [[Rcpp::plugins(cpp11)]]
// [[Rcpp::export]]
void run_test()
{
ska::flat_hash_map<char,char> test_map;
}
Я надеюськто-то с большим опытом C ++, чем я, мог бы пролить свет на проблему или попробовать запустить библиотеку самостоятельно, если проблема воспроизводима.
Спасибо за помощь!Это также мой первый пост в StackOverflow, пожалуйста, дайте мне знать, если я могу что-то сделать, чтобы улучшить свой вопрос.