标签: boost

如何解码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万
查看次数

为什么要覆盖operator()?

Boost Signals库中,它们重载了()运算符.

这是C++中的约定吗?对于回调等?

我在同事的代码中看到了这一点(恰好是Boost的忠实粉丝).在那里的所有Boost善良中,这只会让我感到困惑.

有关这种超载原因的任何见解?

c++ boost operator-overloading functor function-call-operator

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

是否可以将boost :: foreach与std :: map一起使用?

我发现boost :: foreach非常有用,因为它为我节省了大量的文字.例如,假设我要打印列表中的所有元素:

std::list<int> numbers = { 1, 2, 3, 4 };
for (std::list<int>::iterator i = numbers.begin(); i != numbers.end(); ++i)
   cout << *i << " ";
Run Code Online (Sandbox Code Playgroud)

boost :: foreach使上面的代码变得更加简单:

std::list<int> numbers = { 1, 2, 3, 4 };
BOOST_FOREACH (int i, numbers)
   cout << i << " ";
Run Code Online (Sandbox Code Playgroud)

好多了!然而,我从来没有想过将它用于std::maps 的方法(如果可能的话).该文档仅包含类型为vector或的示例string.

c++ foreach boost

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

链接boost log教程时链接器错误(未定义的引用)

我通过yum在Fedora 20上安装了boost,我正在尝试一些简单的例子.但是,我无法从日志记录教程中编译第一个示例.

编译g++ -c boosttest.cc工作正常,但当我尝试链接它时,我遇到了很多错误

g++ boosttest.o -o boosttest -lboost_log -lpthread
Run Code Online (Sandbox Code Playgroud)

完整的错误日志:

boosttest.o: In function `main':
boosttest.cc:(.text+0x44): undefined reference to `boost::log::v2s_mt_posix::trivial::logger::get()'
boosttest.cc:(.text+0x9a): undefined reference to `boost::log::v2s_mt_posix::trivial::logger::get()'
boosttest.cc:(.text+0x167): undefined reference to `boost::log::v2s_mt_posix::trivial::logger::get()'
boosttest.cc:(.text+0x1bd): undefined reference to `boost::log::v2s_mt_posix::trivial::logger::get()'
boosttest.cc:(.text+0x28a): undefined reference to `boost::log::v2s_mt_posix::trivial::logger::get()'
boosttest.o:boosttest.cc:(.text+0x2e0): more undefined references to `boost::log::v2s_mt_posix::trivial::logger::get()' follow
boosttest.o: In function `boost::log::v2s_mt_posix::record::reset()':
boosttest.cc:(.text._ZN5boost3log12v2s_mt_posix6record5resetEv[_ZN5boost3log12v2s_mt_posix6record5resetEv]+0x18): undefined reference to `boost::log::v2s_mt_posix::record_view::public_data::destroy(boost::log::v2s_mt_posix::record_view::public_data const*)'
boosttest.o: In function `boost::log::v2s_mt_posix::record boost::log::v2s_mt_posix::sources::basic_composite_logger<char, boost::log::v2s_mt_posix::sources::severity_logger_mt<boost::log::v2s_mt_posix::trivial::severity_level>, boost::log::v2s_mt_posix::sources::multi_thread_model<boost::log::v2s_mt_posix::aux::light_rw_mutex>, boost::log::v2s_mt_posix::sources::features<boost::log::v2s_mt_posix::sources::severity<boost::log::v2s_mt_posix::trivial::severity_level>, void, void, void, void, void, void, void, void, void> >::open_record<boost::parameter::aux::tagged_argument<boost::log::v2s_mt_posix::keywords::tag::severity, …
Run Code Online (Sandbox Code Playgroud)

c++ boost fedora ld

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

提升被认为有害吗?

这里有很多C++问题的答案包含响应:

"你应该使用boost::(在这里插入你最喜欢的智能指针)或者更好的提升:(在这里插入你最喜欢的超级复合增强型)"

我完全不相信这对提问者有任何好处,而提问者总的来说是明显的C++新手.我的理由如下:

  • 使用智能指针而不了解幕后发生的事情会导致一代C++程序员缺乏程序员的一些基本技能.这似乎已经发生在Java领域了.

  • 决定使用哪种类型的智能指针在很大程度上取决于要解决的问题域.从这里发布的问题中几乎总是缺少这一点,所以简单地说"使用共享指针"可能至少是无益的,可能是完全错误的.

  • Boost还不是C++标准的一部分,可能无法在提问者使用的特定平台上使用.安装它有点痛苦(我只是使用Jam),如果你想要的只是一些智能指针,那就太过分了.

  • 如果您正在编写FOSS代码,那么您不希望代码严重依赖外部库,而您的用户可能再也没有.由于库之间依赖关系的拜占庭复杂性,我在很多场合都被推迟使用FOSS代码.

总而言之,我并不是说不推荐Boost,而是在这样做时我们应该更加小心.

c++ boost

51
推荐指数
13
解决办法
9316
查看次数

如何让CMake找到我的替代Boost安装?

我已经安装了最新版本的Boost /usr/local(包含in /usr/local/include/boost和库/usr/local/lib/boost),我现在正尝试从源代码安装Wt,但CMake(版本2.6)似乎无法找到Boost安装.它尝试提供有关设置BOOST_DIR和Boost_LIBRARYDIR的有用建议,但我无法通过调整这些变量来使其工作.

我得到的最新错误消息是它找不到库,但它似乎表明它正在使用"/ usr/local/include"作为包含路径,这是不正确的(我可以'似乎解决了这个问题).是否有一个解决方案,他们的头顶,或者我需要在CMake内部捣乱才能弄明白?

linux build-automation boost cmake wt

51
推荐指数
8
解决办法
10万
查看次数

使用C++和Boost获取当前时间(以毫秒为单位)

在我的线程中(使用boost :: thread)我需要以ms或更少的时间检索当前时间并转换为ms:

实际上,在这里阅读我发现了这个:

tick = boost::posix_time::second_clock::local_time();
now  = boost::posix_time::second_clock::local_time();
Run Code Online (Sandbox Code Playgroud)

似乎工作,但我需要有一个很长的毫秒的现在...

我该怎么做?

c++ time boost timestamp milliseconds

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

官方"Boost库"支持Android和iOS?

这个问题是继续我应该在Android中选择Boost Asio或Aysnc Socket线程吗?问:

Boost库旨在广泛使用,并可在各种应用程序中使用,但Android和iOS尚无官方支持

  1. 是否有任何特定原因,例如未针对嵌入式设备进行优化?还是其他任何原因?
  2. 有没有人知道在Android或iOS上使用Boost构建的任何应用程序?
  3. 是否建议将升级库用于网络密集型应用程序,从而产生多线程进行通信?

仅供参考.我一直在使用以下链接创建示例Android应用程序,但尚未成功:(

https://github.com/MysticTreeGames/Boost-for-Android

http://www.codexperiments.com/android/2011/05/tips-tricks-building-boost-with-ndk-r5/

在android中包含Boost C++库

如何将boost库(包括shared_ptr)与Android NDK和STLport一起使用

https://sites.google.com/site/fourdollars/android/android-mk

https://groups.google.com/forum/?fromgroups=#!topic/android-ndk/4lxhsKFe7Ho

http://www.crystax.net/trac/ndk/ticket/6

Android NDK R5和支持C++异常

提前致谢.

android boost boost-asio android-ndk ios

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

如何在C++中使用boost创建线程池?

如何使用C++中的boost创建线程池,如何将任务分配给线程池?

c++ boost boost-thread boost-asio threadpool

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