Форум программистов, компьютерный форум CyberForum.ru

Собственный аллокатор и unordered_map - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ нужен алгоритм для работы счетчика http://www.cyberforum.ru/cpp-beginners/thread1126453.html
Нужен алгоритм для работы счетчика AES-128 и AES-256 структура как они работают для получения информации с одной точки в другую не выходя из организации своей.
C++ Не работает отрисовка графики в консольной змейке Доброго времени суток! Я уже битый час мучаюсь над одним куском моего кода, понимаю, что ошибка где-то в координатах, помогите пожалуйста! Без графики все работает! #include <iostream> #include <time.h> #include <stdio.h> #include <windows.h> #include <conio.h> #include <stdlib.h> http://www.cyberforum.ru/cpp-beginners/thread1126452.html
Составить блок-схему к программе C++
Составте пожалуйста блок-схему к программе #include "conio.h" #include <iostream> #include <stdlib.h> #include <stdio.h> #include "clocale" //русский язык #include <iomanip> // расширение функционала iostream, // в частности setw() using namespace std; int main()
C++ Как установить и запустить C++
В инете скачал несколько С++, по-моему не то скачивал. Как его установить и по какому запросу искать
C++ Не запускается программа http://www.cyberforum.ru/cpp-beginners/thread1126428.html
#include <graphics.h> int main() { initwindow(400,300); // îòêðûòü îêíî äëÿ ãðàôèêè // ðàçìåðîì 400 íà 300 ïèêñåëåé moveto(0,0); // êóðñîð â òî÷êó (0,0) lineto(50,50); // îòðåçîê â òî÷êó (50,50) getch(); // æäàòü íàæàòèÿ íà ëþáóþ êëàâèøó closegraph(); // çàêðûòü îêíî ñ ãðàôèêîé return 0;
C++ С++11 и С++14 FAQ На сайте http://isocpp.org/ был опубликован анонс нового C++ FAQ. Материал довольно объемный и содержит разделы для начинающих, вопросы по особенностям языка, обзоры стандартов С++11 и С++14 и другое. Покрыты и холиварые вопросы типа "Почему С++ лучше/хуже других языков", "Какую книгу выбрать" и прочее. Анонс: http://isocpp.org/blog/2014/03/faq FAQ: http://isocpp.org/faq Рекомендую к... подробнее

Показать сообщение отдельно
Surgery
3 / 3 / 0
Регистрация: 28.09.2013
Сообщений: 32
22.03.2014, 11:30     Собственный аллокатор и unordered_map
Имеется свой аллокатор. Для простоты приведу здесь максимально простой вариант, что бы не вводить лишние сущности, проблема с ним та же.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
class myallocator : public std::allocator<T>
{
public:
    typedef size_t size_type;
    typedef T* pointer;
    typedef const T* const_pointer;
 
    template<typename _Tp1>
    struct rebind
    {
        typedef myallocator<_Tp1> other;
    };
 
    inline pointer allocate(size_type n)
    {
        return (pointer)(::operator new(n * sizeof(T)));
    }
 
    inline pointer allocate(size_type n, const void *hint)
    {
        return (pointer)(::operator new(n * sizeof(T)));
    }
 
    inline void deallocate(pointer p, size_type n)
    {
        ::operator delete(ptr);
    }
 
    myallocator() throw() : std::allocator<T>() { }
    myallocator(const myallocator &a) throw() : std::allocator<T>(a) { }
    ~myallocator() throw() { }
};
При использовании его с basic_string, vector все работает нормально. При использовании с unordered_map, вот так:
C++
1
2
3
template <class Kty, class ValTy> using fast_hash_map = std::unordered_map<Kty, ValTy, std::hash<Kty>, std::equal_to<Kty>, myallocator<std::pair<Kty, ValTy> > >;
//....
fast_hash_map<std::string, unsigned> map;
компилятор выдает ошибку
error C2664: "myallocator<_Newfirst>::myallocator(const myallocator<_Newfirst> &) throw()": невозможно преобразовать аргумент 1 из "const myallocator<std:: pair<astring,unsigned int>>" в "const myallocator<_Newfirst> &" C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xmemory0 817
, ссылаясь на
C++
1
2
3
4
5
template<class _Other>
        _Wrap_alloc(const _Other& _Right) _THROW0()
        : _Mybase(_Right)
        {   // construct from a related allocator
        }
в библиотечном xmemory0.
Использую Visual Studio 2013. Просьба подсказать, что с моим несчастным аллокатором не так
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 17:57. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru