std::enable_if sert surtout pour faire de la meta-programmation. Après si tu ne développes pas de composants génériques dans tes programmes, effectivement je vois pourquoi tu n'en vois pas l'interêt.
Si tu veux un exemple réel pour voir l'intérêt de la chose(ou l'équivalent boost), regarde par exemple Firebreath (voir JSObject qui est une bibliothèque permettant d'exposer par l'intermédiaire d'un plugin NPAPI tout ce qu'il te chante.
En utilisant (c'est assez acrobatique des fois) cette fonctionnalité, il est capable de convertir des types, qu'il ne connaît pas forcement, en objet javascript que tu pourras utiliser dans ta page par exemple. Exemple: si ta fonction retourne un type itérable il pourra par exemple le représenter sous forme de liste coté javascript.
Effectivement c'est assez complexe, mais c'est le moindre mal quand tu veux faire quelque chose de générique, de la à dire que c'est de la masturbation...
[^] # Re: Intéressant
Posté par diorcety . En réponse à la dépêche Je crée mon jeu vidéo E09 : Techniques de C++11 appliquées au système à entités. Évalué à 3.
std::enable_if sert surtout pour faire de la meta-programmation. Après si tu ne développes pas de composants génériques dans tes programmes, effectivement je vois pourquoi tu n'en vois pas l'interêt.
Si tu veux un exemple réel pour voir l'intérêt de la chose(ou l'équivalent boost), regarde par exemple Firebreath (voir JSObject qui est une bibliothèque permettant d'exposer par l'intermédiaire d'un plugin NPAPI tout ce qu'il te chante.
En utilisant (c'est assez acrobatique des fois) cette fonctionnalité, il est capable de convertir des types, qu'il ne connaît pas forcement, en objet javascript que tu pourras utiliser dans ta page par exemple. Exemple: si ta fonction retourne un type itérable il pourra par exemple le représenter sous forme de liste coté javascript.
Effectivement c'est assez complexe, mais c'est le moindre mal quand tu veux faire quelque chose de générique, de la à dire que c'est de la masturbation...