gpt4 book ai didi

c++ - 如何在c++中获取 map 类型指针, map

转载 作者:行者123 更新时间:2023-11-27 23:20:21 26 4
gpt4 key购买 nike

想写点东西分享记忆,pAttr为共享内存地址。

模板函数如下,但它没有通过编译。

template <typename Container>
int ShareMemMgn::writeContainerToShareMemMap(void* pAttr, Container& oData)
{
typename Container::mapped_type T;
(T*)(pElem) = (T *)(pAttr); //compile errror
/*
share_mem_mgn.cpp:545: error: expected primary-expression before ‘)’ token
share_mem_mgn.cpp:545: error: ‘pElem’ was not declared in this scope
share_mem_mgn.cpp:545: error: expected primary-expression before ‘)’ token

*/


for(typename Container::iterator it = oData.begin();
it != oData.end(); ++it)
{
memcpy(pElem, (&(it->second)), sizeof(typename Container::mapped_type));
++pElem;
}

return 0;
}

如何获取映射类型指针?谁能帮帮我?非常感谢。

最佳答案

正如您现在阅读的代码,T 是一个变量,而不是类型。大概你的意思是:

typedef typename Container::mapped_type T;
T * pElem = static_cast<T *>(pAttr);

关于c++ - 如何在c++中获取 map 类型指针, map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13447917/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com