草庐IT

MYLIB_FUNCTION_ATTRIBUTE

全部标签

C++ 虚函数调用与 boost::function 调用的速度对比

我想知道与同一个boost::function调用相比,单继承虚函数调用的速度有多快。它们的性能几乎相同还是boost::function更慢?我知道性能可能因情况而异,但作为一般规则,哪个更快,速度有多大?谢谢,吉列尔姆--编辑KennyTM的测试对我来说足够有说服力。出于我自己的目的,boost::function似乎并不比vcall慢多少。谢谢。 最佳答案 作为一种非常特殊的情况,考虑调用一个空函数109次。代码A:structX{virtual~X(){}virtualvoiddo_x(){};};structY:publi

c++ - boost MPL : Call a (member) function only if it exists

我有一个类A,它有一个模板参数T。有些用例中类T提供函数func1(),有些用例中T不提供它。A中的函数f()应该调用func1(),前提是它存在。我认为这应该可以通过boostmpl实现,但我不知道如何实现。这里有一些伪代码:templateclassA{voidf(Tparam){if(T::func1isanexistingfunction)param.func1();}};如果是else-case会更好:templateclassA{voidf(Tparam){if(T::func1isanexistingfunction)param.func1();elsecout

c++ - 复制 boost::function 是否也复制闭包?

假设我有这样一个函数:voidsomeFunction(constExpensiveObjectToCopy&);如果我创建一个boost::functionoutifit,该函数将在其闭包中存储它自己的对象的克隆拷贝:boost::functionf=boost::bind(someFunction,x);//现在,如果我开始传递f,boost::function复制构造函数每次都会再次复制该对象,还是每个函数共享同一个闭包?(即像这样)boost::functionf2=f;callSomeFunction(f);etc. 最佳答案

C++ boost : Split function is_any_of()

我正在尝试在以下函数中使用boost/algorithm/string.hpp中提供的split()函数:vectorsplitString(stringinput,stringpivot){//Pivot:e.g.,"##"vectorsplitInput;//Vectorwherethestringissplitandstoredsplit(splitInput,input,is_any_of(pivot),token_compress_on);//SplitthestringreturnsplitInput;}下面的调用:stringhello="Hieafds##addgaeg

c++ - 模板错误 : no matching function call

我正在通过加速C++工作,遇到了Ex问题。10.2这些问题涉及重写上一章的中值函数,以便现在可以使用vector或内置数组调用中值。中值函数还应该允许任何算术类型的容器。我无法对下面详述的median进行两次调用-我收到了错误消息Nomatchingfunctionforcallto'median'我从一些研究中了解到,当使用模板时,应该在编译时知道类型。这可能是根本问题吗?有没有办法以某种方式将Type作为模板参数传递?到目前为止,这是我的代码:#include#include#include#include#includeusingnamespacestd;templateType

c++ - __attribute__ ((__packed__)) 对嵌套结构的影响是什么?

__attribute__((__packed__))对嵌套结构有什么影响?例如://Cversionstruct__attribute__((__packed__)){struct{charc;inti;}bar;charc;inti;}foo;//C++versionstruct__attribute__((__packed__))Foo{structBar{charc;inti;}bar;charc;inti;}foo;我知道foo会很紧凑,但是bar呢?会不会也塞得很紧?__attribute__((__packed__))是否使嵌套的struct也打包?

c++ - __attribute((const)) 的不一致 gcc 行为

我在gcc中遇到了一个关于用__attribute((const))标记的运算符和函数的非常奇怪的行为。逻辑和算术运算符导致不同的优化,我不明白为什么。这并不是真正的错误,因为__attribute((const))只是一个提示,不能保证其效果,但这仍然非常令人惊讶。谁有任何解释?这是代码。所以我定义了一个__attribute((const))函数:intf(int&counter)__attribute((const));intf(int&counter){++counter;return0;}然后我定义了一个运算符(operator)测试宏。这是通过宏而不是模板/仿函数完成的,以

c++ - Boost Spirit Qi Custom Syntesized Attribute(通过语义操作设置结构属性的特定成员)

假设我有一个我想用灵气解析成的结构,它是这样定义的:structdata_{boolexport;std::wstringname;data_():export(false){}};此外,假设结构已适应这样的融合:BOOST_FUSION_ADAPT_STRUCT(data_,(bool,export)(std::wstring,name))关联的规则是:qi::rule>rule_data;rule_data=-lexeme["SpecialText">>!(alnum|'_')][boost::phoenix::at_c=true]//Ifthisstringisfound,,se

c++ - SFINAE : Delete a function with the same prototype

我想知道这段有效代码之间有什么区别:#include#includetemplateusingis_ref=std::enable_if_t,bool>;templateusingis_not_ref=std::enable_if_t,bool>;template=true>voidfoo(T&&){std::cout=true>voidfoo(T&&){std::cout还有这个不起作用:#include#includetemplateusingis_ref=std::enable_if_t,bool>;templateusingis_not_ref=std::enable_if_t

javascript - jQuery 和触摸/移动 : Perform Function on Swipe Left/Right

如果移动用户用一根手指向左滑动,我如何才能让jQuery/JavaScript执行jQuery函数,如果他向右滑动,则执行另一个功能?如果用户向左/向右滑动,我喜欢将scrollLeft和scrollRight动画化到某个位置。我正在为桌面做同样的事情,通过左/右箭头进行键盘导航,效果很好。现在我需要同样的东西来在触摸设备上滑动。(如果可能,不用jQueryMobile或其他附加库) 最佳答案 好的,这是一个很长的答案,但它是值得的:jQuery(Swipevs.Touch)pageXandpageYkeepreturning0希望