2010-10-29 5 views
3

Dans another thread J'ai présenté quelques techniques que nous utiliserions pour le développement piloté par le modèle en C++ une fois que les fonctionnalités C++ 11, en particulier les littéraux définis par l'utilisateur, sont disponibles. Je viens de réviser les plans pour GCC 4.5 et même 4.6 et cela montre que cette fonctionnalité particulière n'est pas supportée. Quoi qu'il en soit, savez-vous si j'ai même un compilateur pour tester cette fonctionnalité pour commencer à concevoir/implémenter les algorithmes jusqu'à ce que le C++ 11 soit approuvé et implémenté dans les compilateurs gratuits grand public (LLVM, GCC)?Littéraux définis par l'utilisateur (Littéraux étendus) de C++ 11 ... quels compilateurs le supportent?

+0

Nous (voir bio) construisons un frontal C++ utilisé à des fins de réingénierie, et sommes C++ 0x en tant que standard à venir que nous sommes susceptibles d'implémenter très prochainement. Bien que je comprenne ce que les littéraux définis par l'utilisateur * sont *, j'admets au moins une certaine perplexité quant à leur utilisation motivante. Pourtant, vous semblez avoir un usage spécifique. Pouvez-vous esquisser pourquoi les littéraux définis par l'utilisateur sont intéressants, particulièrement pour un générateur de code qui peut probablement générer n'importe quel code qu'il aime, y compris arbitrairement goo pour initialiser une structure? ... Pourquoi un gars conduit par un modèle s'en soucie-t-il? –

+0

Ira: bonne question et tu as raison. Pour un générateur de code, cette fonctionnalité est (presque) peu utilisée, en plus de devoir générer plus de classes ou des modèles moins propres. * Cependant * ce que nous voulons réaliser est un DSL encaissé très efficace pour spécifier des modèles, des métamodèles et des transformations de modèle en C++. A l'aide de la métaprogrammation, les transformations peuvent être beaucoup plus efficaces qu'en utilisant, disons, ATL sous Java. –

+0

@Ira UDLs et const_expr devraient être utilisables pour transformer des chaînes en hashcodes au moment de la compilation. – ohmantics

Répondre

2

Pas encore, bien que les correctifs pour les deux Clang et GCC ont été soumis et rejetés pour être retravaillés, vous devriez donc voir quelque chose bientôt.

+0

Merci! Je m'attendais au moins à des indications sur la façon dont le processus était travaillé. –

1

Aucun pour l'instant, pour autant que je sache.

1

GCC 4.7 (inédit à ce jour) prend en charge les littéraux définis par l'utilisateur. Pour référence, voir http://gcc.gnu.org/gcc-4.7/changes.html et http://gcc.gnu.org/gcc-4.7/cxx0x_status.html.

A en juger seulement du passé version GCC timelines, je suppose que GCC 4.7 sortira quelque temps avant mai 2012.

Vous pouvez l'utiliser tout de suite si vous voulez: J'utilise un instantané GCC 4.7 SVN en ce moment spécifique pour jouer avec des littéraux définis par l'utilisateur et d'autres fonctionnalités C++ 11 nouvellement implémentées. Ils fonctionnent très bien et je m'attends à les utiliser sérieusement lorsque GCC 4.7 sera publié.

+0

Merci! Ce sont de bonnes nouvelles. Merci de me le faire savoir. Voyons voir comment j'ai le temps de jouer avec ... –

Questions connexes