草庐IT

pseudo-typedef

全部标签

c++ - C++ 中的内部 typedef - 好风格还是坏风格?

我最近发现自己经常做的事情是声明与该类中的特定类相关的typedef,即classLorem{typedefboost::shared_ptrptr;typedefstd::vectorvector;////...//};然后在代码的其他地方使用这些类型:Lorem::vectorlorems;Lorem::ptrlorem(newLorem());lorems.push_back(lorem);我喜欢它的原因:它减少了类模板引入的噪音,std::vector变成Lorem::vector等。它用作意图声明-在上面的示例中,Lorem类旨在通过boost::shared_ptr进行引用

c++ - 带有成员函数指针的 typedef 语法

根据MSDN,typedef语法是:typedeftype-declarationsynonym;很简单:typedefintMY_INT;但是成员函数指针类型定义到底是如何遵守这条规则的呢?typedefint(MyClass::*MyTypedef)(int);100%混淆–同义词(MyTypedef)在中间?谁能解释一下从MSDN非常容易理解的语法格式到上面typedef的反向/随机/前/最后/混合语法的逻辑步骤是什么?*编辑感谢所有快速的答案(以及我的帖子的美化):) 最佳答案 thesynonym(MyTypedef)is

c++ - 带有成员函数指针的 typedef 语法

根据MSDN,typedef语法是:typedeftype-declarationsynonym;很简单:typedefintMY_INT;但是成员函数指针类型定义到底是如何遵守这条规则的呢?typedefint(MyClass::*MyTypedef)(int);100%混淆–同义词(MyTypedef)在中间?谁能解释一下从MSDN非常容易理解的语法格式到上面typedef的反向/随机/前/最后/混合语法的逻辑步骤是什么?*编辑感谢所有快速的答案(以及我的帖子的美化):) 最佳答案 thesynonym(MyTypedef)is

c++ - C++中 'struct'和 'typedef struct'之间的区别?

在C++中,有什么区别:structFoo{...};和:typedefstruct{...}Foo; 最佳答案 在C++中,只有细微的差别。它是从C中继承下来的,在这方面有所作为。C语言标准(C89§3.1.2.3、C99§6.2.3和C11§6.2.3)要求为不同类别的标识符(包括标记标识符(对于struct/union/enum)和普通标识符(用于typedef和其他标识符)。如果你刚才说:structFoo{...};Foox;你会得到一个编译器错误,因为Foo只在标签命名空间中定义。您必须将其声明为:structFoox;

c++ - C++11 中的 'typedef' 和 'using' 有什么区别?

我知道在C++11中我们现在可以使用using来编写类型别名,例如typedefs:typedefintMyInt;据我了解,相当于:usingMyInt=int;新语法源于努力表达“模板类型定义”:templateusingMyType=AnotherType;但是,对于前两个非模板示例,标准中是否还有其他细微差别?例如,typedef以“弱”的方式进行别名。也就是说,它不会创建新类型,而只会创建新名称(这些名称之间隐含转换)。和using是一样的还是生成一个新的类型?有什么不同吗? 最佳答案 它们是等效的,来自标准(强调我的)(

C++ 'typedef' 与 'using ... = ...'

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:WhatarethedifferencesbetweentypedefandusinginC++11?以下代码编译并运行。我的问题是重命名模板特化的“typedef”和“using”方法有什么区别?templatestructmyTempl{Tval;};intmain(int,charconst*[]){usingtempl_i=myTempl;templ_ii;i.val=4;typedefmyTempltempl_f;templ_ff;f.val=5.3;return0;}编辑:如果没有区别,你更喜欢哪

C++ 'typedef' 与 'using ... = ...'

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:WhatarethedifferencesbetweentypedefandusinginC++11?以下代码编译并运行。我的问题是重命名模板特化的“typedef”和“using”方法有什么区别?templatestructmyTempl{Tval;};intmain(int,charconst*[]){usingtempl_i=myTempl;templ_ii;i.val=4;typedefmyTempltempl_f;templ_ff;f.val=5.3;return0;}编辑:如果没有区别,你更喜欢哪

c++ - typedef 结构中的重载运算符 (c++)

我想创建一个名为pos的typedef结构(从位置开始),它存储坐标x和y。我正在尝试为此结构重载一些运算符,但它无法编译。typedefstruct{intx;inty;inlineposoperator=(posa){x=a.x;y=a.y;returna;}inlineposoperator+(posa){return{a.x+x,a.y+y};}inlinebooloperator==(posa){if(a.x==x&&a.y==y)returntrue;elsereturnfalse;}}pos;我也想知道这之间的区别:inlinebooloperator==(posa){i

c++ - typedef 结构中的重载运算符 (c++)

我想创建一个名为pos的typedef结构(从位置开始),它存储坐标x和y。我正在尝试为此结构重载一些运算符,但它无法编译。typedefstruct{intx;inty;inlineposoperator=(posa){x=a.x;y=a.y;returna;}inlineposoperator+(posa){return{a.x+x,a.y+y};}inlinebooloperator==(posa){if(a.x==x&&a.y==y)returntrue;elsereturnfalse;}}pos;我也想知道这之间的区别:inlinebooloperator==(posa){i

css - :eq pseudo selector not working with Selenium WebDriver/Chrome

我正在尝试使用selenium中的css选择器从网站获取给定类的前两个div。我将使用SO来演示问题。如果我在控制台chrome开发工具中尝试选择器,它会起作用:$('div.question-summary:eq(0)')[​…​​]$('div.question-summary:eq(1)')[​…​​]但是如果我使用selenliumwebdriver执行以下操作,我会收到错误消息:require'selenium-webdriver'driver=Selenium::WebDriver.for:chromedriver.navigate.to('http://www.stack