traits相关内容
编译以下代码时: trait RenderTarget {} struct RenderWindow; impl RenderWindow的RenderTarget {} trait Drawable { fn draw(& self,target:& mut RT); } fn main(){ let mut win
..
有人可以帮助我理解Scala在集合API中的各种“Like”特性。我一直在阅读,并试图比较每一个没有运气。我想我可以看到Map为例,扩展了MapLike - 添加了2个具体方法。但这提出了为什么这样做的问题?为什么不在Collection API而不是Map和MapLike中有1个Map trait? 谢谢! 解决方案 这些细节的最佳来源是
..
因此,我创建了一些traits来使用,例如:tItem_Epic,我想要使用我的项目中的traits,并且对于多个inheriance我想使用traits。 tItem_Weapon,Item_Driver 当我为Sword创建新类时,我认为我可以使用eval创建类:
..
我有一个问题,将一个traits的向量投射到不同traits的向量中。 使用类型转换数组/向量在Rust ,我基本上尝试以下: trait ParentTrait {} trait ChildTrait:ParentTrait {} fn main(){ let mut children: Vec> = vec![]; let
..
我使用CakePHP 2.4.5和PHP 5.5,并且想要使用一个trait。 我有一个trait在Utility / VariablesTrait.php名为 VariablesTrait 。 为了利用命名空间,我给它一个命名空间 \Utility\VariablesTrait ,因为 Utility\VariablesTrait 看起来有点太全了,前者可以更好地使用CakePHP
..
我有一个程序,我有很多嵌套的if / switch语句,在几个地方重复。我试图提取出来,并把开关放在一个模板方法类,然后允许客户端重载他们想要使用重载特别处理的开关分支: class TraitsA {}; class TraitsB:public TraitsA {}; class Foo { bool traitsB; public: //在运行时确定Foo是否
..
我对C ++中的模板有点新,所以原谅我如果这个问题是混乱或愚蠢的,我只是有一个问题,我想实现一个克隆智能指针,所以我不必为每个创建复制构造函数,每个使用我的底层XML库的类,只是似乎使用对象指针,而不是智能指针。问题是,我的traits需要使用基础库中的函数创建新对象,我不知道我将如何在模板/ traits类中这样做。我已经张贴了所有的代码,下面有一些意见,如果有人可以建议,我会很感激。 如
..
我可能已经到达这里来解决应该是一个简单的问题。我在这里开始这个问题: 在编译时获取基类的类型 基本上我想让类管理它自己的指针类型。我包装一个C库,其中一些结构有参考计数嵌入在他们,其他人不。那些没有,我想使用shared_ptr。那些做,我想使用intrusive_ptr。我想避免依靠程序员智能来确保使用正确的包装器。最后,我想添加更多的依赖于这种行为的功能,但我还没有。 @Yakk
..
我有一个泛型类有一个函数,我想限制在浮点类型的实例在编译时。如下例所示: 模板 class ClassName { //实例变量等。 void some_method() { // do stuff,but只适用于浮点类型 } } 拒绝使用some_method作为非浮点类型的ClassName? 我一直在查看SFI
..
有没有办法使用替换失败不是枚举的错误(SFINAE) 模板 ; struct Traits { } 模板 struct Traits { }; 模板 struct Traits { enum { iOption = 1 }; }; template void Do() { //使
..
是否存在(在标准库或Boost中)类型trait以测试类型是否可以表示一个字符串? Boost.Fusion: auto number = fusion :: make_vector(1,“one”); auto numberName = fusion :: filter(number); assert(numberName == fusio
..
如何在C ++ 03中获得另一种类型的“引用类型”?注意,它可以是其他可解引用的类型,如 std :: vector :: iterator 。 如果我有 模板
..
我有一个类模板,它有一个成员函数,它有一个lambda,希望使用类模板参数类型。它无法在lambda内部编译,但如预期的那样在lambda之外成功。 struct wcout_reporter { static void report(const std :: wstring& output) { std :: wcout
..
假设我们有两个类, A 和 B 。当使用组合来建模“has-a”或“is-implemented-in-terms-of”关系(例如 B has-a A ),缺点与继承之一是 B 不包含它需要的 A 的公共功能。为了访问 A 的公共函数,有必要提供转发功能(与继承相反, B 将继承所有 A 的公共函数)。 为了给出一个更具体的例子,有人,其中有 ContactInfo : 使用name
..
我有一个关于C ++ 0x lambdas的问题。在我的代码中,知道给定类型是否是C ++ 0x lambda表达式的类型是有益的。例如: struct foobar { void operator()() { } }; auto lambda = [] {}; typedef is_lambda :: type T; // T将
..
以下代码尝试(不使用c ++ 11)创建用于标识类型是否可以STL方式迭代的trait: #include #include template struct IsIterable { typedef char true_type; typedef long false_type; templ
..
我有一个类,让我们把它叫做 Foo 有几个方法: template class Foo { public: Foo(){/ * ... * /} bool do_something(){/ * ... * /} //这个方法应该是可调用的只有当: // std :: is_floating_point :: value == true
..
考虑下面的指数平滑器模板类。此类用于按顺序数据进行指数平滑/滤波(请参阅update方法)。 Elemtype可能是一个向量,Floattype通常是一个标量。例如 ExponentialSmoother x(0.1,Vector2f(0.5,0.5)); 在这个例子中,第二个模板参数Floattype可以被避免,因为Ei
..
我想要定义一个模板类,其模板参数将始终是一个整数类型。类将包含两个成员,一个类型 T ,另一个作为 T 类型的无符号变量 - 即if T == int ,然后 T_Unsigned == unsigned int 。我的第一本能是这样做: 模板
..
在如下所示的模板中,我想调用 Run(& Base :: foo)成功,而不需要将Base类型命名两次在编译 Run(& Base :: foo)调用中)。我可以有吗?可能没有添加大量的 Boost 标头? 使用提供的代码,我得到一个错误: prog.cpp:26:错误:没有匹配的函数调用' (Base :: *)())' (你可以使用 http://i
..