草庐IT

has_typedef_X

全部标签

c++ - 是否可以使用强制编译器错误扩展 typedef?

我一直在使用下面显示的方法来强制编译器对我大喊一个变量类型:templatestructshow_type;将它与所需的变量一起使用,这样编译器就会错误地给出一个不完整的结构类型:typedefint32_ts32;s32a;show_type();因此GCC5.3.0产生错误:invaliduseofincompletetype'structshow_type'和MSVC2015:'show_type':noappropriatedefaultconstructoravailable现在我想知道是否有办法强制错误显示typedef的完整层次结构s(即s32->int32_t->int

带有概念的 C++ 别名模板(typedef)?

http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4553.pdfgcc6:-f概念templateconceptboolString=requires(Ts){{s.clear()}->void;//etc.};voidprint(constString&message);//voidprint(Strmessage);//IwantStr=constString&voidtest(){std::stringstr;print(str);}有没有办法将Str声明为constString&? 最

c++ - 如何在 C++ 中预先声明一个 typedef 类

比如类A有类B的一个成员,一般情况下,为了最小化编译依赖,我们经常让类A包含类B的指针,并在类A的声明中预先声明类B。看起来像这样://B.hclassB{....};//A.hclassB;classA{B*b;A();...};//A.cpp#include"B.h"A::A(){b=newB();...};但现在我有一个问题:如果B的类是这样使用typedef定义的:typedefclass{....}B;先前预先声明的方法在这种情况下将不起作用。我应该如何在A.h中预先声明B类? 最佳答案 在代码typedefclass{.

c++ - 在我的命名空间中公开外部库类时使用 typedef 或 using 关键字

我想将外部库中的类公开给我库的用户。具体来说,我想将类“导入”到我的命名空间中,这样用户就不需要知道我在幕后使用的是什么库。通常,我似乎可以通过使用typedef或简单地通过using类来完成此操作。是否有任何理由选择一种方法而不是另一种方法(或做其他事情)?(我的学历好像有点差距:))例如:我想创建一个使用Boost::Asio的串口管理器。namespaceMySerialManager{//shouldIuseatypedeftypedefboost::asio::serial_port_base::flow_controlflow_control;//orausing...us

c++ - 当我什至无法进入代码时如何调试 "This application has requested the Runtime to terminate it in an unusual way."?

我有一个C++程序,它在进程启动后立即给出此错误-显然是在任何用户代码执行之前。它仅在启用内联时发生。即使内置了调试符号,我也无法进入代码。当我在VisualStudio中按下F10时,我收到了错误并且程序停止了。我在“调试/异常”中检查了所有异常/检查,但仍然没有休息。通常我会认为这样的事情是由于缺少运行时依赖项造成的,但我很肯定这不是这里的情况(已通过DependencyWalker验证)。编辑:我使用了SteveTownsend对CDB的推荐,现在我能够单步执行程序的预用户代码部分。最终的堆栈跟踪是:Child-SPRetAddrCallSite00000000`0008e308

c++ - 将类型解析为 class::typedef 的更短方法

我有几个类(class)。现在它们被一个符号隔开。其中很少包含type(typedef),也很少没有。structA{...public:typedefsomeclasstype;}structB{...};我想实现一个SFINAE以这样的方式上课,Resolve::typeo1;//shouldresolveto'A::type'Resolve::typeo2;//shouldresolveto'B'一种方法是使用上一个链接中所示的基本SFINAE,它检查T是否包含type,然后使用bool检查器.例如,templatestructhas_type{typedefcharyes[3]

c++ - 警告 : auto-importing has been activated without --enable-auto-import specified on the command line

我的环境:QtCreator2.3.1Qt4.7.4(32位)Windows7旗舰版(64位)尝试在QtforWindows中重建项目时,我遇到以下编译器警告:warning:auto-importinghasbeenactivatedwithout--enable-auto-importspecifiedonthecommandline.Thisshouldworkunlessitinvolvesconstantdatastructuresreferencingsymbolsfromauto-importedDLLs.发出此警告的项目包含一个DLL文件。尽管有警告,DLL中的类和函数

c++ - 非法引用非静态成员...typedef?

为什么会这样ErrorC2597:Illegalreferencetonon-staticmember'derived>::T'当我尝试在VisualC++2010x64中编译此代码时?(在x86上似乎没问题……哪一个是正确的?)structbase{typedefintT;};templatestructderived:base{usingbase::T;derived(T=T()){}};intmain(){derived();return0;} 最佳答案 正如Praetorian的评论所提到的,问题在于T()默认值。根据错误详

C++ 编译器错误 "cannot be thread-local because it has non-POD type”“

这个声明:___threadAa;生成此错误:cannotbethread-localbecauseithasnon-PODtypeA在哪里classA{public://functiondeclarationprivate://datamembers};我正在尝试使用命令ogsincludes&ogsmk在Linux上进行编译。我们有静态线程,即在我们的应用程序进入之前,我们知道线程的数量,因此目前的工作是通过声明A的数组来完成的,即Aa[Numberofthreads].我该如何解决这个问题? 最佳答案 假设您使用gcc,线程本

c++ - 增量构建 : Eclipse CDT does not notice that source has changed

在EclipseCDT中点击“构建”符号时,应该只构建已更改的源文件。EclipseCDT的一个非常恼人的行为是它经常忽略已进行的“微小”更改,但并不清楚微小的含义。然后输出是13:21:06****IncrementalBuildofconfigurationforproject****makeallmake:Nothingtobedonefor`all'.我测试刚刚所做的更改的唯一方法是清理并完全重建整个项目,这会浪费很多时间。这可能是什么问题,我该如何修复增量构建?编辑:会不会因为一些时钟同步问题而忽略了最近发生的变化? 最佳答案