声明是什么
return {};
在 C++11 中指示,以及何时使用它而不是(比如说)
return NULL;
或者
return nullptr;
原文由 Pedia 发布,翻译遵循 CC BY-SA 4.0 许可协议
声明是什么
return {};
在 C++11 中指示,以及何时使用它而不是(比如说)
return NULL;
或者
return nullptr;
原文由 Pedia 发布,翻译遵循 CC BY-SA 4.0 许可协议
这可能令人困惑:
int foo()
{
return {}; // honestly, just return 0 - it's clearer
}
这可能不是:
SomeObjectWithADefaultConstructor foo()
{
return {};
// equivalent to return SomeObjectWithADefaultConstructor {};
}
原文由 Richard Hodges 发布,翻译遵循 CC BY-SA 3.0 许可协议
3 回答1.9k 阅读✓ 已解决
2 回答3.9k 阅读✓ 已解决
2 回答3.2k 阅读✓ 已解决
1 回答3.2k 阅读✓ 已解决
1 回答2.7k 阅读✓ 已解决
3 回答3.4k 阅读
1 回答3.2k 阅读
return {};
表示“返回一个用空 列表初始化器 初始化的函数返回类型的对象”。确切的行为取决于返回对象的类型。来自 cppreference.com (因为 OP 被标记为 C++11,所以我排除了 C++14 和 C++17 中的规则;有关详细信息,请参阅链接):
在 C++11 之前,对于返回
std::string
的函数,您可以编写:使用 C++11 中的大括号语法,不需要重复类型:
return NULL
和return nullptr
应该在函数返回指针类型时使用:但是,
NULL
自 C++11 起已弃用,因为它只是整数值 (0) 的别名,而nullptr
是真正的指针类型: