草庐IT

c++ - 如何从客户端代码中隐藏模板化的非成员函数?

我有模板函数,比如说,templatevoidmysort(std::vector&vec){size_tb,m,e,...mysort(vec,b,m,e);}templatevoidmysort(std::vector&vec,size_tb,size_tm,size_te){size_tx,y,z;...mysort(vec,x,y,z);}公共(public)接口(interface)是一个只接受vector引用的接口(interface)。我想隐藏另一个,即实现,这样就没有客户端代码可以做mysort(vec,a,b,c);创建一个类,实现函数privatestatic感觉不

c++ - 模板化放置新的和析构函数

为什么不能编译?templateclassPool{charBuff[sizeof(T)*256];public:Pool(){T*item=reinterpret_cast(&Buff[0]);for(inti=0;i(&Buff[0]);for(inti=0;i~T();}voidreset(unsignedinti){T*item=reinterpret_cast(&Buff[0]);item[i]->~T();item[i]->T();}}我显然想要实现的是在原始内存数组上调用placementnew(应该调用构造函数ok)。然后我想调用数组中项目的析构函数和构造函数。问题是I

c++ - 如何在 C++ 中引用双重模板化的自由函数

我有一个模板类,我在其中定义了引用该模板类的自由函数。这些免费功能也以不同的参数为模板。我可以从类之外调用自由函数。但是,我找不到一个自由函数调用另一个函数的正确语法。简单示例:templateclassFoo{templatefriendSf(constFoo&){returnS();}templatefriendSg(constFoo&s){returnf(s);//Seebelow,wheninstantiated,yields'nomatchingfunctionforcalltof(constFoo&)'}};floattest1(){Fooo;returnf(o);//Co

第七篇【传奇开心果系列】Python微项目技术点案例示例:数据可视化界面图形化经典案例

传奇开心果微博系列系列微博目录Python微项目技术点案例示例系列微博目录一、微项目开发背景和项目目标:二、雏形示例代码三、扩展思路介绍四、数据输入示例代码五、数据分析示例代码六、排名统计示例代码七、数据导入导出示例代码八、主题定制示例代码九、数据过滤示例代码十、数据比较示例代码十一、界面优化示例代码十二、面向对象更新优化程序示例代码十三、归纳总结系列微博目录Python微项目技术点案例示例系列微博目录一、微项目开发背景和项目目标:在学校或培训班,教学管理头绪繁杂,分析报告枯燥乏味。如果能编写一个程序实现数据可视化,界面图形化,那就可以让数据形象直观生动起来,变得有趣生动,而且有灵魂。于是我灵

模板化类中 typedef 的 C++ 错误

我正在尝试编写一个简单的模板化事件调度程序,但我遇到了我不理解的编译器错误,搜索它也没有任何帮助。我正在使用VisualStudio2013Express。这是我的代码:templateclassEventDispatcher{public:typedefvoid(EventHandler)(Tevent);EventDispatcher(){}~EventDispatcher(){}voidaddListener(conststd::stringeventName,EventHandlerhandler){}voidfireEvent(Tevent){}private:typedef

c++ - 获取模板化对象方法的返回类型

说我有:templatestructFoo{T&func();};然后我实现了一个Foo:Foobar现在我想获得bar.func()的返回类型.我一直在努力强制result_of与我合作但无济于事。我真正想要的是能够做到result_of_t并完成它,但我想这要困难得多?我应该如何获得这种返回类型?编辑:我希望在不考虑bar的情况下实现这一目标被宣布。也就是说,我只想能够通过bar.func进入result_of或类似的并输出返回类型。 最佳答案 std::result_of实际上使用起来很烦人。它的语法是:result_of在哪

c++ - 模板化类内部函数的模板特化

我有一个模板化类,里面有一个模板化函数(不同的模板参数),我在让编译器调用正确的函数时遇到问题。例子:templateclassClass{public:voidFunc(Parm1arg1,Parm2arg2){Call(arg1,arg2);}protected:templatevoidCall(Parm1arg1,Parm2arg2){}templatevoidCall(Parm1arg1,Parm2arg2){}};因此,如果Parm3的类型为“void”,我希望调用第二个Call。否则第一。VS它工作正常,但GCC吐了它。它总是调用第一个。现在这是一个在非特化类中进行特化的问

c++ - 帮助 C++ 化这个 C 风格的代码

嘿,我习惯用C开发,我想在项目中使用C++。谁能给我一个例子,说明我如何将这种C风格的代码翻译成C++代码。我知道它应该在C++编译器中编译,但我说的是使用C++技术(即类、RAII)typedefstructSolutionSolution;structSolution{doublex[30];intitt_found;doublevalue;};Solution*NewSolution(){Solution*S=(Solution*)malloc(sizeof(Solution));for(inti=0;x[i]=0;}S->itt_found=-1;returnS;}voidFr

c++ - 如何使我的工厂的标题不依赖于它创建的模板化对象?

我有一个像这样的抽象基类:classAbstractBaseClass{};派生自它的模板化具体类:templateclassConcreteClass:publicAbstractBaseClass{public:ConcreteClass(Tinput):data(input){}private:Tdata;};我有一个创建AbstractBaseClasses的工厂类classMyFactory{public:boost::shared_ptrCreateBlah();boost::shared_ptrCreateFoo();templateboost::shared_ptrCr

c++ - 模板化成员函数 typedef 无法编译

#include#includeusingnamespacestd;voidprintstr(conststring&s){coutclassTest{public:typedefvoid(*Func)(constA&);};typedefvoid(*Func)(conststring&);templatevoidbind(Test::Funcf,//在上面的代码中,我尝试使用另一个类中的函数指针typedef。如图所示,它没有编译,但是其他两行中的任何一行都没有注释,而不是Test::Funcf,。行,它编译得很好!这是我不能用C++做的事情吗?需要什么语法?使用g++4.4.3,我