2010-04-14 5 views
2

HI Quelqu'un pourrait-il donner un exemple de programme pour implémenter le trait de type is_same_type dans C++?Programme pour implémenter le trait de type is_same_type en C++

+1

Bien sûr, si vous fournissez une spécification détaillée de ce qu'un tel programme devrait faire. Nous sommes tous assis ici en attendant des demandes comme celles-ci - donnez-nous les spécifications et nous serons sur la bonne voie! –

+1

Ce n'est pas vraiment un "écrire le programme pour moi" autant qu'un "j'ai entendu parler de cette chose et je n'ai aucune idée de comment le faire, mais je pense en avoir besoin" demande. D'accord; Ce n'est pas la meilleure question au monde, mais je ne pense pas que cela viole vraiment les lignes directrices, sauf être très précis. –

+1

"Envoyer le codez" –

Répondre

9
#include <iostream> 

template< typename T1, typename T2 > 
struct is_same_type  { enum { result = false }; }; 

template< typename T> 
struct is_same_type<T,T> { enum { result = true }; }; 


int main() 
{ 
    std::cout << is_same_type<int,float>::result << '\n' 
       << is_same_type<char,char>::result << '\n'; 
    return 0; 
} 
+0

Pourquoi 'enum {result = true}', plutôt que 'static const bool result = true'? Est-ce que 'enum' ne donnera pas' result' le mauvais type? –

+0

Donc, vous vous configurez comme un service de rédaction de programme maintenant? Cela n'aide vraiment pas le PO (ou vous) à long terme. –

+0

@Brooks: La seule raison est que j'ai fait TMP quand l'astuce 'enum' était encore hip et plus portable de toute façon. Je suis d'accord que de nos jours ça devrait être 'static const bool result = ...', mais je n'arrête pas d'oublier ça ... – sbi

Questions connexes