gpt4 book ai didi

c++ - decltype 和静态模板方法

转载 作者:行者123 更新时间:2023-11-30 00:46:49 25 4
gpt4 key购买 nike

在尝试使用 SFINAE 时,以下代码无法编译:

template<typename ObjectType, typename GroupA, typename GroupB, typename = void>
struct DelegateImpl; // default version

template<typename ObjectType, typename GroupA, typename GroupB>
struct DelegateImpl<ObjectType, GroupA, GroupB, decltype(GroupA::get<ObjectType>())>; // specialization

使用海湾合作委员会:

error: template argument 4 is invalid

有了 MSVC,一个出人意料的更有帮助:

error C3553: decltype expects an expression not a type

我的目标是让编译器在表达式 GroupA::get<ObjectType>() 时选择特化有效。

问题:如何将 decltype 与静态模板方法一起使用?

最佳答案

这两个编译器实际上都没有给出有用的错误。真正的问题是您在 get 之前缺少 template 关键字:

template get<ObjectType>()

参见 Dependent Names 上的 cppreference 页面

关于c++ - decltype 和静态模板方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37112604/

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