Bonjour,
L'équipe C++ de Developpez.com vous présente un tutoriel sur les littéraux utilisateur de Andrzej Krzemieński traduit par Bousk :
Envoyé par Synopsis
Bonjour,
L'équipe C++ de Developpez.com vous présente un tutoriel sur les littéraux utilisateur de Andrzej Krzemieński traduit par Bousk :
Envoyé par Synopsis
Super !
J'avais justement besoin de ce genre de trucs. J'avais commencé avec Boost.Units, mais ça me semblait un peu lourd.
C'est complémentaire. boost.unit fournit le framework qui définit déjà comment manipuler les unités SI. Avec les user-defined literals, on a un nouveau moyen (à écrire car que je crois pas que boost.units les ait intégrés) pour écrire des valeurs dans des unités SI.
J'ai justement testé les litteraux utilisateurs mais mon IDE (Qt Creator) n'aime pas ça.
Voici le code que j'ai testé:
J'ai cette erreur sur les lignes des surchages d'opérateur :
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
23
24
25
26
27
28
29
30
31 class Distance { private: uint16_t distance; public: explicit constexpr Distance(uint16_t distance) : distance(distance) {} }; constexpr Distance operator "" _m(unsigned long long distance) { return Distance(static_cast<uint16_t>(distance * 100)); } constexpr Distance operator "" _cm(unsigned long long distance) { return Distance(static_cast<uint16_t>(distance)); } constexpr Distance operator "" _mm(unsigned long long distance) { return Distance(static_cast<uint16_t>(distance / 10)); } int main() { Distance test = 20_cm; return 0; }
Et dans la fonction main() :expected a declaration
Une idée?expected token `;` got `test`
L'IDE, tu t'en fous, c'est le compilateur qui importe. l'IDE n'est qu'une aide plus ou moins synchronisé avec le compilateur, mais il ne le remplace pas.
Si cela devient gênant, il y a peut-être un macro connu par l'IDE pour qu'il n'analyse pas les parties de code problématique.
Ouais c'est ça, c'est bon ça compile (encore heureux) mais c'est quand même lourd ce genre d'affichage erroné en complétion. Je sais pas sur quoi se base Qt Creator pour ça.
EDIT:
Apparement, c'est basé sur Clang : https://blog.qt.io/blog/2011/10/19/q...tor-and-clang/
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager