草庐IT

boost-implicit-cast

全部标签

python - Cmake 找不到 boost_python

我正在尝试从thislink构建这个简单的boostpython演示在我的MacOSHighSierra上。以下是hello_ext.cpp:#includecharconst*greet(){return"hello,world";}BOOST_PYTHON_MODULE(hello_ext){usingnamespaceboost::python;def("greet",greet);}以下是CmakeLists.txt:cmake_minimum_required(VERSION3.5)#FindpythonandBoost-botharerequireddependencies

c++ - gcc 与 clang : noexcept parsed in unused template specialization when static casting

我正在尝试将函数指针静态转换为特定函数重载,但似乎clang仍会解析(未使用的)模板特化的noexcept语句,从而生成编译器错误。如果未使用相应的函数重载,GCC似乎并不关心noexcept。templatevoidfun(T)noexcept(T(1)){}voidfun(int){}voidfun(int*){}intmain(){inta;fun(&a);//callingworksfinefun(a);static_cast(&fun);//staticcastingdoesn't}https://godbolt.org/z/ixpl3f这里是哪个编译器出错了?当将函数指针转

c++ - 带有转换运算符的类上的 static_cast

我刚刚遇到这种行为,我很难理解为什么这不起作用。enumclassTestEnum{Foo,Bar};classMyClass{public:operatorTestEnum(){returnm_enum;}TestEnumm_enum=TestEnum::Foo;}MyClasstheClass;intenumValue=static_cast(theClass);//doesnotwork,conversionoperatornotcalledintenumValue=static_cast(static_cast(theClass))//worksasexpected我知道编译器

c++ - Boost Spirit 在 DLL 中使用时崩溃

我在使用Boost.Spirit和Boost.Thread时遇到崩溃我的应用程序中的库。这只有在我使用圣灵时才会发生在进程的生命周期内从主线程解析器。崩溃发生在退出时,似乎与清理由Spirit解析器分配的线程特定存储。它可能由于DLL的顺序而崩溃已卸载,因为线程特定内存是在DLL中分配的那已经被卸载了。然而,直到应用程序本身退出时,Boost.ThreadDLL才会被卸载。有没有办法让我强制Spirit清除它的特定线程存储,例如当我收到进程分离通知时在我的dll-main中?任何解决方案/提示将不胜感激。附言!我的平台和设置:VisualStudio2005BOOST_ALL_DYN_

c++ - boost::any_cast - 仅在隐式转换不可用时抛出?

我要boost::any_cast仅在any类型时抛出异常没有隐式转换为T.如果any的类型,正常行为似乎是抛出异常。不是T,不考虑隐式转换。例子:boost::anya=1;boost::any_cast(a);//Thissucceeds,andrightfullysoboost::any_cast(a);//Idon'twantthistothrowboost::any_cast(a);//Iwantthistothrow谁能告诉我是否有一种简单的方法来获得我想要的功能,或者更好的是给我一个充分的理由来说明为什么现有的行为是这样的? 最佳答案

C++: 跨线程异常处理问题与 boost::exception

基本上,我遇到过这样一种情况:一个线程抛出异常,而另一个线程需要处理该异常。我正在尝试使用boost异常来执行此操作,但是异常丢失了它的类型,因此没有被catchblock捕获。基本上,线程B想要做某事,但是由于各种原因,它必须由线程A完成(如果您想知道这些原因,请询问MS为什么direct3d9设备必须由与它相同的线程创建、重置和释放创建窗口)。如果在执行这些操作时发生异常,线程A会捕获它,将其传递回线程B,然后线程B重新抛出它以根据需要进行处理。问题是线程B中抛出的异常似乎与线程A中抛出的异常不同。:(我程序的调试输出和代码如下。First-chanceexceptionat0x7

c++ - boost::asio::ip::tcp::resolver::resolve() 永远阻塞

我正在尝试创建类似于thiscode的东西在boost.asio示例中找到。套接字.h:classsome_class{private:...boost::asio::io_serviceio_service;public:some_class(){/*Thisstuffisn'tusedintheexample......butitdoesn'tchangeanything...*/io_service.run();}};套接字.cpp:usingboost::asio::ip::tcp;boolsome_class::connect(char*host,char*port){pri

c++ - 使用捕获时的 boost::regex 段错误

下面的简单程序出现段错误。好像跟析构函数match_results有关。#include#include#include#includeusingnamespacestd;intmain(intargc,char*argv){boost::regexre;boost::cmatchmatches;boost::regex_match("abc",matches,re.assign("(a)bc"));return0;}编辑:我正在使用boost1.39 最佳答案 boost::regex是boost的少数几个不单独存在于头文件中的组

c++ - Boost.Python 和 Python 异常

如何使boost.python代码python异常感知?例如,inttest_for(){for(;;){}return0;}如果我将它导出到python,则不会中断Ctrl-C。我认为其他异常(exception)这样不行。这是一个玩具示例。我真正的问题是我有一个可能需要数小时才能计算的C函数。我想打断它,例如,如果它需要更多的时间。但我不想杀死python实例,在函数内被调用。提前致谢。 最佳答案 在您的C或C++代码中,为SIGINT安装一个设置全局标志的信号处理程序,并让您的长时间运行的函数定期检查该标志,并在设置标志时尽早

c++ - Boost::Test——Main() 的生成?

我对设置boost测试库有点困惑。这是我的代码:#include"stdafx.h"#defineBOOST_TEST_DYN_LINK#defineBOOST_TEST_MODULEpevUnitTest#includeBOOST_AUTO_TEST_CASE(TesterTest){BOOST_CHECK(true);}我的编译器生成非常有用的错误消息:1>MSVCRTD.lib(wcrtexe.obj):errorLNK2019:unresolvedexternalsymbol_wmainreferencedinfunction___tmainCRTStartup1>C:\Use