标签: boost

如何获取boost :: asio :: ip :: tcp :: socket的IP地址?

我正在使用Boost ASIO库在C++中编写服务器.我想得到客户端IP的字符串表示形式,以显示在我的服务器日志中.有谁知道怎么做?

c++ networking boost boost-asio

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

带有boost :: shared_ptr的NULL指针?

什么相当于以下内容:

std::vector<Foo*> vec;
vec.push_back(NULL);
Run Code Online (Sandbox Code Playgroud)

什么时候处理boost::shared_ptr?它是以下代码吗?

std::vector< boost::shared_ptr<Foo> > vec;
vec.push_back(boost::shared_ptr<Foo>());
Run Code Online (Sandbox Code Playgroud)

注意:我可能会推回很多这样的对象.我应该在nullPtr某处声明一个全局静态对象吗?这样只需要构建其中一个:

boost::shared_ptr<Foo> nullPtr;
Run Code Online (Sandbox Code Playgroud)

c++ null boost pointers shared-ptr

56
推荐指数
4
解决办法
6万
查看次数

Boost.Process在哪里?

我需要执行一个程序并在c ++中检索它的stdout输出.我希望我的代码也是跨平台的.

最近我发现了针对您所有跨平台需求的Boost c ++库的精彩世界,我想我会去boost.org并阅读Boost.Process的文档.令我惊讶的是,它不存在!然后我开始弄清楚Boost给他们的跨平台库启动外部进程的名称,但到目前为止还没有找到它.

谷歌搜索带我去了Julio M. Merino Vidal的Boost.Process,它似乎是我正在寻找的非官方Boost库.奇怪的是,我似乎无法在该网站上找到下载链接.似乎该项目最近没有任何进展.

我终于能够在外部网站上找到Vidal的Boost.Process的下载链接,并且现在将使用它,但是我非常惊讶于我需要付出的努力才能获得跨平台的c ++库.与外部流程互动.

那么,为什么没有正式的Boost.Process?这似乎是一个非常有价值的补充.或者我完全忽视了这里明显的解决方案?您是否可以建议其他跨平台库来管理外部流程的简单启动和交互?

c++ boost cross-platform platform-independent boost-process

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

什么时候应该使用原始指针而不是智能指针?

在阅读完这个答案后,看起来最好尽可能使用智能指针,并将"普通"/原始指针的使用量降至最低.

真的吗?

c++ boost pointers smart-pointers

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

unique_ptr提升等价?

在boost库中是否有一些与C++ 1x的std :: unique_ptr等效的类?我正在寻找的行为是能够拥有异常安全的工厂功能,就像这样......

std::unique_ptr<Base> create_base()
{
    return std::unique_ptr<Base>(new Derived);
}

void some_other_function()
{
    std::unique_ptr<Base> b = create_base();

    // Do some stuff with b that may or may not throw an exception...

    // Now b is destructed automagically.
}
Run Code Online (Sandbox Code Playgroud)

编辑:现在,我正在使用这个黑客,这似乎是我能在这一点上得到的最好的......

Base* create_base()
{
    return new Derived;
}

void some_other_function()
{
    boost::scoped_ptr<Base> b = create_base();

    // Do some stuff with b that may or may not throw an exception...

    // Now b is deleted automagically.
}
Run Code Online (Sandbox Code Playgroud)

c++ boost unique-ptr c++11

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

了解boost :: disjoint_sets

我需要使用boost :: disjoint_sets,但文档对我来说不清楚.有人可以解释每个模板参数的含义,也许可以给出一个用于创建disjoint_sets的小例子代码吗?

根据请求,我使用disjoint_sets来实现Tarjan的离线最小共同祖先算法,即 - 值类型应该是vertex_descriptor.

c++ boost disjoint-sets

54
推荐指数
2
解决办法
5800
查看次数

C++ 11相当于boost shared_mutex

是否有C++ 11等效的boost::shared_mutex.或者在C++ 11中处理多个读者/单个写入者情况的另一个解决方案?

c++ boost mutex c++11

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

如何解码boost库命名?

我试图找出这gd意味着在升级库名称中,我只发现另外两个人在寻找相同的东西.

我想它应该是一个清楚记录的地方,我想找到它.

  • mt - 多头,得到它 bjam threading=multi
  • s - bjam runtime-link=static
  • g - 使用标准和运行时支持库的调试版本.什么bjam开关???
  • d - 调试 bjam variant=debug

更新

如何控制哪些bjam开关控制上述变体?事实上,我唯一无法识别的是g.

c++ boost boost-build bjam

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

如何将boost :: optional设置回未初始化状态?

我如何"重置"/"取消设置" boost::optional

optional<int> x;

if( x )
{
  // We won't hit this since x is uninitialized
}
x = 3;
if( x )
{
  // Now we will hit this since x has been initialized
}
// What should I do here to bring x back to uninitialized state?
if( x )
{
  // I don't want to hit this
}
Run Code Online (Sandbox Code Playgroud)

c++ boost boost-optional

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

CMake找到Boost但导入的目标不适用于Boost版本

我用CMake找到Boost.找到了Boost,但CMake出错了

导入的目标不适用于Boost版本

请参阅下面的完整错误(来自macOS).我究竟做错了什么?

CMake Warning at /Applications/CMake.app/Contents/share/cmake-3.6/Modules/FindBoost.cmake:743 (message):
  Imported targets not available for Boost version 106300
Call Stack (most recent call first):
  /Applications/CMake.app/Contents/share/cmake-3.6/Modules/FindBoost.cmake:842 (_Boost_COMPONENT_DEPENDENCIES)
/Applications/CMake.app/Contents/share/cmake-3.6/Modules/FindBoost.cmake:1395 (_Boost_MISSING_DEPENDENCIES)
CMakeLists.txt:6 (find_package)

Boost version: 1.63.0
Found the following Boost libraries:
  thread
CMake Warning at /Applications/CMake.app/Contents/share/cmake-3.6/Modules/FindBoost.cmake:743 (message):
  Imported targets not available for Boost version 106300
Call Stack (most recent call first):
  /Applications/CMake.app/Contents/share/cmake-3.6/Modules/FindBoost.cmake:842 (_Boost_COMPONENT_DEPENDENCIES)
  /Applications/CMake.app/Contents/share/cmake-3.6/Modules/FindBoost.cmake:1395 (_Boost_MISSING_DEPENDENCIES)
  CMakeLists.txt:7 (find_package)
Run Code Online (Sandbox Code Playgroud)

boost cmake

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