错误:无法解析对重载函数的引用

朱利安·H

如下代码:

struct A
{
    using this_t = A;
    template <class F1>
    void ins(const F1& fu)
    {
    }
    template <class F1, class... Args>
    void ins(const F1& fu, const Args&... args)
    {
        this_t::ins<Args...>(args...);
        // the line which is causing the error:
        constexpr decltype(&this_t::ins<Args...>) func = &this_t::ins<Args...>;
    }
};
int main()
{
    A a;
    a.ins(5, 5, 5, 5, 5);
}

给出此错误:

error: reference to overloaded function could not be resolved

如此处所示:https//godbolt.org/z/nJiY4A

这里出了什么问题,然后怎么可能获得指向函数的指针?

伊戈尔·坦德尼克(Igor Tandetnik)

我想我知道为什么该行无法编译。它与重载解析无关,而与以下内容有关decltype

[over.over] / 1在某些情况下,使用不带参数的重载函数名可以解析为函数,重载集中特定函数的函数指针或成员函数指针。在这种情况下,功能模板名称被认为是命名一组重载功能。如果(可能在应用了函数指针转换(7.13)之后)等于,则为上下文中所需的目标类型F的函数类型选择具有类型的函数目标可以是FTFFT

(1.1)-初始化的对象或引用(11.6、11.6.3、11.6.4),
(1.2)-赋值的左侧(8.18),
(1.3)-函数的参数(8.2.2) ,
(1.4)-用户定义的运算符的参数(16.5),
(1.5)-函数,运算符或转换的返回值(9.6.3),
(1.6)-显式类型转换(8.2。 3、8.2.9、8.4)或
(1.7)-非类型模板参数(17.3.2)。

重载的函数名称可以在&运算符之前。在没有列出的上下文中,没有参数的情况下,不能使用重载的函数名。

强调我的。仅在那些枚举上下文之外(例如in中)提及重载的函数名decltype(&this_t::ins<F2, Args...>)会使程序格式错误。通过显式拼写类型来避免这种有问题的用法,使代码可以编译

    void (this_t::*func)(const Args&...) = &this_t::ins<Args...>;

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

错误:对重载函数的引用无法解析;你是说打电话吗

来自分类Dev

C#函数对重载方法的引用

来自分类Dev

Scala错误对重载定义的含糊不清的引用

来自分类Dev

错误:对重载函数的模棱两可的调用

来自分类Dev

错误:没有匹配的函数可用于调用“ sort(...,...,<无法解析的重载函数类型>)”

来自分类Dev

对重载整数构造函数的歧义调用

来自分类Dev

模板编程:对重载函数的歧义调用

来自分类Dev

使用float会导致“对重载函数的调用不明确”错误

来自分类Dev

错误C2668:'boost :: bind':对重载函数的模棱两可的调用

来自分类Dev

C ++模板函数重载解析错误

来自分类Dev

gcc中无法解析的重载函数类型

来自分类Dev

如何解决对重载定义的歧义引用

来自分类Dev

Java库中对重载定义的含糊不清的引用

来自分类Dev

错误21错误LNK2019:无法解析的外部符号:....在函数:...中引用。

来自分类Dev

MSVC-C2668对重载函数的模棱两可的调用-它是编译器错误吗?

来自分类Dev

包装模板函数和<无法解析的重载函数类型

来自分类Dev

C ++模板和对重载函数的歧义调用

来自分类Dev

对重载函数find_first_not_of的模糊调用

来自分类Dev

为什么对重载函数的调用不明确?

来自分类Dev

如何解决“ fpclassify”:对重载函数的歧义调用

来自分类Dev

C ++模板和对重载函数的歧义调用

来自分类Dev

错误LNK2019:函数main中引用了无法解析的外部符号

来自分类Dev

错误LNK2019:函数___tmainCRTStartup中引用了无法解析的外部符号_wWinMain @ 16

来自分类Dev

错误LNK2019:函数main中引用了无法解析的外部符号

来自分类Dev

使用defalt args时在函数_main中引用的错误LNK2019无法解析的外部符号

来自分类Dev

使用{}的函数重载解析

来自分类Dev

将异常转换为可选:无法解析重载的函数类型

来自分类Dev

mem_fun_ref:无法解析的重载函数类型

来自分类Dev

pybind11:卡在无法解析的重载函数类型中

Related 相关文章

  1. 1

    错误:对重载函数的引用无法解析;你是说打电话吗

  2. 2

    C#函数对重载方法的引用

  3. 3

    Scala错误对重载定义的含糊不清的引用

  4. 4

    错误:对重载函数的模棱两可的调用

  5. 5

    错误:没有匹配的函数可用于调用“ sort(...,...,<无法解析的重载函数类型>)”

  6. 6

    对重载整数构造函数的歧义调用

  7. 7

    模板编程:对重载函数的歧义调用

  8. 8

    使用float会导致“对重载函数的调用不明确”错误

  9. 9

    错误C2668:'boost :: bind':对重载函数的模棱两可的调用

  10. 10

    C ++模板函数重载解析错误

  11. 11

    gcc中无法解析的重载函数类型

  12. 12

    如何解决对重载定义的歧义引用

  13. 13

    Java库中对重载定义的含糊不清的引用

  14. 14

    错误21错误LNK2019:无法解析的外部符号:....在函数:...中引用。

  15. 15

    MSVC-C2668对重载函数的模棱两可的调用-它是编译器错误吗?

  16. 16

    包装模板函数和<无法解析的重载函数类型

  17. 17

    C ++模板和对重载函数的歧义调用

  18. 18

    对重载函数find_first_not_of的模糊调用

  19. 19

    为什么对重载函数的调用不明确?

  20. 20

    如何解决“ fpclassify”:对重载函数的歧义调用

  21. 21

    C ++模板和对重载函数的歧义调用

  22. 22

    错误LNK2019:函数main中引用了无法解析的外部符号

  23. 23

    错误LNK2019:函数___tmainCRTStartup中引用了无法解析的外部符号_wWinMain @ 16

  24. 24

    错误LNK2019:函数main中引用了无法解析的外部符号

  25. 25

    使用defalt args时在函数_main中引用的错误LNK2019无法解析的外部符号

  26. 26

    使用{}的函数重载解析

  27. 27

    将异常转换为可选:无法解析重载的函数类型

  28. 28

    mem_fun_ref:无法解析的重载函数类型

  29. 29

    pybind11:卡在无法解析的重载函数类型中

热门标签

归档