gpt4 book ai didi

c++ - 在一行中将 Template 应用于多个类型别名

转载 作者:行者123 更新时间:2023-11-28 01:21:55 27 4
gpt4 key购买 nike

假设我有几个这样的类型别名:

template<class T> using v=vector<T>;
template<class T> using s=set<T>;
template<class T> using u_s=unordered_set<T>;

(是的,我知道这会使我的代码不可读,是的,我知道我使用的命名空间标准是错误的。)

有更短的语法吗?我正在设想这样的事情,但我知道这行不通:

template<class T>{
using v=vector<T>;
using s=set<T>;
using u_s=unordered_set<T>;
}

我只是不明白为什么我每次都必须写出模板让编译器明白我的意思。 T 显然是某种任意类型,我不能重用它吗?

最佳答案

不,那是不可能的。最接近的是使用宏(不是我推荐的):

#define TP template<class T>
TP using v = vector<T>;
TP using s = set<T>;
TP using u_s = unordered_set<T>;
#undef TP

你不能重用 T 因为这三个别名彼此没有任何关系,所以 T 每次(通常)都是不同的。

关于c++ - 在一行中将 Template<class T> 应用于多个类型别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55754004/

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