c 语言函数名相同参数不同,c – 具有相同名称但参数类型不同的多个函数作为模板参数...

我正在使用

xsd从xml架构文件创建c代码.对于xml类型,创建了多个函数(用于序列化等).

如果类型被称为XmlType,则创建以下形式的多个函数:

XmlType XmlType_(const XmlType& a, const string& b)

string XmlType_(const XmlType& a)

...

这是普通函数,而不是XmlType的成员,它们都具有相同的名称.

对于XmlType2,函数将被称为XmlType2_.

我想为我的xml方案的所有不同xml类型编写一个实用程序模板类.不同的功能将在本课程中被称为洞察力.到目前为止我所拥有的是这样的:

template

using TFunc1 = T (*)(const T&, const string&);

template

using TFunc2 = string (*)(const T&);

template func2, TFunc2 func2>

class XmlUtil {

...

};

当创建XmlUtil类的实例时,如果必须这样做:

XmlUtil util;

当我必须传递更多函数作为参数时,这感觉有点多余并且变得更糟.

我想像这样使用util类:

XmlUtil util;

或者甚至更好

XmlUtil util;

我能想到的唯一方法是以某种方式使用define,但感觉不对.

还有其他办法吗?

编辑:

我现在正在使用一个定义:

#define TRPL(name) name, name ## _, name ## _

...

XmlUtil util;

我会编辑这个,如果我找到更好的东西(也许像Yakk在他的回答中建议的覆盖集).

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值