草庐IT

dynamics-ax-2012

全部标签

c++ - dynamic_cast 中的模糊转换

考虑获取对象作为参数并打印其类型的问题:#includeclassA{};classB:publicA{};classC:publicA{};classD:publicC,publicB{};usingnamespacestd;templatevoidprint_type(T*info){if(dynamic_cast(info))cout(info))cout(info))cout(info))cout它给我以下错误:“从派生类‘D’到基类的转换不明确。”但是我没看出歧义在哪里:如果main(d)中声明的对象是D类型,为什么不能直接转换为A类型呢?此外,如果我传递一个字符串类型的参数

c++ - 从 Visual Studio 2010 到 2012 RC 编译 MFC 应用程序导致 LNK2038

我的项目在VS2010中的调试和Release模式下编译和运行正常。今天我尝试用VS2012编译它,但我得到了这个错误:1>GeneratingCode...1>pcrecppd.lib(pcrecpp.obj):errorLNK2038:mismatchdetectedfor'_MSC_VER':value'1600'doesn'tmatchvalue'1700'inNamesEditorDlg.obj我在代码中搜索“_MSC_VER”,但找不到任何匹配项。我也找不到“1600”或“1700”。所以我想知道如何解决这个问题。 最佳答案

c++ - 将 dynamic_cast 与模板一起使用

在用C++实现基于模板的工厂时,我创建了以下allocator函数来实例化给定的子类:templateParentClass*allocator(){ChildClass*child=newChildClass();ParentClass*parent=dynamic_cast(child);if(NULL==parent){deletechild;returnNULL;}returnparent;}一切正常,但是当通过静态代码分析工具(如coverity)运行代码时,deletechild;行被标记为逻辑死代码。我进行运行时检查的原因是为了断言,ChildClass是从ParentC

c++ - 如何序列化 boost::dynamic_bitset?

如何使用boost::dynamic_bitset成员序列化一个类?#include#include#include#include#includeclassA{friendclassboost::serialization::access;boost::dynamic_bitsetx;templatevoidserialize(Archive&ar,constunsignedint){ar&x;}};intmain(){Aa;std::stringstreamss;boost::archive::text_oarchiveoa(ss);oa编译报错(boost1.57)Infilei

c++ - 在 Visual Studio 2012 中执行完 C++ 程序后,内存泄漏是否仍然存在?

我不是编程新手,而是C++新手。我发现当我玩和与语言互动时,我学得更好。所以我发现的一件很酷的事情是如何让VisualStudio通过以下方式提醒您程序中的任何内存泄漏:#define_CRTDBG_MAP_ALLOC#include#include然后调用_CrtDumpMemoryLeaks();在程序退出并将所有内存泄漏打印到输出窗口之前,太棒了!我的问题是发现内存泄漏后是否需要重新启动VisualStudio2012?我需要重新启动计算机吗?这些东西会泄露多久?或者Windows会在执行结束时清理所有内存吗?如果这是真的,那么在VisualStudio中以“Debug模式”运行

c++ - 如何更改 VS 2012 中 WP8 C++ 组件中的 $(RootNamespace) 宏?

我正在尝试更改WP8运行时组件的$(RootNamespace)以解决此问题试图解决的相同问题:ChangingnamespacenameofC++componentinWindowsPhonecausesexception但是,RootNamespace宏定义的位置在VS2012中似乎已经移动。当我在选择我的C++项目后按下alt-enter时,我看到了:这与您右键单击>属性时看到的窗口相同,据我了解,情况并非如此。他们要么在VS2012中更改了这个神秘属性的位置,要么我出了什么问题。一段时间以来,我一直反对这个问题,所以我非常感谢你们能给我的任何帮助。提前致谢

c++ - 是否可以使用 dynamic_cast 进行模板类型检查?

templatevoidcheckObject(TgenericObject){MyClassA*a=dynamic_cast(genericObject);if(a!=NULL){//weknowitisoftypeMyClassA}MyClassB*b=dynamic_cast(genericObject);if(b!=NULL){//weknowitisoftypeMyClassB}}这样的事情可能吗?我们有一个模板类型,但我们想知道它是实际类型吗? 最佳答案 在模板世界中,您可能只想为每种类型专门化模板,而不是进行运行时检查

c++ - 为什么我在使用 dynamic_cast 和模板时收到错误 "A is an inaccessible base of B"?

为什么对f的调用没有解析为第一个函数重载?我收到错误:source.cpp:Infunction'intmain()':source.cpp:12:31:error:'A'isaninaccessiblebaseof'B'classA{};classB:A{};voidf(constA&){std::coutvoidf(T){std::cout(b));}请注意,如果我取出dynamic_cast,代码将起作用,但secondf被调用(它打印“Generic”)。但我想做的是接到第一个电话。我认为dynamic_cast会起作用,但由于某种原因它会导致问题。我在这里做错了什么?

c++ - std::thread Visual Studio 2012 警告

我试图了解如何通过VisualStudio2012使用新的std::thread。我正在尝试编译以下代码。#include#includeclassscoped_thread{std::threadt_;public:explicitscoped_thread(std::thread&t):t_(std::move(t)){if(!t_.joinable())throwstd::logic_error("Nothread");}~scoped_thread(){t_.join();}private:scoped_thread(scoped_threadconst&);scoped_th

c++ - NOMINMAX 与 Visual Studio 2012 MFC 项目

这个问题在这里已经有了答案:PossibleproblemswithNOMINMAXonVisualC++(4个答案)关闭7年前。我想在使用MFC的VisualStudioC++项目中使用#defineNOMINMAX,这样我就可以使用std::min和std::max。但是,当我将此行放入我的stdafx.h时,出现以下编译错误:c:\programfiles(x86)\windowskits\8.0\include\um\GdiplusTypes.h(475):errorC3861:'min':identifiernotfound我不是故意使用GDI+,这是MFC必须做的事情。是否