Tencent / flare

Flare是广泛投产于腾讯广告后台的现代化C++开发框架,包含了基础库、RPC、各种客户端等。主要特点为易用性强、长尾延迟低。
Other
1.33k stars 200 forks source link

About unboxed_type_t #85

Closed 4kangjc closed 1 year ago

4kangjc commented 1 year ago

https://github.com/Tencent/flare/blob/d90635ddf049c06d3769339d06b9fd18d93a76c4/flare/base/future/basics.h#L125-L129

这个会不会更好点,更易于理解? common_type有点难懂

template <class T0 = void, class... Ts>
struct unboxed_type {
  using type = std::conditional_t<sizeof...(Ts) == 0, T0, std::tuple<T0, Ts...>>;
};

template <class... Ts>
using unboxed_type_t = typename unboxed_type<Ts...>::type;
0x804d8000 commented 1 year ago

两种写法其实倒无所谓写哪个,毕竟写模板的应该都对各种晦涩语法习惯了

不过确实应该有一个struct unboxed_type,这儿直接using成了一连串东西可能是一开始写在了某个类内部后来挪出来了。写在类内部的时候我有时候喜欢直接using xxx_t = 一连串东西,主要是图个省事

4kangjc commented 1 year ago

两种写法其实倒无所谓写哪个,毕竟写模板的应该都对各种晦涩语法习惯了

不过确实应该有一个struct unboxed_type,这儿直接using成了一连串东西可能是一开始写在了某个类内部后来挪出来了。写在类内部的时候我有时候喜欢直接using xxx_t = 一连串东西,主要是图个省事

好的