gpt4 book ai didi

c++ - char(*)[int] 在 C++ 中是什么意思?

转载 作者:太空狗 更新时间:2023-10-29 19:43:23 26 4
gpt4 key购买 nike

我正在阅读 this article on SFINAE我发现这对有趣的函数:

template<int I> void div(char(*)[I % 2 == 0] = 0) {
// this overload is selected when I is even
}
template<int I> void div(char(*)[I % 2 == 1] = 0) {
// this overload is selected when I is odd
}

这很好用 (g++-4.9),但我不太了解参数的类型(char(*)[int] -part.)。还有其他人吗?

最佳答案

char(*)[I % 2 == 0] 表示指向 char 数组的指针,维度为 I % 2 == 0。指向维度 0 数组的指针是非法的,SFINAE 表示这会导致不考虑模板(与发生编译错误相反)。

关于c++ - char(*)[int] 在 C++ 中是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28987073/

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