解析多个相等基类的模板函数调用

时间:2017-05-10 13:34:46

标签: c++ templates

我有一个A类,它存储一些状态依赖于它的模板参数,并为它提供访问方法。在我的框架中,我需要启用派生类B,将更多基于状态的类添加到hirarchy中,以便可以使用单个API从派生类访问它们。用户不应该注意到状态类已经拆分成多个。这就是我提出的架构:

#include <iostream>
#include <type_traits>

using namespace std;

template<typename T1> 
struct Test {

    template<typename T2>
    typename enable_if<is_same<T1, T2>::value, void>::type myFunction() {};
};

struct A : public Test<int> {};
struct B : public A, public Test<char> {};

int main() {    
    B b;
    b.myFunction<int>();

    return 0;
}

但不幸的是它不起作用,编译器仍然找到这两个函数并报告它们是不明确的。

知道如何实现这一目标吗?

0 个答案:

没有答案