gpt4 book ai didi

c++ - 如何在 C++03 中对模板类型的对象进行值初始化

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:15:06 26 4
gpt4 key购买 nike

假设我有一个函数模板并且想声明一个值初始化的对象:

template<typename T>
void foo() {
// declare and default-initialize 'x' of type 'T'
}

我可以吗?

  • T x; 对原始类型失败,因为它使它们未初始化,
  • T x(); 由于最令人烦恼的解析而失败
  • T x = T(); 需要一个拷贝构造函数并且不要求编译器删除拷贝
  • T x{}; 失败,因为我们没有使用 C++11。

我希望我是个白痴,忽略了一些显而易见的事情,但我没有看到答案。

最佳答案

C++11 之前

T x = T();

阅读此处 - link

T3 var3 = {};

The third form, T3 var3 = {} initializes an aggregate, typically a "C-style" struct or a "C-style" array. However, the syntax is not allowed for a class that has an explicitly declared constructor.

source

关于c++ - 如何在 C++03 中对模板类型的对象进行值初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34683740/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com