草庐IT

dynamic-properties

全部标签

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++ - 智能指针和 dynamic_cast

如果我已经回答了这个问题,但我找不到答案,我提前道歉。注意:这是家庭作业,所以如果您觉得回答起来不自在,我完全理解。我有以下内容:ptr.h:templateclassPtr{T*address;size_t*counter;Ptr(T*address):address(address),counter(newsize_t(1)){}Ptr(constPtr&other):address(other.address),counter(other.counter){++(*counter);}virtual~Ptr(){if(0==--(*counter)){deleteaddress;

c++ - 如何迭代 boost::property_tree 中的 XML 结构

我的XML结构如下:正在读入boost::property_tree,有1..许多s,然后在该元素内的任意深度可能有1..Many小号有没有办法遍历直接(在一个循环中)按照它们在文档中出现的顺序?我看过equal_rangevoiditerateOverPoints(){constchar*test="""""""""""""""""""""""""""";boost::property_tree::ptreemessage;std::istringstreamtoParse(test);boost::property_tree::read_xml(toParse,result_tre

c++ - 更改静态库的 "Dynamic RTL"设置有什么影响?

在EmbarcaderoRADStudio2010中,静态库的项目选项中有一个名为“动态RTL”的设置。(它在TLib部分。)我的印象是,决定是动态链接还是静态链接RTL是在链接时而不是编译时做出的。但是静态库只能编译;没有链接步骤。那么,更改此选项如何影响我的静态库?我有一些使用这些静态库的.exe和.dll项目,我在这些项目中设置了“动态RTL”选项。这是有道理的,因为他们实际上有一些东西要链接,但我不明白这个设置对静态库有什么影响。如果静态库的DynamicRTL=true而使用该库的DLL和EXE的DynamicRTL=false,是否会导致任何问题?

c++ - boost::property_tree::json_parser 和两个字节宽的字符

简介std::stringtext="á";“á”是两个字节的字符(假设是UTF-8编码)。所以下一行打印2。std::cout但std::cout仍能正确打印文本。std::cout我的问题我将text传递给boost::property_tree::ptree然后传递给write_jsonboost::property_tree::ptreeroot;root.put("text",text);std::stringstreamss;boost::property_tree::json_parser::write_json(ss,root);std::cout结果是{"text":

c++ - 为什么 dynamic_cast 是邪恶的还是不邪恶的?在这种情况下我应该使用 dynamic_cast 吗?

有人说theuseofdynamic_castoftenmeansbaddesignanddynamic_castcanbereplacedbyvirtualfunctions为什么使用dynamic_cast被认为是糟糕的设计?假设我有函数名称func(Animal*animal,intanimalType),func中的实现如下:boolfunc(Animal*animal,intanimalType){.../*AnimalisthebaseclassofBear,Panda,Fish....dynamic_castanimaltorealanimals(Bear,Panda,F

c++ - 为什么虚函数调用比 dynamic_cast 快?

我写了一个简单的例子,估计调用虚函数的平均时间,使用基类接口(interface)和dynamic_cast和调用非虚函数。这是它:#include#include#include#include#defineCALL_COUNTER(3000)__forceinlineintsomeFunction(){return5;}structBase{virtualintvirtualCall()=0;virtual~Base(){};};structDerived:publicBase{Derived(){};virtual~Derived(){};virtualintvirtualCal

c++ - 避免 dynamic_cast/RTTI

我最近正在为一个副项目(cpp-markdownlibrary,出于好奇)编写一段C++代码,遇到了一个编码问题,我想听听一些意见。cpp-markdown有一个名为Token的基类,它有许多子类。两个主要的子类是Container(包含其他Token的集合)和TextHolder(用作Token的基类当然是包含文本的)。大部分处理是通过虚函数处理的,但其中一些处理在单个函数中处理效果更好。为此,我最终使用dynamic_cast将指针从Token*向下转换为它的子类之一,这样我就可以调用特定于子类的函数,并且它的子类。转换不可能失败,因为代码能够通过虚函数(例如isUn​​match

c++ - Qt 中的 Q_PROPERTY?

我真的想不通为什么我需要它,一直在阅读:http://doc.qt.io/qt-4.8/properties.html#requirements-for-declaring-properties还是不能真正理解它的用途。任何形式的帮助都会很棒! 最佳答案 了解QtPropertySystem,这就像一个普通的类方法,但它可以与Qt的元对象系统一起使用:QPushButton*button=newQPushButton;QObject*object=button;button->setDown(true);object->setPro

c++ - dynamic_cast<>有多快

...大约与典型的std::string::operator==()相比?我在下面提供了更多详细信息,我不确定它们是否有任何相关性。具有复杂性或近似值的答案就足够了。谢谢!详细信息:我将在列表的for循环中使用它来查找一些特定实例。我估计我的平均继承水平为3.5类。我正在寻找的那个有一个父类、一个祖父类和在这两个“接口(interface)”之上,即用几个virtualvoidabc()=0;来抽象类。没有我要查找的子类。 最佳答案 这在很大程度上取决于您的编译器、特定的类层次结构、硬件以及各种因素。您确实需要直接在您的特定应用程序