草庐IT

visualize-gradient-boosting-decis

全部标签

c++ - 我们可以创建一个已经打开的套接字的 boost 套接字吗?

我有一个代码,通过一个stunServer为我的对等软件创建一个套接字,我想知道是否有可能创建一个boost::udp::socket已经打开的套接字?我已经在boost文档中进行了搜索,但没有找到允许这样做的内容。 最佳答案 是的。io_serviceios;ip::udp::socketsocket(ios);intnative_socket=::socket(AF_INET,SOCK_DGRAM,IPPROTO_UDP);socket1.assign(ip::udp::v4(),native_socket);参见thissam

c++ - 我如何在 void* 和 boost shared_ptr 之间进行转换

我有这些行:typedefboost::shared_ptrA_SPtr;void*f(void*var){...我希望能够做这样的事情:A_SPtrinstance=(void*)(var);我该怎么做?另外,我怎样才能将意义从shared_ptr转换为void*? 最佳答案 只需将指针转换为指向和来自void*的共享指针。shared_ptr到void*:f(reinterpret_cast;(&A_SPtr));void*回到shared_ptr:A_SPtrinstance=*reinterpret_cast(boost::

c++ - 是否有用于阻塞 boost::asio TCP 连接的 boost::iostreams(双向)设备?

我正在研究可移植的C++库,阻止对文件系统和网络的I/O访问。看起来boost::filesystem、boost::iostreams和boost::asio将介于这三者之间他们的工作。明确地说,我目前对boost::asio的异步方面不感兴趣;我只想要一个可移植的阻塞式网络接口(interface)。深入研究,我看到boost::iostreams有一个设备的概念,每个设备都有一个关联的modeconcept.双向模式似乎专门为流式访问全双工TCP连接而量身定制。太棒了。boost::iostreams似乎不支持实际打开TCP连接(与本地文件系统不同。)没关系,boost::asi

c++ - Visual 2010 中带有 lambda 函数和枚举的 C2665,是错误还是正常?

我可以编译以下代码:enumE{a,b,c};voidf(){Ee;std::functionf=[&](){e=a;};}但不是下面的:voidf(){enumE{a,b,c};Ee;std::functionf=[&](){e=a;};}发出以下编译器错误:1>test.cpp(5):errorC2665:'`anonymous-namespace'::::':noneofthe2overloadscouldconvertalltheargumenttypes1>test.cpp(5):couldbe'`anonymous-namespace'::::(f::E&,f::E&)'1

c++ - 将 std::map 复制/插入到 boost::bimap

我尝试将std::map的元素复制到boost::bimap中。我无法让std::copy工作(boost文档似乎表明bimap应该与std::copy兼容)。我尝试了以下方法:std::mapcurves;boost::bimap,boost::bimaps::multiset_of>m_curves;...//someinitialisationofcurvesstd::copy(curves.begin(),curves.end(),std::inserter(m_curves,m_curves.end()));//Thisfailsm_curves.insert(curves.

c++ - 使用 boost::posix_time::microsec_clock 的测量误差超过十微秒?

我有以下代码:longlongunsignedintGetCurrentTimestamp(){LARGE_INTEGERres;QueryPerformanceCounter(&res);returnres.QuadPart;}longlongunsignedintinitalizeFrequency(){LARGE_INTEGERres;QueryPerformanceFrequency(&res);returnres.QuadPart;}//starttimestampboost::posix_time::ptimestartTime=boost::posix_time::mic

c++ - 如何识别boost fusion vector 中的类型

如何识别boost::fusionvector中的类型?例如fusion::vectorv;然后可以让我将v[0]识别为int类型,将v[1]识别为double类型和v[2]作为string类型。谢谢。 最佳答案 为了从boost::fusion::vector中提取元素,您需要使用boost::fusion::at_c,如下所示:boost::fusion::vectorv(1,"hello");std::cout(v)N位置的类型是:boost::fusion::result_of::at_c,1>::type

c++ - 如何在没有项目的情况下在 Visual Studio 2012 中只编译一个文件(C++)?

我有很多文件-C++示例代码。我打开每个文件,我必须将代码从示例文件复制到某个项目中的main.cpp文件。VisualStudio可以在没有项目的情况下编译一个打开的.cpp文件吗? 最佳答案 在这种情况下,从命令行编译可能是最简单的。启动命令提示符窗口并运行批处理文件以适本地设置环境变量(%PATH%等)。在我的电脑上这是"C:\ProgramFiles\MicrosoftVisualStudio9.0\vc\vcvarsall.bat"然后将foo.cpp编译成foo.exe,就用cl/EHscfoo.cpp

c++ - boost std unique_ptr 的 STL 集合的序列化

我希望能够序列化std::unique_ptr的STL容器。可以吗?顺便说一句,单个std::unique_ptr一切正常。下面是我正在处理的代码,gcc给出了以下错误:useofdeletedfunction‘std::unique_ptr::unique_ptr(conststd::unique_ptr&)[with_Tp=MyDegrees;_Dp=std::default_delete;std::unique_ptr=std::unique_ptr]’如何使代码正常工作?#include#include#include#include#include#include#inclu

c++ - g++ 项目编译与 boost 单元测试

我正在尝试在Linux上编译单元测试(boost),但编译器报错。有人可以检查我的命令吗?g++-oUTest../UTest/UT1.cpp../UTest/UT2.cpp-lboost_system-lboost_thread-lboost_unit_test_framework错误/usr/lib/gcc/i686-linux-gnu/4.6/../../../i386-linux-gnu/crt1.o:Infunction`_start':(.text+0x18):undefinedreferenceto`main'我从g++命令中删除了main(),因为在使用boostuni