我发现有一些类似的话题,但没有一个能够直接回答我的问题。
我们使用了一个库中的类(我们称之为Foo),跨越多个模块。现在我需要将这个类转换为可变参数模板(因此现在我有:template<class... T> Foo() {}
),因为一些新的用法需要完全相同的通用机制,但需要接受额外的参数。已经在使用中的旧实现不需要这些参数。
所以我把它转成了存储在一个*.h文件中的可变参数模板,但现在无论我们在哪里使用这个类,我都需要将每一个出现的Foo()
改为Foo<>()
,以使现有代码像以前一样工作。
现在,我不确定是否有一些模块我甚至不知道会使用这个库,因此我考虑了一种灵活的解决方案,例如引入一个别名到Foo<>,这样在更改库后就不需要更新其他模块。
在这个特定的示例中,是否可能使用类似于using Foo = Foo<>
的方式,以便所有已经存在于代码中的Foo
实例都自动被视为Foo<>
,而不需要对源代码进行任何更改?
即使它将具有与类本身完全相同的名称,是否可能在模板定义/声明的同一文件中定义这样的别名?
Foo
代替Foo<>
。否则不行。 - HolyBlackCat