草庐IT

dynamic_text

全部标签

c++ - c++ 中的复杂 dynamic_cast

我在C++中有以下情况:抽象基类Abstract1和Abstract2。它们是无关的。类Foo派生自Abstract1和Abstract2我在一个编译单元中,我没有关于类Foo的信息(没有声明,没有定义)。只有Abstract1和Abstract2是已知的。(实际上,Foo甚至定义在一个DLL中)dynamic_cast是否允许从Abstract1*转换为Abstract2*?这是标准吗? 最佳答案 你所描述的是所谓的cross-cast。对于dynamic_cast(v),标准在[expr.dynamic.cast]/8中指定If

c++ - 使用 std::dynamic_pointer_cast 向上转换 std::shared_ptr

我开始在C++0X/11中使用智能指针,但遇到了一个特殊情况。我想使用shared_ptr向上转换一个对象的实例。Extend类继承自Base类,其中Base类具有虚拟析构函数以使其具有多态性(否则dynamic_pointer_cast会提示非多态类转换)。如果因此:std::shared_ptrobj=std::make_shared();然后我做:obj=std::dynamic_pointer_cast(obj);安全吗?其他指向该对象的指针会怎样?是否只有obj将其视为Extend,而其他共享指针仍将其视为Base?向上转换同一实例是否安全,还是我应该做其他事情?编辑:感谢您

c++ - 断言中的 dynamic_cast 导致错误

我正在使用过时的VisualStudio2008(让我为您省去“这是您的问题”的麻烦。)这似乎是VisualStudio的问题:http://rextester.com/XKFR77690这似乎是assert的问题宏:http://ideone.com/bhxMi0给定这些结构:structbase{virtual~base(){}};templatestructFoo:base{Tfoo;};我能做到:base*test=newFoo>;if(dynamic_cast>*>(test)!=NULL)cout但是当我使用与if中完全相同的代码时-assert中的声明:assert(dy

c++ - 带有 const 指针的 boost::dynamic_pointer_cast 不起作用?

假设我有两个类,A和B,其中B是A的子类。我还有以下功能:voidfoo(boost::shared_ptra){boost::shared_ptrb=boost::dynamic_pointer_cast(a);//Error!}用gcc编译会出现以下错误:C:\Boost\include/boost/smart_ptr/shared_ptr.hpp:Inconstructor'boost::shared_ptr>::shared_ptr(constboost::shared_ptr&,boost::detail::dynamic_cast_tag)[withY=constA,T=c

c++ - C++ 中的 dynamic_cast 开销

我知道dynamic_cast有运行时检查,因此考虑更安全(可以在失败时返回空指针)但比static_cast慢。但是两者之间的开销有多糟糕?我真的应该考虑在循环中使用static_cast来解决常规大型项目中的性能问题吗?或者差异很小,只与特殊的实时程序有关。 最佳答案 你分析过它吗?规则是:当您知道目标类型有效时使用static_cast。当您不确定时使用dynamic_cast,并且您需要程序为您查找对象的运行时类型。就这么简单。所有其他考虑因素都是次要的。 关于c++-C++中的

windows - 是否可以在 .text 段中使用 NASM 中的 DB 指令创建可写变量?

我试过在.text段中使用例如声明变量file_handle:dd0.但是,尝试在此变量中存储一些内容,例如mov[file_handle],eax会导致写入错误。我知道,我可以在.data段中声明可写变量,但为了使代码更紧凑,我想像上面那样尝试。使用堆栈来存储这些值(例如文件句柄)是唯一的可能性吗?还是我可以以某种方式写入上面的变量? 最佳答案 可执行代码段默认是不可写的。这是一项基本的安全预防措施。不,这不是一个好主意。但如果你坚持,因为这毕竟是一个玩具项目,那就去吧。您可以通过让链接器知道将其标记为可写,例如将以下参数提供给M

windows - Html5 Canvas : Rotated text looks distorted on Google Chrome

我在HTML5canvas中旋转了一个文本。除了谷歌浏览器,它在所有浏览器上看起来都很好。它在Windows上的chrome上看起来失真。另外,它在MAC上看起来不错。为什么会这样?我使用的是Chromebeta20。是HTML5问题还是GoogleChrome或Windows错误?我该如何解决这个失真问题?body{margin:0px;padding:0px;}#myCanvas{border:1pxsolid#9C9898;}window.onload=function(){varcanvas=document.getElementById("myCanvas");varcont

windows - Sublime Text 3 上的 SASS - [解码错误 - 输出不是 utf-8]

我今天一直在尝试在sublimetext3中使用sass,为此我安装了Ruby、RubySASSgem和Sublime包Sass和SassBuild。一切似乎都运行良好,但是当我尝试构建css文件(使用Sass构建包)时,我得到了这个奇怪的错误:[Decodeerror-outputnotutf-8][Finishedin0.1swithexitcode1][cmd:['sass','--update','F:\\ProgramFiles(x86)\\wamp\\www\\singlepage\\wp-content\\themes\\manaca\\style.scss:F:\\Pr

c++ - 为什么在 win32 中有不同的 TEXT like macros for same thing?

我想知道为什么会出现T、TEXT、_TEXT、__TEXT或__T等宏,而它们最终都做同样的事情。即如果定义了UNICODE,则将“字符串”映射到L“字符串”。感谢您的回答。在更实际的方法中,有人可以向我解释下面给出的代码的行为吗?#include#include#include//For_Tand_TEXT#include//For__TEXTint__cdeclmain(){printf("%s",_TEXT(__FILE__));//Worksfineprintf("%s",_T(__FILE__));//Worksfineprintf("%s",__TEXT(__FILE__)

python - 在 python 中包装 Microsoft Dynamics Business Connector .net 程序集

我正在为MicrosoftDynamicsBusinessConnector.net程序集编写一个python包装器。这是我的代码:"""Implementswrapperforaxaptabusinessconnector."""importpathlibfrommsl.loadlibimportLoadLibraryimportclrDLL_PATH=pathlib.Path(__file__).parent/'Microsoft.Dynamics.BusinessConnectorNet.dll'deftest_msl_connector():"""GetAxaptaobject