热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

为嵌套模板类声明operator==

如何解决《为嵌套模板类声明operator==》经验,求助如何解决?

我在另一个模板类中有一个以下嵌套模板类:

template
struct A
{
    template
    struct B {};
};

operator==嵌套类型的非成员的签名是B什么?以下天真的尝试不起作用:

template
bool operator==(A::B left, A::B right);

Clang,GCC和MSVC提供了各种不同的错误和/或提示错误,例如缺少template关键字,但我没有尝试解决它.

请注意,这显然有效:

template
struct A
{
    template
    struct B {};

    template
    friend bool operator==(B left, B right)
    {
        return true;
    }
};

但是,我需要外部非成员声明的原因是使用qdoc记录它.qdoc正在使用clang来解析源代码,它要求我提供operator==我实际已经实现的声明,就像刚刚显示的那样.

现场演示


推荐阅读
author-avatar
小青年
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有