草庐IT

boost-uuid

全部标签

c++ - 在 boost::python 的 add_property 中使用 c++11 lambda 作为访问函数(get_signature 因 lambda 而失败)

我正在尝试使用C++11lambda作为boost::python中的访问函数的add_property,以下内容(此示例中并不严格需要lambda,但lambda内部发生的更复杂的事情将需要它,例如验证):#includestructA{A():a(2){};inta;};BOOST_PYTHON_MODULE(boost_python_lambda){boost::python::class_("A")//.def_readonly("a",&A::a)//theclassicalway:worksfine.add_property("a",[](constA&a){returna

c++ - Boost Type Erasure的实践与发现

我正在阅读有关boosttypeerasure的文章,我正在尝试找出潜在的用途。我想在阅读有关该主题的大量文档(看起来很大)时稍微练习一下。引用最多的应用程序领域是客户端和服务器之间的网络/交换数据。你能推荐一些其他的例子或练习,我可以在其中玩这个库吗? 最佳答案 类型删除在非常多的情况下非常有用,以至于它实际上可能被认为是一种从根本上缺失的语言功能,它将泛型和面向对象的编程风格联系起来。当我们在C++中定义一个类时,我们真正定义的是一个非常具体的type和一个非常具体的interface,而这两个东西不一定需要相关。type处理数

c++ - 当我可以返回一个指针时,为什么要使用 boost::optional

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭6年前。Improvethisquestion如果我有一个find函数,有时可能无法找到所需的东西,我倾向于让该函数返回一个指针,这样一个nullptr指示该东西没有找到。例如Student*SomeClass::findStudent(/**somecriteria.*/)如果Student存在,返回一个指向找到的Student对象的指针,否则返回nullptr。我也看到boost::optional也为此目的而提倡。例如。When

c++ - boost asio 和 c++11 是否匹配?

我的一个客户希望我制作一个高性能、可靠的服务器,通过套接字接收数据流。他希望它是用c++编写的我全职使用C++已经有一段时间了,所以我一直在阅读一些东西。Asio似乎是用c++进行联网的一个不错的选择,而c++11似乎是一个很棒的c++新版本,具有许多新功能。我的问题:是否可以可靠地使用两者?是否有意义?我应该避免某些c++11功能,例如lambda吗? 最佳答案 我主要根据您计划的目标编译器来制定“要避免的C++11功能”。我看不出有任何理由避免使用lambda——所有主要的编译器都已经支持它们,并且它们大大提高了可读性。另一方面

c++ - 为什么 boost 如此大量地模板化?

在boost中有很多地方我看到了模板化的类,不禁思考为什么编写它的人使用模板。例如,互斥锁类。所有互斥锁概念都作为模板实现,您可以在模板中简单地创建一些基类或具有与概念匹配的接口(interface)的抽象类。回答后编辑:我考虑过虚函数的成本,但有时为了更好地理解而放弃很少的性能损失是否值得?我的意思是有时(尤其是在使用boost的情况下)真的很难理解模板化代码和解密由于误用模板而导致的编译器错误。 最佳答案 模板可以在编译时高度优化,而不需要虚函数。许多模板技巧都可以被认为是编译时多态性。既然你在编译时就知道你想要哪些行为,为什么

c++ - boost 定时器 : how to get time when I need?

所以我读了这个boostdocs但我还是不知道如何做这么简单的事情intmain(){//stuffstartTimer();//dostuffinti=getTimerValue();//stuff}所以为了获得我已经完成的事情的执行时间。怎么办? 最佳答案 使用boost::timer#includeintmain(){boost::timert;//starttiming...doubleelapsed_time=t.elapsed();...}请注意,boost::progress_timer的析构函数将显示时间。因此,如果

c++ - boost::asio::spawn 是做什么的?

我无法在脑海中形成控制流如何随spawn发生的画面。当我调用spawn(io_service,my_coroutine)时,它是否向io_service队列添加了一个新的处理程序来包装对my_coroutine的调用?当我在协程中调用一个异步函数并将我的yield_context传递给它时,它会暂停协程直到异步操作完成吗?voidmy_coroutine(yield_contextyield){...async_foo(params...,yield);...//controlcomeshereonlyoncetheasync_foooperationcompletes}我不明白的是我

c++ - boost program_options 是如何工作的?

对我来说奇怪的是,boost的options_description使用多行代码,没有反斜杠、分号或逗号。我做了一些研究,但一无所获。(代码取自officialboost'stutorial):intopt;po::options_descriptiondesc("Allowedoptions");desc.add_options()("help","producehelpmessage")("optimization",po::value(&opt)->default_value(10),"optimizationlevel")("include-path,I",po::value>

c++ - Boost 有 GUI 库吗?

我想使用Boost库,我想知道我可以使用什么GUI?是否有任何用于Boost的GUI库?以及如何将GUI和Boost相互集成?感谢您的帮助。 最佳答案 不,Boost没有GUI库。如果您需要多平台C++GUI库,请查看例如Qt.不过,在Boost和GUI库之间没有什么可以“集成”的。 关于c++-Boost有GUI库吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/516041

c++ - Boost Log运行时优化

我正在为我的应用程序的日志记录平台使用Boost-Log和全局严重性记录器。分析显示boost::log::v2s_mt_posix::core::open_record最多可以占用总执行时间的25%。我确实有很多日志消息,但我不认为它们会如此昂贵,因为它们是较低的严重性,它们被过滤。有没有办法让这些消息在运行时的开销不那么大?(再次强调:我希望即使在过滤时也会有很小的开销,当然在未过滤时开销会更大)。通过创建一些包装器宏,编译时相对容易“解决”这个问题。更新了示例工作代码:#include#include#include#include#include#include#include