gpt4 book ai didi

c++ - 隐藏 typedef 实现

转载 作者:行者123 更新时间:2023-11-30 04:30:53 26 4
gpt4 key购买 nike

我有这个 typedef 依赖于另一个库中的类型(在本例中为 boost):

#include <boost/any.hpp>

typedef boost::any& myAnyType;

我会在我的所有程序中使用定义 myAnyType 隐藏它的真实性质并保持独立于 Boost 库(客户端不需要安装 Boost 来使用 myAnyType)

有可能吗?

最佳答案

the client does not need to install Boost to use myAnyType

肯定是这样。是的,您将其定义为对 any 的引用,因此他们可以在没有类型定义的情况下声明“myAnyType”变量。但他们对此无能为力。事实上,像 myAnyType var; 这样简单的东西会失败,因为它是一个引用。

它们甚至不能调用将 myAnyType 作为参数的函数,因为它们不能声明一个 myAnyType 对象。即使 const myAnyType 也行不通,因为 C++ 必须创建一个临时变量。而且它无法从未定义的类型创建临时对象。

您的库并不独立于 Boost;它依赖 Boost,并将 Boost 放在其界面中。 myAnyType 是 Boost 的一部分,因为它基于 Boost 的一部分。因此,您的客户是 Boost 的客户。您和他们越早接受这一点越好。

关于c++ - 隐藏 typedef 实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8428634/

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