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

Что нужно подключить? - C++

Восстановить пароль Регистрация
 
Invader_Zim
Twilight Parasite
 Аватар для Invader_Zim
153 / 149 / 2
Регистрация: 21.07.2011
Сообщений: 907
08.11.2012, 00:55     Что нужно подключить? #1
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
33
34
#include <boost/serialization/string.hpp>
#include <boost/serialization/map.hpp> 
#include <boost/archive/binary_oarchive.hpp>
#include <boost/archive/binary_iarchive.hpp>
#include <sstream>
class MD{
private:
 
    
    friend class boost::serialization::access; 
 
    template <typename Archive> 
    void serialize(Archive &ar, const unsigned int version) { 
        ar & Name;
        ar & Type;
        ar & HostID;
        ar & Catalogue;
        ar & AnyData;
        ar & DataSize;
    }
public:
    std::string Name;
    std::string Type;
    unsigned long long HostID;
    std::map<unsigned long long,std::string> Catalogue;
    char *AnyData;
    size_t DataSize;
};
int main()
{
    MD M;
    std::stringstream file;
    boost::archive::binary_oarchive(file) << M;
}
на данный код компилятор ругается(Компилятор gcc 4.7.1):

In file included from /usr/local/include/boost/serialization/split_member.hpp:23:0,
from /usr/local/include/boost/serialization/nvp.hpp:33,
from /usr/local/include/boost/serialization/array.hpp:19,
from /usr/local/include/boost/archive/basic_binary_oprimitive.hpp:50,
from /usr/local/include/boost/archive/binary_oarchive_impl.hpp:22,
from /usr/local/include/boost/archive/binary_oarchive.hpp:21,
from Mind.h:19,
from main.cpp:1:
/usr/local/include/boost/serialization/access.hpp: In instantiation of «static void boost::serialization::access::serialize(Archive&, T&, unsigned int) [with Archive = boost::archive::binary_oarchive; T = char]»:
/usr/local/include/boost/serialization/serialization.hpp:69:5: required from «void boost::serialization::serialize(Archive&, T&, unsigned int) [with Archive = boost::archive::binary_oarchive; T = char]»
/usr/local/include/boost/serialization/serialization.hpp:128:9: required from «void boost::serialization::serialize_adl(Archive&, T&, unsigned int) [with Archive = boost::archive::binary_oarchive; T = char]»
/usr/local/include/boost/archive/detail/oserializer.hpp:148:5: required from «void boost::archive::detail::oserializer<Archive, T>::save_object_data(boost::archive::detail::basic_oarchive&, const void*) const [with Archive = boost::archive::binary_oarchive; T = char]»
/usr/local/include/boost/archive/detail/oserializer.hpp:101:1: required from «class boost::archive::detail::oserializer<boost::archive::binary_oarchive, char>»
/usr/local/include/boost/archive/detail/oserializer.hpp:214:5: required from «boost::archive::detail:ointer_oserializer<Archive, T>:ointer_oserializer() [with Archive = boost::archive::binary_oarchive; T = char]»
/usr/local/include/boost/serialization/singleton.hpp:106:7: [ skipping 19 instantiation contexts ]
/usr/local/include/boost/archive/detail/oserializer.hpp:525:5: required from «void boost::archive::save(Archive&, T&) [with Archive = boost::archive::binary_oarchive; T = const MD]»
/usr/local/include/boost/archive/detail/common_oarchive.hpp:69:9: required from «void boost::archive::detail::common_oarchive<Archive>::save_override(T&, int) [with T = const MD; Archive = boost::archive::binary_oarchive]»
/usr/local/include/boost/archive/basic_binary_oarchive.hpp:75:7: required from «void boost::archive::basic_binary_oarchive<Archive>::save_override(const T&, int) [with T = MD; Archive = boost::archive::binary_oarchive]»
/usr/local/include/boost/archive/binary_oarchive_impl.hpp:51:9: required from «void boost::archive::binary_oarchive_impl<Archive, Elem, Tr>::save_override(T&, int) [with T = MD; Archive = boost::archive::binary_oarchive; Elem = char; Tr = std::char_traits<char>]»
/usr/local/include/boost/archive/detail/interface_oarchive.hpp:63:9: required from «Archive& boost::archive::detail::interface_oarchive<Archive>::operator<<(T&) [with T = MD; Archive = boost::archive::binary_oarchive]»
main.cpp:32:43: required from here
/usr/local/include/boost/serialization/access.hpp:118:9: ошибка: запрос элемента «serialize» в «t», имеющего не классовый тип «char»

Подозреваю, что какой-то хедер не подключил, но какой?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.11.2012, 00:55     Что нужно подключить?
Посмотрите здесь:

C++ Нужно подключить эти асм модули под С++
Подскажите какую нужно подключить библиотеку C++
C++ Какую библиотеку нужно подключить для работы с динамическими массивами
Подскажите пожалуйста,что нужно сделать,что бы отображался русский язык?? C++
C++ Какой заголовочный файл нужно подключить чтобы стали доступны int32_t size_t ?
C++ парни нужно кое-что добавить (нужно что бы эта программа вычисляла среднее арифметическое чисел)
C++ Нужно сделать что бы давало рандомно числа и нужно написать ответ
Написал программу по смене слов в строке, но нужно что бы можно было вводить слова с клавиатуры.Что нужно ? C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
I.M.
 Аватар для I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
08.11.2012, 01:00     Что нужно подключить? #2
Мне кажется на char* ругается. Замените на std::string, если возможно
Invader_Zim
Twilight Parasite
 Аватар для Invader_Zim
153 / 149 / 2
Регистрация: 21.07.2011
Сообщений: 907
08.11.2012, 01:06  [ТС]     Что нужно подключить? #3
I.M., Таки да. На указатель ругалсо. Надо было поэлементно сериализовывать.
Yandex
Объявления
08.11.2012, 01:06     Что нужно подключить?
Ответ Создать тему
Опции темы

Текущее время: 05:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru