|
1
2
函数的类型在编译时是已知的,可以使用
这看起来像:
不过,制定一个适当的解决方案并非易事,因为你需要编写48个部分专门化来涵盖每种函数,而不仅仅是那些没有cv或引用限定符的函数
在大多数情况下,您不需要知道参数的类型(或第一个参数)。也许你可以简单地问
而不是:
前一个问题可以很容易地回答
然后,您可以使用C++26包索引,
最终的解决方案看起来像:
后一种解决方案的一个明显问题是,您不必要地创建了中间对象。
例如,如果参数类型为
此外,如果你有一个参数,比如字符串文字(类型
可以说,这就是为什么后一种解决方案严格来说比前一种方案差的原因,尽管它少了一个模板参数,乍一看可能看起来更优雅。 |
|
|
2
0
好吧,我找到了一个解决方案,也许有人有更好的解决方案:
|
|
|
111111 · 确定作为模板参数传递的函数的参数类型 1 年前 |
|
|
msg · std::variant的奇怪结果 1 年前 |
|
|
Mikhail T. · 如何将对象的方法传递给lambda函数? 1 年前 |
|
|
zack · 不接受变分模板函数参数 1 年前 |
|
|
Youssef Gamil · RegEx替换C中的空行++ 1 年前 |
|
|
GPrathap · 如何在C中返回智能指针和协方差++ 1 年前 |