gpt4 book ai didi

c++ - 我应该在多大程度上利用强类型来确保编译时的正确性?

转载 作者:行者123 更新时间:2023-11-30 02:28:22 25 4
gpt4 key购买 nike

<分区>

内置类型(以及来自 std 的类型)在任何地方都用作函数和构造函数的参数,但并非这些类型的每个实例都是有效输入。

例子:

// There is no guarantee that url is actually a url
void make_http_request(const std::string& url);

// Here we know that it must be a url
void make_http_request(const url& url);

// There is no way of knowing if this is the correct mutex to lock
void insert_into_db(std::mutex mutex);

// Here we know we have the correct mutex
void insert_into_db(db_mutex mutex);

这当然不应该用于您无法控制的对象的属性。例如,您可以创建一个 connected_socket 类,但如果对等方关闭连接,则该类将成为一个谬论。然而,它可用于确保 IPv4 UDP 套接字永远不会尝试 sendto() IPv6 端点。

您这样做的次数越多,您就越能确保您的程序在编译时有效(谁不喜欢这样呢?)。这种做法有什么问题吗?它会被认为是好的吗?缺点是什么?它们值得吗?

如果这是一个有别名的概念,而我只是找不到它,请原谅我。

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