Bonjour à tous,

J'aimerai déduire dans un programme le type d'une méthode d'une de mes classes en utilisant decltype. Le problème, c'est que cette méthode est surchargée, à savoir que j'ai une version de celle-ci qui est déclarée en const et renvoie un const, tandis que l'autre est non-const et renvoient une reference non const.
Du coup, quand j'essaie de compiler le tout, g++ me sort l'erreur suivante
error: decltype cannot resolve address of overloaded function
Au niveau du code, cela donne ceci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
#include <iostream>
#include <typeinfo>
 
struct A
{
	int value = 0;
	int& get()
	{
		return value;
	}
	const int& get() const
	{
		return value;
	}
};
 
int main() {
	std::cout << typeid(decltype(&A::get)).name() << std::endl;
 
	return 0;
}
Quelqu'un a une idée de comment je puis indiquer au compilo d'utiliser la 1ere surcharge?

Merci