C ++ 03:使用模板构造函数时保留默认副本构造函数

提格兰·萨鲁埃夫

想象一下,我创建了一个带有模板构造函数的类,以便稍后定义实现:

struct A {
    template<typename T>
    A(const T& arg);
};

如何避免覆盖编译器的隐式生成的副本构造函数A(const A&)在C ++ 11中,我可以做类似的事情

#include <type_traits>
struct A {
    template<typename T, class = 
        typename std::enable_if<std::is_same<A, T>::value>::type>
    A(const T& arg);
};

而且有效。但是C ++ 03不支持默认的模板参数。任何解决方法?

juanchopanza

您什么都不需要做。编译器生成的coppy构造函数将根据需要启动。复制构造函数不能是模板。例如,

#include <iostream>

struct A {
    template<typename T>
    A(const T& arg) { std::cout << "template\n"; }
};

int main()
{
    A a(42);  // template ctor
    A b(a);   // copy ctor
    A c = b;  // copy ctor
}

输出:

模板

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用默认副本构造函数会破坏C ++中的树

来自分类Dev

定义的副本构造函数c ++的默认行为

来自分类Dev

C ++模板构造函数默认参数

来自分类Dev

链表副本构造函数C ++

来自分类Dev

C ++中的构造函数副本,列表,指针和模板

来自分类Dev

具有参数副本构造函数的C ++模板类

来自分类Dev

C ++模板类“没有合适的默认构造函数”

来自分类Dev

C ++结构默认构造函数

来自分类Dev

在类体之外定义函数时,c ++派生的构造函数-“无默认构造函数”

来自分类Dev

当父类在 C++ 中没有默认构造函数时,如何在继承的类中使用构造函数?

来自分类Dev

clang vs gcc运行时差异:c ++类模板,使用clang生成,没有复制构造函数崩溃,g wcc,使用副本构造函数崩溃

来自分类Dev

是否可以在C ++中使用非默认构造函数创建模板实例?

来自分类Dev

C ++ 11向量构造函数副本与范围?

来自分类Dev

c ++中的副本构造函数如何工作?

来自分类Dev

C ++无法使用模板参数创建模板构造函数

来自分类Dev

它在C ++标准中的何处声明删除复制构造函数时未生成默认构造函数?

来自分类Dev

存在具有默认参数的构造函数时,c ++构造函数中的歧义

来自分类Dev

C ++ 0/1参数构造函数传递给模板构造函数时未按预期进行链接

来自分类Dev

C ++调用默认构造函数而不是复制构造函数

来自分类Dev

没有默认构造函数的奇怪的C ++复制构造函数

来自分类Dev

用默认构造函数生成的C ++移动构造函数

来自分类Dev

C ++复制构造函数和默认构造函数

来自分类Dev

C ++模板副本构造函数不可用或不明确

来自分类Dev

不允许在 C++ 中使用默认构造函数

来自分类Dev

C ++ 11私有默认构造函数

来自分类Dev

默认构造函数未称为C ++ OOP

来自分类Dev

C#如何从默认构造函数继承

来自分类Dev

C ++-没有适当的默认构造函数

来自分类Dev

C ++构造函数并使其显示默认答案

Related 相关文章

  1. 1

    使用默认副本构造函数会破坏C ++中的树

  2. 2

    定义的副本构造函数c ++的默认行为

  3. 3

    C ++模板构造函数默认参数

  4. 4

    链表副本构造函数C ++

  5. 5

    C ++中的构造函数副本,列表,指针和模板

  6. 6

    具有参数副本构造函数的C ++模板类

  7. 7

    C ++模板类“没有合适的默认构造函数”

  8. 8

    C ++结构默认构造函数

  9. 9

    在类体之外定义函数时,c ++派生的构造函数-“无默认构造函数”

  10. 10

    当父类在 C++ 中没有默认构造函数时,如何在继承的类中使用构造函数?

  11. 11

    clang vs gcc运行时差异:c ++类模板,使用clang生成,没有复制构造函数崩溃,g wcc,使用副本构造函数崩溃

  12. 12

    是否可以在C ++中使用非默认构造函数创建模板实例?

  13. 13

    C ++ 11向量构造函数副本与范围?

  14. 14

    c ++中的副本构造函数如何工作?

  15. 15

    C ++无法使用模板参数创建模板构造函数

  16. 16

    它在C ++标准中的何处声明删除复制构造函数时未生成默认构造函数?

  17. 17

    存在具有默认参数的构造函数时,c ++构造函数中的歧义

  18. 18

    C ++ 0/1参数构造函数传递给模板构造函数时未按预期进行链接

  19. 19

    C ++调用默认构造函数而不是复制构造函数

  20. 20

    没有默认构造函数的奇怪的C ++复制构造函数

  21. 21

    用默认构造函数生成的C ++移动构造函数

  22. 22

    C ++复制构造函数和默认构造函数

  23. 23

    C ++模板副本构造函数不可用或不明确

  24. 24

    不允许在 C++ 中使用默认构造函数

  25. 25

    C ++ 11私有默认构造函数

  26. 26

    默认构造函数未称为C ++ OOP

  27. 27

    C#如何从默认构造函数继承

  28. 28

    C ++-没有适当的默认构造函数

  29. 29

    C ++构造函数并使其显示默认答案

热门标签

归档