错误 C2182:'*':非法使用 'void' 类型 C:\boost_1_53_0\boost\smart_ptr\intrusive_ptr.hpp
error C2182: '*' : illegal use of type 'void' c:oost_1_53_0oostsmart_ptrintrusive_ptr.hpp
我正试图在我的windows 7笔记本电脑上开发一个websocket++服务器(vi
还不好,不想经常ftp)。我最后会转到Ubuntu 12.10。
我正在使用Visual c++ Win32控制台应用程序项目。
我已经include
d websocketpp
目录,安装了boost 1.53.0如何安装boost。基于Windows构建?, include
d &link
ed boost boost链接,Visual Studio &版本控制。
我正在尝试build
print_server.cpp
http://www.zaphoyd.com/websocketpp/manual/building-program-websocket
当我这样做时,我得到Error 1 error C2182: '*' : illegal use of type 'void' c:boost_1_53_0boostsmart_ptrintrusive_ptr.hpp Line:155 Column:1
boost代码为(第二行155):
T & operator*() const
{
BOOST_ASSERT( px != 0 );
return *px;
}
为什么我得到这个错误?我怎么修理它?
在VCPP上使用boost编译时,这是一个已知的问题。WebSocket++ 0.3不使用intrusive_ptr,但它使用了static_pointer_cast。每个boost智能指针都实现了自己的boost::static_pointer_cast重载。当将shared_ptr<void>
静态转换为shared_ptr<connection_ptr>
时,VCPP似乎无法选择正确的过载。Clang和GCC都使用正确的重载,VCPP没有。我有一个小的演示程序来演示这个问题,我一直想解决这个问题,并询问Stack Overflow…
_WEBSOCKETPP_CPP11_MEMORY_
将实现这一点。我已经测试了VCPP2010的c++ 11 <memory>
的实现,它实现了WebSocket++需要的一切。
- 理解boost::asio-async_read在无需读取内容时的行为
- boost::进程间消息队列引发错误
- 如何运行位于boost/libs/python/example/tutorial目录中的hello.cpp和Jamfil
- cmake如何在fedora工作站中找到boost静态库包
- CMake项目Boost库错误:Boost/config/compiler/gcc.hpp:165:10:致命错误:cs
- Boost Graph Library,修复节点大小
- 什么是"#include <boost/functional/hash.hpp> "?
- 基于boost的程序的静态链接——zlib问题
- C++:如何在CLion IDE中安装Boost
- C++Boost Asio Pool线程,带有lambda函数和传递引用变量
- 如何在boost beast http请求中设置http头
- Boost Spirit,获取迭代器内部语义动作
- boost::shared_ptr和std::shared-ptr的同居
- 我如何在void*和boost共享ptr之间切换
- 数据突然从 Boost shared_array/ptr 中删除
- 我可以用std::shared_ptr而不是boost::shared-ptr构建boost库吗
- 使用boost lambda构造创建初始化的智能ptr的容器
- Boost Scoped Ptr-声明与分配
- 如何转发声明boost智能ptr
- boost ptr容器与普通容器的区别