草庐IT

my_template

全部标签

c++ - 关键字 'template' 混淆了 MSVC

关于模板的“哪个编译器是正确的”问题之一。考虑以下内容:templateclassContainer{public:templateclassiterator;};templatetemplateclassContainer::iterator{public:iterator&operator++();};现在为operator++提供定义离线它看起来像这样:templatetemplatetypenameContainer::templateiterator&Container::iterator::operator++(){//doyourthingreturn*this;}果然几

c++ - 使用 std::tuple 构建基于 vector 的数据集请引用 variadic-templates

我想制作一个类模板如下:templateclassVectorTuple;例如,VectorTuple将实例化为Tuple,vector,vector>我对可变参数模板不熟悉。最糟糕的方法是从中复制代码并修改它。有没有一种简单的方法可以直接使用std::tuple来定义我的VectorTuple。 最佳答案 如果您正在寻找typedefvariadic-templates类型,那么,templateusingVectorTuple=std::tuple...>;现在你可以像这样使用它了VectorTupleobj;

C++11/14/17,GCC 7 与 GCC 8 : Name lookup for friend class templates

我想弄清楚以下代码在GCC7中是否有效,但在GCC8.1中无效。代码的作用是:定义(并转发声明)类模板MyGoodFriend(在全局命名空间中)在inner命名空间中定义一个类模板Befriended使MyGoodFriend的所有特化成为Befriended的friend有问题的部分是templatefriendclassMyGoodFriend;我明白问题是什么了。GCC8.1要求我在friend声明中使用完全限定名称::MyGoodFriend-然而,GCC7对MyGoodFriend很满意。这是代码:templateclassMyGoodFriend;namespaceinn

c++ - 在不需要时使用 "template"和 "typename"消歧器

Thisquestion涵盖何时以及为何在C++模板代码中需要typename和template消歧器。在C++03中不需要这些消歧器的情况下使用它们是否有效?在C++11中怎么样? 最佳答案 对于“有效”的某些定义,它在符合C++03/C++11的编译器中有效。C++03ISO/IEC14882:2003§14.2.5:[Note:justasisthecasewiththetypenameprefix,thetemplateprefixisallowedincaseswhereitisnotstrictlynecessary;i

c++ - 诅咒库 : why does getch() clear my screen?

我正在尝试使用C++学习curses库(pdcurses,因为我在Windows操作系统中)。我有一个显示3个窗口的程序,然后是一个while循环来根据getch()捕获的按键进行一些处理。当按下F1键时,循环退出。然而,尽管使用wrefresh()刷新了所有三个窗口,但在我输入第一次按键之前没有任何显示。没有while循环,一切都显示正常。我做了很多测试,好像第一次调用getch()会完全清除屏幕,但后续的不会。我的问题是:我错过了什么?起初,我想也许getch()正在调用一个隐式的refresh(),但为什么后续调用它的行为不同?非常感谢您的帮助。这是代码。#includeintm

c++ - 带有容器和默认分配器的模板模板参数 : can I make my declaration more compact?

我在看这个有趣的话题:https://stackoverflow.com/a/16596463/2436175我的具体案例涉及使用来自opencv的cv::Point_和cv::Rect_的标准容器声明模板函数。我想针对以下模板:我将使用的标准容器类型完成cv::Point_和cv::Rect_定义的基本数据类型我最终做出了以下声明:templateclassContainer_t>voidCreateRects(constContainer_t,std::allocator>>&points,constTvalue,Container_t,std::allocator>>&rects

c++ - 如何从 udp 端点获取 *my* ip

Boost.Asio的udp::endpoint有一个成员是远程地址。因为我在多个接口(interface)上监听(像这样):udp_socket(io_service,udp::endpoint(udp::v4(),port))在我的处理程序中,我不知道哪个网络接口(interface)收到了数据包。如果不遍历网络接口(interface)并在每个接口(interface)上寻找端点地址和我的IP之间的相似性,我能否获得我从中获取消息的接口(interface)的IP? 最佳答案 没有。Boost.Asio不提供识别数据报目标地址

c++ - Clang (OS X) 在特定的嵌套声明中需要 "template"关键字,而 VS 禁止它

我正在使用两个编译器(Xcodev5.0.2上的Clang和VisualStudio2012Update4)编写一个跨平台应用程序,我遇到了两个编译器不同意使用所需语法的场景嵌套声明中的template关键字。这是代码(归结为一个易于重现的测试用例):templatestructBase{templatestructInnerBase{};};templatestructDerived:publicBase{//the"template"keywordisREQUIREDinClang/OSXstructInnerDerived:publicBase::templateInnerBas

c++ - "template"关键字之前的 "class"关键字在做什么?

只是一些代码示例[不是现实生活中的例子]//atfilescopetemplatestructdemo{};templateclassdemo;//isthetemplatekeywordoptionalhere?第3行中的模板关键字是可选的吗?我以前没有(经常)看到模板关键字的这种用法。标准的哪一部分说允许这样做?编辑我认为g++有一个错误。templatestructdemo{};classdemo;//templatekeywordomitted在g++(4.5.1)上编译而在Comeau上失败"ComeauTest.c",line5:error:specializingclas

c++ - 没有参数的模板类 `template<>` 是什么意思?

没有参数的模板类是什么意思?例如,让我们以计算阶乘的模板类为例,其模板参数为N-N!。.基本上,这是类:templateclassFactorial{public:enum{fact=N*Factorial::fact};};但是,我发现这个类有一个“扩展类”,templateclassFactorial{public:enum{fact=1};};我的问题是:没有参数的模板是什么,template什么意思?提前致谢。 最佳答案 这个templateclassFactorial{public:enum{fact=1};};实际上是类