草庐IT

boost-functional

全部标签

c++ - boost::asio 从/dev/input/event0 读取

我希望使用boost::asio来读取12位数字键盘。我目前可以通过这种方式在没有boost的情况下做到这一点:fd=open("/dev/input/event0",0_NONBLOCK);read(fd,&ev,sizeofev);你知道我如何用boost::asio做到这一点吗?我正在使用Linux和C++。这post还有这个post很有用。我不会使用串行端口端口(io,“/dev/usb/hiddev0”),因为它不是串行的,对吧?谢谢。 最佳答案 在我的系统中,event2代表鼠标,下面这个简单的readloop程序就像一

c++ - 我应该如何在我自己的函数中传递 boost::asio::yield_context?

我正在编写一个在底层使用Boost.Asio的C++11网络库。我想公开一个允许用户使用堆栈协程的API。我应该如何在我的API函数中接受boost::asio::yield_context参数?按值(value)?引用?通过const引用?我不知道这些yield_context对象的复制成本有多高。例如:ResultremoteProcedureCall(Argsargs,boost::asio::yieldcontextyield)//^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^Howtopass?我知道我可以拿一个通用的引用做完美转发:templateResul

c++ - Boost Log 清除日志文件

我一直在尝试使用C++的BoostLog库。我的问题是每次程序启动时,日志文件都会被清除。有没有附加选项之类的?这是我的部分代码:BOOST_LOG_INLINE_GLOBAL_LOGGER_DEFAULT(my_logger,src::logger_mt)src::logger_mt&lg=my_logger::get();logging::add_file_log(keywords::file_name="error.log%N",keywords::rotation_size=1*1024*1024,keywords::max_size=10*1024*1024,keywords

c++ - 是否可以将带逗号的语句传递到 boost 测试宏中?

当我想对我用boost::test编写的一个小类进行单元测试时,我发现如果您传递的语句包含',',则不能直接使用用于CHECK/REQUIRE/....的boostMACRO.以下示例无法编译,因为预处理器报告宏“BOOST_CHECK_NO_THROW”传递了2个参数,但只需要1个BOOST_CHECK_NO_THROW({cache_maptest1(3);});为了确认它来self们用来分隔模板参数的逗号,我使用了以下内容并且编译没有问题。BOOST_CHECK_NO_THROW({stringtest1("test");});解决方法是使用typedef别名而不是显式类型,但您

c++ - 在 Visual Studio 中调用 std::swap 时的 std::bad_function_call

我正在尝试将我的代码从Linux移植到Windows。但是,对于VisualStudio,我的代码因以下错误而崩溃:MicrosoftC++exception:std::bad_function_callatmemorylocation这是我的代码:#includeclassFoo{public:Foo(int):m_deleter{[](){}}{}Foo(constFoo&)=delete;Foo(Foo&&)=default;Foo&operator=(constFoo&)=delete;Foo&operator=(Foo&&)=default;~Foo(){m_deleter(

c++ - 架构 x86_64 的 undefined symbol : OS X, Boost Log,CMake

链接的另一个问题OSX10.9.5x64跨平台项目正在使用CMake工具链构建。使用boost。将所有可执行文件与BoostLog链接时出错(肯定找到了BOOST_PATH,单元测试与Boost测试链接成功)首先尝试。使用Clanggcc-vAppleLLVMversion6.0(clang-600.0.56)(basedonLLVM3.5svn)Target:x86_64-apple-darwin13.4.0Threadmodel:posix建筑boost./bootstrap&&./b2threading=multilink=staticruntime-link=staticins

c++ - 如何在 C++ 中使用 boost 库将类对象转换为 json 字符串?

我是C++的新手,如果您觉得这很容易,我先向您道歉。我有以下文件POST1.h#ifndefPOST1_HH#definePOST1_HH#include#include#includeusingnamespacestd;usingboost::property_tree::ptree;usingboost::property_tree::read_json;usingboost::property_tree::write_json;usingboost::property_tree::basic_ptree;#include"DBAccess2.h"classPOST1{public

c++ - 在成员初始化列表中使用 std::function

我有一个类型定义:typedefS32(iMyDataClass1::*getDataFunction_t)(void);和类型:structfunctionMap_t{std::vectorpDataFunctionTable;structdataRequestor_tdataRequestor;};然后我有一个成员变量:functionMap_tFnMap1;然后我在成员初始值设定项列表中设置:myClass::myClass():FnMap1({{&iMyDataClass1::getData1,&iMyDataClass1::getData2,&iMyDataClass1::g

c++ - 从 VS 2012 中的 lambda 返回值构造 std::function 时崩溃

此C++代码使用VS2012成功编译但在运行时崩溃:#include#includevoidf(){std::coutfilter(get_f());//crashhere!!!return0;}如果我们将get_f更改为:autoget_f=[](){returnf;};然后程序运行没有崩溃。是这段代码的问题还是编译器/标准库的bug?我没有使用较新版本的VisualStudio进行测试。 最佳答案 在我看来,这像是标准库(或可能是编译器)的问题。使用VS2013,它可以毫无问题地编译和运行。如果我们添加代码来调用同样运行的fil

python - Boost.Python 和 Boost.Function

我想包装一个boost::function类成员,以便可以按以下方式使用它:usingnamespaceboost;usingnamespaceboost::python;structgui_button_t{functionon_pressed;};class_("GuiButton",init()).def("on_pressed",&gui_button_t::on_pressed);然后在Python中:defcallback_function():print'buttonhasbeenpressed'button=GuiButton()button.on_pressed=ca