栏目分类:
子分类:
返回
文库吧用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
文库吧 > IT > 软件开发 > 后端开发 > C/C++/C#

【C / C++】C++20 新特性:Designated Initializer

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【C / C++】C++20 新特性:Designated Initializer

C++20 标准引入了 Designated Initializer。它类似 C# 的 Object Initializer 和 Kotlin 的 apply(scope function),允许在仅需要初始化类或结构体的部分成员时,使用更少的代码即可完成。

#include 

int main() {
	struct point {
		double x = 0, y = 0, z = 0;
	};

	struct line_segment {
		struct point s, t;
	};

	const auto print_point = [](const point& p) {
		std::cout << "<" << p.x << ", " << p.y << ", " << p.z << ">" << std::endl;
	};

	const struct point p{ .x = 1, .y = 2, };
	const struct line_segment s { .s{}, .t{.z = 1} }; // Chained designators are nonstandard in C++. Hence ".t.z = 1" instead of ".t{.z = 1}" will make a Compilation ERROR.
	print_point(p);
	print_point(s.s);
	print_point(s.t);

	return 0;
}

转载请注明:文章转载自 www.wk8.com.cn
本文地址:https://www.wk8.com.cn/it/1037944.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 wk8.com.cn

ICP备案号:晋ICP备2021003244-6号