我正在尝试为一组函数和类定义一个通用接口,这些函数和类将具有多个不同的后端实现(使用不同的库)。
因此,我真的更愿意简单地在一个地方而不是在每个单独的命名空间中定义一个函数。
例如,我有一个全局函数:
extern void Func();
现在我想要该功能的 3 个单独的实现。一个是直接的 C,一个是手工编码的汇编器,一个是使用库“x”。
我实际上是在尝试避免执行以下操作:
namespace C
{
extern void Func();
}
namespace Asm
{
extern void Func();
}
namespace LibX
{
extern void Func();
}
有没有很好的模式来避免这样做?当有 100 个奇怪的函数时,它会变得更加痛苦。
我能想到的唯一想法是将所有定义移动到没有头文件保护的头文件中,然后执行:
namespace C
{
#include "Functions.h"
}
namespace Asm
{
#include "Functions.h"
}
namespace LibX
{
#include "Functions.h"
}
有没有人能想到的更好的方法呢?