全局模板函数的问题

发布于 2024-11-05 03:25:02 字数 802 浏览 0 评论 0原文

由于某种原因,我似乎无法在GCC中调用我的全局模板函数...

在“globals.h”中定义的全局函数:

template <typename T1, typename T2> inline T1 Min (const T1 & v1, const T2 & v2)
{
    return v1 < v2 ? v1 : v2;
}

从“test.h”中定义的类调用函数:

#include "globals.h"

class Test
{
public:
    Test()
    {
        int a = 2;
        int b = 3;
        int c = Min(a, b); //error: 'Min' was not declared in this scope
        int d = ::Min(a, b); //error: '::Min' has not been declared
        int e = Min<const int, const int>(a, b); //error: expected primary-expression before 'const'
        int f = this->Min(a, b); //error: 'class Test' has no member named 'Min'
    }
};

我应该做什么?

For some reason I can't seem to call my global template function in GCC...

Global function defined in "globals.h":

template <typename T1, typename T2> inline T1 Min (const T1 & v1, const T2 & v2)
{
    return v1 < v2 ? v1 : v2;
}

Call to function from class defined in "test.h":

#include "globals.h"

class Test
{
public:
    Test()
    {
        int a = 2;
        int b = 3;
        int c = Min(a, b); //error: 'Min' was not declared in this scope
        int d = ::Min(a, b); //error: '::Min' has not been declared
        int e = Min<const int, const int>(a, b); //error: expected primary-expression before 'const'
        int f = this->Min(a, b); //error: 'class Test' has no member named 'Min'
    }
};

What should I do?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

糖粟与秋泊 2024-11-12 03:25:02

g++ 版本 4.3.4 可以正确编译它们,仅在最后一行给出错误。请参阅 http://ideone.com/cD13Y。您使用什么版本?

g++ version 4.3.4 compiles these correctly, giving an error only for the last line. See http://ideone.com/cD13Y. What version are you using?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文