Я работаю над приложением c ++ 11:
Там у меня есть несколько шаблонных методов:
template <class P, class T>
void copyMemberToDocument(const P &childClass
std::string (T::*getter) (void) const) {
auto member = (childClass.*getter)();
// ...
}
Дочерний класс имеет множественное наследование, поэтому у меня может быть что-то вроде:
class A {
public:
int getA() {return 1;}
class B {
public:
const char* getB() {return "hello";}
class C : public A, public B {};
Так что я могу сделать что-то вроде:
C c;
copyMemberToDocument(c, &B::getB);
copyMemberToDocument(c, &A::getA);
Можно ли узнать, будет ли возвращаемое значение в шаблонном методе "const char *" или "int", чтобы делать разные вещи в зависимости от этого?