草庐IT

some_function_returning_an_option

全部标签

c++ - 如何构建 Boost::program_options

我想使用boost::program_options。安装boost后,我​​认为我必须单独构建program_options(http://www.boost.org/doc/libs/1_43_0/more/getting_started/windows.html)。但我不知道该怎么做。我正在尝试编译C:\ProgramFiles\boost\boost_1_42\libs\program_options\example\first.cpp(http://www.boost.org/doc/libs/1_42_0/doc/html/program_options/tutorial.

c++ - spirit::qi :将继承的属性引用传递给 phoenix::function

以下代码是我正在尝试做的事情的简化版本。基本上,我有结构(玩具代码中的int_holder)和一个容器数据成员。我想插入一个对象(在本例中为int)并向父qi::rule返回一个指向新插入对象的指针。我通过引用将int_holder传递给语法,以便在解析时用值填充它,因此int_holder将是语法的继承属性。代码:#include#include#include#include#includenamespaceqi=boost::spirit::qi;namespacephoenix=boost::phoenix;structint_holder{int_holder(){}std:

c++ - 如何在 C++ 中重载 std::function 签名

我知道以前有人问过这个问题,但尽管我是一个相当有经验的编码员,但我不明白答案,也没有办法回应这些以前的问题来要求澄清。没有“回复”链接或任何东西。此外,那些问题已经很老了。所以,我重新问这个问题。我有一个类,我在其中重载+=运算符。我希望一个重载采用裸函数指针,而另一个采用std::function:voidoperator+=(void(*handler)());voidoperator+=(functionhandler);用法:MyClassa;a+=[](){DoSomething();};a+=[](void*x,Ty){DoSomething();};不幸的是,代码没有编译

c++ - 扭曲的逻辑 : a global variable in one file refers to an extern variable but is also referred by that extern variable

文件A.cpp:#includeexternintiA;externintiB=iA;intmain(){std::cout文件B.cppexternintiB;externintiA=2*iB;编译链接运行,out进来debug和release模式是0,0我的问题是它是如何工作的,为什么在链接阶段没有问题?我正在使用VC++2003。 最佳答案 初始化程序覆盖了extern关键字,因此这没有什么“神奇”:您只是在不同的翻译单元中声明和定义两个完全不相关的变量。来自StandardforProgrammingLanguageC++-

c++ - 为任意类型删除实现小缓冲区优化的简单方法(如在 std::function 中)。

我倾向于使用类型删除技术。它通常看起来像这样:classYetAnotherTypeErasure{public://interfaceredirectedtopImplprivate://Adaptingfunctiontemplate...friendYetAnotherTypeErasuremake_YetAnotherTypeErasure(...);classInterface{...};templateclassConcretefinal:publicInterface{//redirectingInterfacetoAdaptee};std::unique_ptrpImp

c++ - 如何在不传递大量参数的情况下处理类的 "many small functions"的想法?

随着时间的推移,我开始欣赏许多小函数的思维方式,我真的很喜欢它,但我很难摆脱羞怯将它应用到类中,尤其是那些有很多小函数的类非公共(public)成员变量。每个额外的辅助函数都会使界面变得困惑,因为代码通常是特定于类的,我不能只使用一些通用代码。(据我所知,无论如何,还是一个初学者,不知道那里的每个图书馆等)所以在极端情况下,我通常会创建一个辅助类,它成为需要操作的类的友元,因此它可以访问所有非公共(public)内容。另一种方法是需要参数的自由函数,但即使过早优化是邪恶的,而且我还没有真正分析或反汇编它......我仍然害怕有时仅仅想到传递我需要的所有东西,即使只是作为引用,即使每个参

c++ - 使用 boost.program_options 处理 '-'

在你说OVERKILL之前,我不在乎。如何让Boost.program_options处理所需的cat选项-?我有//visiblepo::options_descriptionoptions("Options");options.add_options()("-u",po::value(),"Writebytesfromtheinputfiletothestandardoutputwithoutdelayaseachisread.");po::positional_options_descriptionfile_options;file_options.add("file",-1);

c++ - 在编译时捕获 std::function 分配

我只想允许在我的代码库中使用std::function,前提是它不进行任何分配。为此,我可以编写类似下面的函数,并且只用它来创建我的函数实例:templatestd::functionmakeFunction(Functorf){returnstd::function(std::allocator_arg,DummyAllocator(),f);}如果DummyAllocator在运行时被使用,它将在何处断言或抛出。理想情况下,我想在编译时捕获分配用例。即templatestd::functionmakeFunction(Functorf){static_assert(sizeneed

c++ - GMock : How to return mock class variable as the return value

我是第一次尝试使用GMock(用于C++的谷歌模拟框架)。我有以下类(class):classLocalCache{public:virtualtime_tGetCurrentTime()=0;virtualintAddEntry(conststd::stringkey,std::string&value);virtualintGetEntry(conststd::stringkey,std::string&value);};GetEntry方法调用GetCurrentTime调用。我想模拟GetCurrentTime方法,以便我可以在测试中提前时钟以测试作为GetEntry调用的一部

c++ - 当 std::stringstream 使用 ("some content"构造时,tellg() 的预期行为是什么,std::ios::in|std::ios::ate)?

我有以下令我惊讶的代码(使用libstdc++4.8)...#include#include#includeusingnamespacestd;intmain(){std::strings("somecontent");std::stringstreamss(s,std::ios::in|std::ios::ate);std::istream&file=ss;//ss.clear();Makesnodifference...std::cout...具有以下输出。tellg()pos:0此行为与使用std::ifstream(std::ios::ate)时不同。此行为是否正确/符合预期?