1
J'essaie de sélectionner un modèle de classe basé sur un paramètre de modèle d'énumération donné (type_stockage). Maintenant, j'instancie une classe qui l'utilise, mais il semble toujours essayer d'instancier le basic_store pour cette classe.Sélection du modèle de classe de temps de compilation par le paramètre de modèle d'énumération
enum store_type
{
none,
basic,
lockless,
};
template<class T, store_type S = none, typename = void>
struct get_store_type
{
};
template<class T>
struct get_store_type<T, basic,
typename std::enable_if<!std::is_abstract<T>::value>::type>
{
using store_type = typename basic_store<T>;
};
template<class T>
struct get_store_type<T, lockless>
{
using store_type = typename lockless_store<T>;
};
template<typename T, store_type S>
class client
{
public:
using my_store_type = typename get_store_type<T, S>::store_type;
}
//Tries to instantiate a basic store... which is not allowed.
client<SomeAbstractType, lockless> something;
Ofcourse! merci, regardait cela depuis des lustres: P. –
@AndreasLoanjoe Vous êtes les bienvenus. – Rabbid76
Comment l'accepter? Voulez-vous dire que je devrais upvote? Parce que je l'ai fait. EDIT: NVM l'a obtenu, il est accepté! –