草庐IT

c++ - 在同一线程上 boost 互斥锁

我是boost库的新手,这是一个非常棒的库!另外,我是互斥量的新手,如果我犯了新手错误,请原谅我。无论如何,我有两个函数,分别是FunctionOne和FunctionTwo。FunctionOne和FunctionTwo由不同的线程异步调用。下面是发生的情况:在FunctionOne中,我在函数开始时锁定了一个全局互斥锁,并在函数结束时解锁了全局互斥锁。FunctionTwo也是如此。现在问题来了:有时FunctionOne和FunctionTwo被调用的时间相隔不到几毫秒(尽管并非总是如此)。因此,FunctionOne开始执行,而FunctionTwo执行到一半。当Functio

c++ - 在 Linux 上编译 boost asio 时出现链接错误

我一直在浏览一些boost教程和它的库。我完成了boost的基础教程:http://www.boost.org/doc/libs/1_52_0/more/getting_started/unix-variants.html而且效果很好。我在使用asio教程时遇到问题:http://www.boost.org/doc/libs/1_50_0/doc/html/boost_asio/tutorial/tutdaytime1/src.html看起来像是链接错误,但我包含了与之前相同的路径:g++-I/usr/local/boost_1_52_0test.cpp-oexample错误:/tmp

c++ - boost spirit qi on_error 通过引用传递 error_handler struct

我又遇到了灵气障碍问题。我在一个名为error_handler的仿函数结构中实现了错误处理。这通过引用传递给语法构造函数(参见Qi的MiniC示例)。然后我有on_errors在语法的构造函数中定义:typedefboost::phoenix::function>error_handler_function;on_error(gr_instruction,error_handler_function(err_handler)(L"Error:Expecting",_4,_3));//moreon_errors...但是,我的error_handler有私有(private)成员。好像每

c++ - Boost 1.55 不适用于 Visual Studio 2013

我已经正确编译了boost二进制文件并按照所有说明进行操作,但是我遇到了很多错误,我不知道为什么!这是我的“包含”设置:这是我用来测试boost的代码:#include//includeboost#includeusingnamespacestd;usingnamespaceboost::asio;//savetonsoftyping//Thesearethevaluesourportneedstoconnect#ifdef_WIN32//windowsusescomports,thisdependsonwhatcomportyourcableispluggedinto.constch

c++ - 我可以将 boost asio 用于 HTTPS 请求吗

我可以对HTTPS请求使用boostasio吗?我可以发出GET和POSTHTTP请求,但是HTTPS呢?我该如何处理?有人可以给我一个代码片段吗? 最佳答案 是的,你可以。http://www.boost.org/doc/libs/1_47_0/doc/html/boost_asio/example/ssl/client.cpp只需将它集成到您​​的HTTP请求中即可。 关于c++-我可以将boostasio用于HTTPS请求吗,我们在StackOverflow上找到一个类似的问题:

c++ - 如何使用 Boost Graph Library 更改图中的边权重?

我已经使用Boost图形库定义了一个图形,typedefboost::propertyEdgeWeightProperty;typedefboost::adjacency_listGraph;使用添加边相当简单boost::add_edge(vertice1,vertice2,weight,graph);我还没有弄清楚如何在设置边缘权重后更改它。一种可能的解决方案是删除边缘并使用更新后的权重值重新添加它,但是,这似乎有点过分。 最佳答案 一种解决方案是执行以下操作typedefboost::adjacency_listGraph;t

C++:将 "boost::multiprecision::float128"转换为 "double"

我正在使用boost多精度库,更准确地说是boost::multiprecision::float128类型。使用ICPC进行编译时,我在尝试执行以下操作时遇到一些错误:doublea=functionA();其中functionA()返回一个boost::multiprecision::float128变量。error:nosuitableconversionfunctionfrom"boost::multiprecision::float128"to"double"exists|我该如何解决这个问题? 最佳答案 来自Boost文

c++ - 创建一组 1 个元素的最佳\最简单\最快的方法是什么? (C++)

有时我需要1个用户类型元素的集合(或任何其他容器)并以这种方式创建它们:boost::assign::list_of(typeVariable).convert_to_container>()有谁知道更漂亮的方法吗?附言:例如,我们有任何业务逻辑API,它搜索元素,并采用类型集(或另一个容器)进行选择。不同的用户可以访问不同的类型。我们也可以选择任何一种类型进行过滤,在这种情况下,我们将从过滤选项中选择一种类型。所以我只是想要在1行中编写代码的简单方法。我当前的版本是:getElements(filter.type!=UNDEFINED?boost::assign::list_of(f

c++ - 为什么我们需要 io_service in boost?

我正在尝试学习Boost.asio库。现在我可以创建一个可以通信的客户端和服务器。为什么我们需要定义一个io_service对象?因为如果这是套接字可用于与底层操作系统注册/通信的唯一对象类型,那么我们为什么还要定义它。套接字不能自动猜测吗?我在这里缺少什么? 最佳答案 你是在逆向发现为什么单例不好吗?这就是你的答案。完成后,您就可以控制并决定在Asio中的服务之间共享多少资源。正因为如此,您现在可以在您的应用程序中使用Asio,即使您链接到的库之一也使用它将Asio用于每个线程的服务(因此不会有共享状态)或每个服务的多个线程等等

c++ - 应用于数组时呈现数组积分的最小正乘数

给定一个包含n个非负元素的数组,C/C++的任何库中是否有一个函数返回最小的正乘数当应用于数组的每个元素时返回一个整数?例如,如果n=2的数组是1.66667,2.33333,则乘数将为3。当我们将数组的每个元素乘以3时,我们得到5、7,都是整数。如果数组为8,10,则乘数将为0.5。这会给我们4,5。(1)boost、eigen等知名库中是否有有效的函数?(2)如果库中没有可用的东西,计算倍数的有效算法是什么? 最佳答案 在一般情况下,您的问题没有很好的解决方案,因为值以浮点格式存储,精度有限,只能存储分母的幂为2的分数。例如,0