标签: boost

Boost的最佳文档:asio?

boost网站上提供的文档是有限的.

从我能够阅读的内容来看,普遍的共识是很难在boost :: asio库上找到好的文档.

这是真的吗?如果是这样,为什么?

笔记:

  • 我已经找到了(非增强型)Asio网站 - 文档看起来与boost网站上的相同.
  • 我知道Boost :: asio是新的!我正在寻找解决方案而不是借口.

编辑:

  • 有人建议将网络库添加到由Boost:asio(Christopher Kohlhoff)的作者编写的TR2标准库中.虽然它不是boost:asio的文档,但它确实将它作为TR2提案的基础.由于作者在本文档中付出了更多努力,我发现它有点帮助,如果不是作为参考,那么至少作为概述.

c++ boost boost-asio

139
推荐指数
7
解决办法
6万
查看次数

提升状态图与Meta状态机

显然,boost包含两个独立的状态机库:StatechartMeta State Machine(MSM).标语给出了非常相似的描述:

  • Boost.Statechart - 任意复杂的有限状态机可以用易于阅读和维护的C++代码实现.
  • 元状态机 - 用于富有表现力的UML2有限状态机的高性能库.

你知道两者之间的主要区别和选择考虑因素是什么?

c++ boost state-machine boost-statechart boost-msm

139
推荐指数
3
解决办法
3万
查看次数

如何确定系统上的Boost版本?

有没有快速的方法来确定系统上Boost C++库的版本?

c++ boost version

133
推荐指数
9
解决办法
12万
查看次数

CMake:具有单元测试的项目结构

我正在尝试构建我的项目以包含生产源(在src子文件夹中)和测试(在test子文件夹中).我正在使用CMake来构建它.作为一个最小的例子,我有以下文件:

的CMakeLists.txt:

cmake_minimum_required (VERSION 2.8) 
project (TEST) 

add_subdirectory (src) 
add_subdirectory (test) 
Run Code Online (Sandbox Code Playgroud)

SRC /的CMakeLists.txt:

add_executable (demo main.cpp sqr.cpp) 
Run Code Online (Sandbox Code Playgroud)

SRC/sqr.h

#ifndef SQR_H
#define SQR_H
double sqr(double);    
#endif // SQR_H
Run Code Online (Sandbox Code Playgroud)

SRC/sqr.cpp

#include "sqr.h"
double sqr(double x) { return x*x; }
Run Code Online (Sandbox Code Playgroud)

src/main.cpp - 使用sqr,并不重要

测试/的CMakeLists.txt:

find_package(Boost COMPONENTS system filesystem unit_test_framework REQUIRED)

include_directories (${TEST_SOURCE_DIR}/src) 

ADD_DEFINITIONS(-DBOOST_TEST_DYN_LINK) 

add_executable (test test.cpp ${TEST_SOURCE_DIR}/src/sqr.cpp) 

target_link_libraries(test
                      ${Boost_FILESYSTEM_LIBRARY}
                      ${Boost_SYSTEM_LIBRARY}
                      ${Boost_UNIT_TEST_FRAMEWORK_LIBRARY}
                      )

enable_testing()
add_test(MyTest test)
Run Code Online (Sandbox Code Playgroud)

测试/ TEST.CPP:

#define BOOST_TEST_MODULE SqrTests
#include <boost/test/unit_test.hpp>

#include "sqr.h"

BOOST_AUTO_TEST_CASE(FailTest)
{
    BOOST_CHECK_EQUAL(5, sqr(2));
} …
Run Code Online (Sandbox Code Playgroud)

c++ boost unit-testing cmake boost-test

127
推荐指数
2
解决办法
8万
查看次数

如何将boost路径类型转换为字符串?

你好,我目前有一个程序,它获取文件位置的完整路径,并被放入一个变量类型:boost :: filesystem2 :: path

我已经查找了如何做到这一点,并发现使用:

string result1 = boost::filesystem::basename (myPath)
Run Code Online (Sandbox Code Playgroud)

将路径转换为字符串但它只转换文件名(例如,如果路径为"C:\name\bobsAwesomeWordDoc.docx",则只返回"bobsAwesomeWordDoc").

我已经找到了如何将整个路径转换为字符串的以下内容,但我不知道如何在我的程序中实现它.我尝试了多种方法但是我遇到了转换错误.

const std :: string&string():此例程返回初始化路径的字符串的副本,并根据路径语法规则进行格式化.

(在这里找到)

我试过了:

string result1 = string& (myPath);
Run Code Online (Sandbox Code Playgroud)

以及其他一些变化.

c++ boost path

123
推荐指数
2
解决办法
8万
查看次数

用于64位窗口的64位Boost版本

是否有适用于VS2008的64位Boost库版本?或者我必须自己编译一个?如果,那么,有没有人有经验呢?

c++ boost visual-studio-2008

119
推荐指数
4
解决办法
9万
查看次数

使用C++ Boost库有什么好处?

所以,我一直在阅读,看起来Boost库在实践中得到了很多使用(不过在我的店里).为什么是这样?是什么让它如此美妙?

c++ boost

117
推荐指数
7
解决办法
7万
查看次数

最常用的部分是Boost

当我发现boost::lexical_cast自己想到"为什么我不早点知道这件事!" - 我讨厌写代码

stringstream ss;
ss << anIntVal;
mystring = ss.str();
Run Code Online (Sandbox Code Playgroud)

现在我写

mystring = boost::lexical_cast<string>(anIntVal);
Run Code Online (Sandbox Code Playgroud)

昨天,在stackoverflow上,我遇到了boost split(另一个将节省我编写代码的宝石).

string stringtobesplit = "AA/BB-CC")
vector<string> tokens;

boost::split(tokens, stringtobesplit, boost::is_any_of("/-")); 
// tokens now holds 3 items: AA BB CC
Run Code Online (Sandbox Code Playgroud)

我要开始寻找通过Boost文档寻找其他的功能,我就可以经常使用,但我觉得,这将是很容易错过的事情.

您最常使用哪些增强功能/不想拥有?

c++ boost

114
推荐指数
17
解决办法
2万
查看次数

C++ - 将引用传递给std :: shared_ptr或boost :: shared_ptr

如果我有一个需要使用a的函数shared_ptr,那么传递它的引用会不会更有效(所以为了避免复制shared_ptr对象)?有哪些可能的不良副作用?我设想了两种可能的情况:

1)在函数内部,复制由参数组成,如

ClassA::take_copy_of_sp(boost::shared_ptr<foo> &sp)  
{  
     ...  
     m_sp_member=sp; //This will copy the object, incrementing refcount  
     ...  
}  
Run Code Online (Sandbox Code Playgroud)

2)在函数内部仅使用参数,例如

Class::only_work_with_sp(boost::shared_ptr<foo> &sp) //Again, no copy here  
{    
    ...  
    sp->do_something();  
    ...  
}  
Run Code Online (Sandbox Code Playgroud)

我无法在两种情况下都看到传递boost::shared_ptr<foo>by值而不是引用的充分理由.按值传递只会"暂时"增加由于复制而引用的引用计数,然后在退出函数范围时减少它.我忽略了什么吗?

只是为了澄清,在阅读了几个答案之后:我完全赞同过早优化的问题,而且我总是试着先在热点上进行首次剖析.如果你知道我的意思,我的问题更多来自纯粹的技术代码观点.

c++ boost pass-by-reference pass-by-value shared-ptr

113
推荐指数
6
解决办法
5万
查看次数

boost shared_mutex的示例(多次读取/一次写入)?

我有一个多线程应用程序,必须经常读取一些数据,偶尔会更新数据.现在,互斥锁可以保持对数据安全的访问,但是它很昂贵,因为我希望多个线程能够同时读取,并且只在需要更新时将其锁定(更新线程可以等待其他线程完成) .

我认为这是boost::shared_mutex应该做的,但我不清楚如何使用它,并没有找到一个明确的例子.

有没有人有一个我可以用来开始的简单例子?

c++ multithreading boost mutex boost-thread

113
推荐指数
4
解决办法
9万
查看次数