草庐IT

has_typedef_X

全部标签

C++ typedef typename 类名::模板

我无法解析以下代码行的含义:typedeftypenameAllocator::templaterebind::othermapped_type_allocator;这是分配器重新绑定(bind)的代码(第63行https://gcc.gnu.org/onlinedocs/libstdc++/libstdc++-api-4.5/a00756_source.html)这与下面的有何不同?typedeftypenameAllocator::rebind::othermapped_type_allocator; 最佳答案 typedeft

c++ - 不清楚的 typedef 类型

我看到这段代码,想知道它是什么意思。但即使看了大约15分钟,我还是看不懂。templatestructVector4{typedefTVector4::*constvec[4];staticconstvecconstVec;//justtohavesomememberinstancesofTTmember1,member2,member3,member4;};那么constVec的类型是什么?请不要只是重复typedef,而是用通用语言解释。到目前为止我的笔记:为什么有两种类型(T和Vector4),这是函数指针吗?::*是什么意思?从Vector4的范围中获取所有内容?它是一个常量指

c++ - 对 self 的 typedef 有什么影响吗?

我遇到过一些具有以下内容的C++代码:typedefRequestRequest;这只是空操作还是这个typedef实际有影响,如果有,它有什么影响? 最佳答案 您可以在第7.1.3节中阅读与C++2003ANSIISOIEC148822003的typedef说明符相关的所有规则。在7.1.3中,2)据说如果名称已经引用某种类型,则允许标识typedef。这是合法的:typedefintRequest;typedefRequestRequest;//Redefines"Request"withnoeffect它不是:typedefR

c++ - 什么是 typedef int var[1];做?

我遇到过以下代码:typedefintvar[1];//orvar[3]它到底有什么作用?我不明白下标添加了什么,因为现在我可以为int定义“var” 最佳答案 typedef声明使用与普通变量声明相同的语法。不同之处在于,不是声明“一个名为x的y变量”,而是声明“一个名为x的类型,它是输入y。”语法在其他方面相同。那么,让我们从您的示例中删除typedef,看看我们得到了什么:intvar[1];var是一个类型为int[1]的变量,或者说,一个int的数组。如果我们将typedef添加回去:typedefintvar[1];这使

c++ - 使用 typedef 声明函数有什么意义?

我有点困惑为什么我可以使用typedef来声明函数。这是我的例子:intAdd(inta,intb){returna+b;}intMult(inta,intb){returna*b;}typedefintfunc(int,int);intmain(intargc,char*argv[]){funcAdd;coutintfuncAdd;我可以直接调用Add()上面有什么意义?谁能解释一下我应该对函数使用typedef的场景? 最佳答案 首先,这个typedef在这里完全没用。但如果Add()就有意义了将在另一个编译单元中定义。主要好处

C# Dll 导入失败 : "The application has failed to start because its side-by-side configuration is incorrect"

我有一个c#.net4应用程序,使用vs2010。我正在尝试导入一个c++dll(基于vs2005)。[DllImport("Card.dll")]我得到了失败:UnabletoloadDLL'Card.dll':Theapplicationhasfailedtostartbecauseitsside-by-sideconfigurationisincorrect.Pleaseseetheapplicationeventlogorusethecommand-linesxstrace.exetoolformoredetail.(ExceptionfromHRESULT:0x800736B

c++ - 编译错误 : base operand of ‘->’ has non-pointer type ‘Token’

我在尝试编译我的C++代码时遇到标题中提到的错误。我无法理解我在这里做错了什么。编译器在我执行booloperator==(Token)函数时出现问题。我认为这是使运算符(operator)重载的方法。关于为什么编译器不喜欢我提到的任何线索this->terminal还是this->lexeme?classToken{public:tokenTypeterminal;std::stringlexeme;Token*next;Token();booloperator==(Token&t);private:intlexemelength,line,column;};boolToken::o

c++ - 匿名 namespace 内部/外部的 Typedef?

在.cpp文件中,这两种方式有什么区别/偏好吗?//filescopeoutsideanynamespaceusingX::SomeClass;typedefSomeClass::BufferMyBuf;速度/速度namespace{//anonymoususingX::SomeClass;typedefSomeClass::BufferMyBuf;} 最佳答案 我会说第二种用法相当不常见,至少在我目前看到的代码中是这样(而且我已经看到相当多的C++代码)。您能解释一下第二种技术背后的原因吗?您通常会在C++实现文件中使用匿名命名空

c++ - typedef 具有所有默认参数的模板

我声明了一个模板类,所有参数都具有默认参数,例如:templateclassFoo{};那么下面两个是等价的:Fooone;Footwo;但是,我不能这样做:Foothree;是否可以使用相同名称但没有括号的typedef来实现这一点,如下所示:typedefFooFoo; 最佳答案 我做了类似下面的事情,不知道你喜不喜欢:templateclassbasic_Foo{};typedefbasic_FooFoo; 关于c++-typedef具有所有默认参数的模板,我们在StackOver

c++ - 错误 : Field has an incomplete type

quaternion.h:15:错误:字段“v”的类型不完整嗨!我陷入了一个我似乎无法解决的错误。下面是我的代码:#ifndefQUATERNION_H#defineQUATERNION_H#include"vec3.h"classVec3;classQuaternion{public:Quaternion(Vec3v);Quaternion(doublew,Vec3v);Vec3v;我的Vec.h看起来像这样:#ifndefVEC3_H#defineVEC3_H#include"point.h"#include"quaternion.h"#includeclassQuaternion