繁体   English   中英

C++ 模板 typedef

C++ template typedef

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我有一堂课

template<size_t N, size_t M>
class Matrix {
    // ....
};

我想制作一个typedef ,它创建一个Vector (列向量),它相当于一个大小为 N 和 1 的Matrix 。类似这样的东西:

typedef Matrix<N,1> Vector<N>;

这会产生编译错误。 以下创建了类似的东西,但不完全是我想要的:

template <size_t N>
class Vector: public Matrix<N,1>
{ };

是否有解决方案或不太昂贵的解决方法/最佳实践?

1 个回复

C++11 添加了别名声明,它是typedef泛化,允许模板:

template <size_t N>
using Vector = Matrix<N, 1>;

Vector<3>类型等效于Matrix<3, 1>


在 C++03 中,最接近的近似值是:

template <size_t N>
struct Vector
{
    typedef Matrix<N, 1> type;
};

此处,类型Vector<3>::type等效于Matrix<3, 1>

1 C ++模板+ typedef

以下代码有什么问题: 点2D PointsList.h 我想创建没有直接类型说明的新用户类型TPointsList ... ...

2 C ++:模板类的Typedef

我正在尝试创建我拥有的向量类的typedef 。 我在SO上也发现了类似的问题,但它们关注的类是接受不同类型数据的模板,而我的类是基于整数的模板。 所以,我的班级是这样定义的: 而且我想使用typedef,这样就不必每次都键入sc_dt:: 。 但是,使用此方法: 我收 ...

3 C ++模板化typedef

我有一个模板课 其中有许多类型的方法: 在这些内部我使用tr1 :: shared_ptr到U或V或T. 它繁琐的输入tr1::shared_ptr&lt;const U&gt;或tr1::shared_ptr&lt;const V&gt; 。 显而易见的事情: ...

4 C ++模板typedef作为模板函数参数

为什么编译器找不到read1的匹配? 我没有看到read1和read2之间的区别; 嵌套的typedef模板有没有限制,比如Foo类中的那个? G ++编译器输出,(G ++ 4.4.5) ...

6 在C ++中模板化别名的Typedef

我有以下模板类A : 我实例化如下: A&lt;MyStdVector&gt; objectA; 其中MyStdVector是具有特定分配器( MyAllocator )的std::vector的别名: 我决定在A创建一个名为Vector的别名: 在A我可以调用Vect ...

7 C ++中函数指针的模板typedef

这个问题已经在这里有了答案: 如何传递成员函数指针? 6个答案 想象一下,我有一个模板类,其中定义了指向BaseClass函数的函数指针的typdedef,它返回T且没有参数: 该模板具有方法Call(): 当我尝试执行Call()函数时出现问题- ...

8 具有typedef多个参数的c ++模板?

我有一个带有5个模板参数的模板类,它看起来与此相似。 SomeClass.h SomeClass.cpp 考虑一下我的模板参数应该被赋予一些好名字的情况,例如 SomeClass.cpp 它肯定开始看起来很丑:( 因此,有可能以任何方式typedef模板 ...

9 来自Typedef的C ++模板错误

该错误来自位于AssocArray之外的type&amp; AssocArray&lt;key, value&gt;::operator[]( key&amp; k ) 。 我很困惑为什么收到错误消息: 编辑: 我已经尝试过以下这些语句: 他们也没有工作。 ...

10 为什么模板typedef是C ++(而不是C ++ 11)中的一个问题

在这个问题中 ,OP要求提供模板typedef的解决方案,这在C ++中是不可能的。 OP也提出了一个解决方案,但不喜欢它: 我的问题是, Helper::type 解决方案在OP的解决方案上给我们带来了什么好处(假设这些类永远不会被基指针或new 'd这样使用)? 一个空类在释放时 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM