如何在rxcpp自定义运算符中正确推断泛型

西普里亚尼

我创建了一个自定义的rxcpp运算符validateImplementation,该运算符应该只获取通用的可观察流,对进行一些验证,SimpleInterface然后根据特定条件(在我的情况下为whatsMyId继续或结束该流

https://github.com/cipriancaba/rxcpp-examples/blob/master/src/SimpleOperators.cpp

template <class T> function<observable<T>(observable<T>)> SimpleOperators::validateImplementation(SimpleInterface component) {
  return [&](observable<T> $str) {
    return $str |
           filter([&](const T item) {
             if (component.whatsMyId() == "1") {
               return true;
             } else {
               return false;
             }
            }
           );
  };
}

但是,当尝试使用中的validateImplementation方法时main.cpp,出现以下错误:

no matching member function for call to 'validateImplementation'

note: candidate template ignored: couldn't infer template argument 'T'

您能帮助我了解我在做什么错吗?

柯克·舒普(Kirk Shoop)

在C ++中,必须先完全解析类型,然后才能使用该函数。此外,只能从参数而不是返回类型推断模板参数。最后,带有模板参数的函数的定义在调用时(在标头中)必须是可见的,或者对于每种受支持的类型(在cpp中)必须显式实例化。

在这种情况下,我将避免显式实例化。这意味着有两个选择。

删除模板参数

function<observable<string>(observable<string>)> validateImplementation(SimpleInterface component);

将定义从cpp移到标头并将main.cpp更改为关于类型的显式,因为无法推断出该类型。

o->validateImplementation<string>(s1) |

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在C ++中正确重载“ <<”运算符?

来自分类Dev

如何在Golang中正确使用OR运算符

来自分类Dev

如何在MIPS中正确使用mod运算符?

来自分类Dev

如何在mysql中正确使用exists运算符?

来自分类Dev

如何在Swift中正确使用conditionak运算符

来自分类Dev

如何快速实现自定义运算符[]

来自分类Dev

如何在dplyr%>%运算符之后使用自定义函数?

来自分类Dev

如何在VueJS自定义过滤结果上应用函数/运算符?

来自分类Dev

如何在Ruby中正确链接自定义方法?

来自分类Dev

如何在Keycloak中正确注册自定义FormAction?

来自分类Dev

未为类型定义VB .net bc30452运算符=-如何创建自定义运算符

来自分类Dev

如何在Matlab中正确重载size()方法/运算符

来自分类Dev

如何在Xor中正确使用'/ ='haskell中缀运算符?

来自分类Dev

如何在C ++ / CLI中正确执行运算符重载?

来自分类Dev

如何在 C++ 中正确重载运算符 cast char*?

来自分类Dev

C#如何在自定义结构中创建许多类似的运算符重载

来自分类Dev

如何在Devops Release管道中的自定义条件下使用OR和And运算符

来自分类Dev

C#如何在自定义结构中创建许多类似的运算符重载

来自分类Dev

如何在不重载比较运算符的情况下专门针对std :: max的自定义类型?

来自分类Dev

如何在自定义小部件中的vi运算符未决模式后移动zsh光标?

来自分类Dev

Java三元运算符对泛型类型推断的影响

来自分类Dev

如何在可观察对象列表上使用RxCpp运算符?

来自分类Dev

Swift中的自定义运算符

来自分类常见问题

扩展Joi未实现自定义运算符

来自分类Dev

Javascript中的自定义条件运算符

来自分类Dev

使用自定义运算符减少OpenMP SIMD

来自分类Dev

运算符重载python自定义类

来自分类Dev

Quickblox自定义对象Android:或运算符

来自分类Dev

在Python中重载自定义类型的运算符

Related 相关文章

  1. 1

    如何在C ++中正确重载“ <<”运算符?

  2. 2

    如何在Golang中正确使用OR运算符

  3. 3

    如何在MIPS中正确使用mod运算符?

  4. 4

    如何在mysql中正确使用exists运算符?

  5. 5

    如何在Swift中正确使用conditionak运算符

  6. 6

    如何快速实现自定义运算符[]

  7. 7

    如何在dplyr%>%运算符之后使用自定义函数?

  8. 8

    如何在VueJS自定义过滤结果上应用函数/运算符?

  9. 9

    如何在Ruby中正确链接自定义方法?

  10. 10

    如何在Keycloak中正确注册自定义FormAction?

  11. 11

    未为类型定义VB .net bc30452运算符=-如何创建自定义运算符

  12. 12

    如何在Matlab中正确重载size()方法/运算符

  13. 13

    如何在Xor中正确使用'/ ='haskell中缀运算符?

  14. 14

    如何在C ++ / CLI中正确执行运算符重载?

  15. 15

    如何在 C++ 中正确重载运算符 cast char*?

  16. 16

    C#如何在自定义结构中创建许多类似的运算符重载

  17. 17

    如何在Devops Release管道中的自定义条件下使用OR和And运算符

  18. 18

    C#如何在自定义结构中创建许多类似的运算符重载

  19. 19

    如何在不重载比较运算符的情况下专门针对std :: max的自定义类型?

  20. 20

    如何在自定义小部件中的vi运算符未决模式后移动zsh光标?

  21. 21

    Java三元运算符对泛型类型推断的影响

  22. 22

    如何在可观察对象列表上使用RxCpp运算符?

  23. 23

    Swift中的自定义运算符

  24. 24

    扩展Joi未实现自定义运算符

  25. 25

    Javascript中的自定义条件运算符

  26. 26

    使用自定义运算符减少OpenMP SIMD

  27. 27

    运算符重载python自定义类

  28. 28

    Quickblox自定义对象Android:或运算符

  29. 29

    在Python中重载自定义类型的运算符

热门标签

归档