使用模板的参数时类型/值不匹配

用户名

我正在编写一些c ++模板代码来替换当前源代码中的if-else条件。在这里,我基于两个条件派生Helper数据类型:1. isAdvice 2. SimpleOrComplex

参见以下模板代码:

template<bool isAdvice, class SH, class CH>
class IfThenElse;

template<class SH, class CH>
class IfThenElse<true, SH, CH>
{
    public:
    typedef SH Helper;
};

template<class SH, class CH>
class IfThenElse<false, SH, CH>
{
    public:
    typedef CH Helper;
};

template <bool isAdvice, bool SimpleOrComplex>
class DeriveHelper
{
    public:
        typedef typename IfThenElse<isAdvice,
                 IfThenElse<SimpleOrComplex, SimpleHelper, ComplexHelper>::Helper,
                 IfThenElse<SimpleOrComplex, SimpleNoAdvHelper, ComplexNoAdvHelper>::Helper>::Helper DerivedHelper;


};

但是,在编译时出现此错误:

template.cpp:135: error: type/value mismatch at argument 2 in template parameter list for 'template<bool isTradeAdvice, class SH, class GH> struct IfThenElse'
template.cpp:135: error:   expected a type, got 'IfThenElse::Helper'
template.cpp:135: error: type/value mismatch at argument 3 in template parameter list for 'template<bool isTradeAdvice, class SH, class GH> struct IfThenElse'
template.cpp:135: error:   expected a type, got 'IfThenElse::Helper'

有人可以提出原因吗?

马克·A

您应该像为第一个typename模板类型参数IfThenElse那样为两个模板类型参数添加关键字

template <bool isAdvice, bool SimpleOrComplex>
class DeriveHelper
{
public:
    typedef typename IfThenElse<isAdvice,
                 typename IfThenElse<SimpleOrComplex, SimpleHelper, ComplexHelper>::Helper,
                 ^^^^^^^^
                 typename IfThenElse<SimpleOrComplex, SimpleNoAdvHelper, ComplexNoAdvHelper>::Helper>::Helper DerivedHelper;
                 ^^^^^^^^
};

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

C ++模板-参数的类型/值不匹配

来自分类Dev

C ++模板-参数的类型/值不匹配

来自分类Dev

类型/值与模板的参数不匹配

来自分类Dev

使用nifi模板导入API的参数类型不匹配

来自分类Dev

类模板方法的特化,类型名是类模板 - 错误:参数的类型/值不匹配

来自分类Dev

C ++模板:“参数的类型/值不匹配”和“预期为int的常量类型,为int”

来自分类Dev

使用反射获取属性值时参数计数不匹配

来自分类Dev

从模板将查询参数传递给控制器时,类型不匹配

来自分类Dev

从模板将查询参数传递给控制器时,类型不匹配

来自分类Dev

反射时Java参数类型不匹配

来自分类Dev

可变参数模板继承中的类型不匹配

来自分类Dev

可变参数模板继承中的类型不匹配

来自分类Dev

在Spring MVC中对@RequestBody使用通用类型时出现“参数类型不匹配”错误

来自分类Dev

更新图块数据时模板类型不匹配

来自分类Dev

警告:条件中指针类型不匹配。当使用两个相同类型的值时

来自分类Dev

类型与类型参数不匹配

来自分类Dev

使用WireMock时查询参数不匹配

来自分类Dev

使用recover()时,类型不匹配错误

来自分类Dev

使用Numpy的ifft时类型不匹配

来自分类Dev

NULL与模板参数不匹配?

来自分类Dev

NULL与模板参数不匹配?

来自分类Dev

使用类型较高的类型时类型不匹配

来自分类Dev

使用类型较高的类型时类型不匹配

来自分类Dev

ByRef参数类型与布尔值不匹配

来自分类Dev

ByRef参数类型与布尔值不匹配

来自分类Dev

vba Byref参数类型在调用函数时不匹配

来自分类Dev

参数类型不匹配打开新阶段时发生异常

来自分类Dev

从终端传递参数时 Kotlin 类型不匹配错误

来自分类Dev

CryptographicException,使用iTextSharp以及RSA和AES csp时,提供程序类型与注册值不匹配

Related 相关文章

  1. 1

    C ++模板-参数的类型/值不匹配

  2. 2

    C ++模板-参数的类型/值不匹配

  3. 3

    类型/值与模板的参数不匹配

  4. 4

    使用nifi模板导入API的参数类型不匹配

  5. 5

    类模板方法的特化,类型名是类模板 - 错误:参数的类型/值不匹配

  6. 6

    C ++模板:“参数的类型/值不匹配”和“预期为int的常量类型,为int”

  7. 7

    使用反射获取属性值时参数计数不匹配

  8. 8

    从模板将查询参数传递给控制器时,类型不匹配

  9. 9

    从模板将查询参数传递给控制器时,类型不匹配

  10. 10

    反射时Java参数类型不匹配

  11. 11

    可变参数模板继承中的类型不匹配

  12. 12

    可变参数模板继承中的类型不匹配

  13. 13

    在Spring MVC中对@RequestBody使用通用类型时出现“参数类型不匹配”错误

  14. 14

    更新图块数据时模板类型不匹配

  15. 15

    警告:条件中指针类型不匹配。当使用两个相同类型的值时

  16. 16

    类型与类型参数不匹配

  17. 17

    使用WireMock时查询参数不匹配

  18. 18

    使用recover()时,类型不匹配错误

  19. 19

    使用Numpy的ifft时类型不匹配

  20. 20

    NULL与模板参数不匹配?

  21. 21

    NULL与模板参数不匹配?

  22. 22

    使用类型较高的类型时类型不匹配

  23. 23

    使用类型较高的类型时类型不匹配

  24. 24

    ByRef参数类型与布尔值不匹配

  25. 25

    ByRef参数类型与布尔值不匹配

  26. 26

    vba Byref参数类型在调用函数时不匹配

  27. 27

    参数类型不匹配打开新阶段时发生异常

  28. 28

    从终端传递参数时 Kotlin 类型不匹配错误

  29. 29

    CryptographicException,使用iTextSharp以及RSA和AES csp时,提供程序类型与注册值不匹配

热门标签

归档