首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在共享内存boost中复制char*

在共享内存boost中复制char*
EN

Stack Overflow用户
提问于 2011-02-02 02:16:41
回答 1查看 648关注 0票数 0

我想知道我是否可以在一个文件(使用boost的共享内存)中写入char*。我已经创建了一个模板,使用"int“和"string”可以很好地工作,但是使用char*,当我执行程序时,我可以在内存中访问它们,但是数据不会像int和string那样存储在文件中。

代码的代表性部分将是:(T将是char*)

代码语言:javascript
复制
//DECLARATIONS
MyMap *mymap;
managed_mapped_file seg = managed_mapped_file(open_or_create, tableName, tablesize);
mymap = seg->find_or_construct<MyMap>("MyMap")      //object name
            (std::less<T>() //first  constructor parameter
            ,*alloc_inst);    //second constructor parameter

//THE METHOD TO ADD THE ENTRIES
template<class T>
void ShareDB<T>::add_ref_info_to_db (const T &Symbol_Index , const std::string &a_info){

MyMap::iterator res =  mymap->find(Symbol_Index);

mymap->insert(std::pair<const T, shared_string>(Symbol_Index, localSymbol));

所以我像这样调用模板:

代码语言:javascript
复制
ShareDB <char *> ex;
ex.openDB(dataBaseName,"TestMutex", 196608, true);
ex.add_ref_info_to_db (a,ex.RefInfoRecord);

也许只是因为我不会写指针…我不确定…

提前感谢

EN

回答 1

Stack Overflow用户

发布于 2011-02-02 02:30:47

考虑template<typename T>而不是template<class T> ...但是,除非您必须特别支持char *,否则我会简单地使用std::string

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4866367

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档