c++ - GCC(在任何版本中)相当于 clang 的 __type_pack_element 来获取模板参数包的第 N 个元素

标签 c++ gcc variadic-templates intrinsics

https://reviews.llvm.org/D15421

clang 具有 __type_pack_element,它允许在可变参数模板中高效地索引参数包。是否有 GCC 等效项?

我对使用 tuple_element_t 不感兴趣。我正在寻找一种替代方案,即编译器原语

最佳答案

如果你真的很勇敢/疯狂,你可以尝试使用与 kvasir::mpl 相同的技术来解决这个问题。在 metaben.ch 基准测试中,它与使用 __type_pack_element 并在 GCC 上工作的其他人相同或更快(请注意,基准测试会查看每个元素,如果您只索引一些元素,它看起来会大不相同,但通常如果您想要一个,那么您最终其他人也想要)。

benchmark

implementation

old blog post about it

关于c++ - GCC(在任何版本中)相当于 clang 的 __type_pack_element 来获取模板参数包的第 N 个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42096691/

相关文章:

linux - 交叉编译GCC for linux i686-elf

linux - 单个主机上的多个 glibc 库

c++ - 使用模板中的参数包创建对象

c++ - 使用折叠表达式打印所有带有换行符的可变参数

c++ - 如何通过 'emcc' 传递 'emcmake cmake/emmake make' 选项?

c++ - : istringstream is( line ); 这一行发生了什么

c++ - Winsock 代码在 freeaddrinfo 中崩溃

gcc - 从静态库中提取gcc版本信息

c++ - 我如何将 "map"参数包

c++ - 将 3 个变量值插入到 multimap 中