gpt4 book ai didi

c++ - 定义 vs 命名空间

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:22:58 25 4
gpt4 key购买 nike

我有一个代码:

namespace My
{
#define sptr std::shared_ptr;
}

它被用在很多地方。现在我已经将这段代码作为库包含到 qt 项目中,但它无法加载,因为它在某处使用 sptr 作为变量名。

我可以修改 Qt header 并重命名变量,但这在可移植性方面并不好。解决这个问题的最佳方法是什么? typedef 不能与模板一起使用。我知道如何破解模板结构,但我仍然需要用它来修改我的代码。

最佳答案

namespace ns {
template<typename T>
using sptr = std::shared_ptr<T>;
}

另请参阅@Kerrek SB 对有关此特定用例的问题的评论。

关于c++ - 定义 vs 命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12239133/

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