preguntar acerca de constexpr

2
réponses

Utilisation de «constexpr» pour utiliser le littéral de chaîne pour le paramètre de modèle

J'ai écrit du code pour convertir const char* en int en utilisant constexpr et je peux donc utiliser un const char* comme argument de modèle. Voici le code: #include <iostream> class conststr { public: template<std::size_t N> …
demandé sur 1970-01-01 00:33:33
2
réponses

Jeter dans constexpr fonction

Le morceau de code suivant compile sous clang++ 3.7.0 mais est refusé par g++ 5.3.1. Les deux ont l'option -std=c++14. Le compilateur est correcte? Quelqu'un sait où dans la norme en parle? Grâce. #include <stdexcept> using namespace std; …
demandé sur 1970-01-01 00:33:35
3
réponses

Constantes globales en C++11

Quelles sont les meilleures façons de déclarer et définir les constantes globales en C++? Je suis surtout intéressé par la norme C++11 car elle corrige beaucoup à cet égard. [EDIT (clarification)]: dans cette question, "constante globale" indique u …
demandé sur 1970-01-01 00:33:34
5
réponses

Pourquoi pas un destructeur être marqué constexpr?

En C++, vous pouvez déclarer beaucoup de choses comme constexpr: variables, fonctions (y compris les fonctions des membres et les opérateurs), constructeurs, et depuis C++1z, aussi if instructions et les expressions lambda. Toutefois, la déclaration …
demandé sur 1970-01-01 00:33:37
3
réponses

Constexpr vs macros

où devrais-je préférer utiliser des macros et où devrais-je préférer constexpr? Ne sont-ils pas essentiellement les mêmes? #define MAX_HEIGHT 720 et constexpr unsigned int max_height = 720; ... …
demandé sur 1970-01-01 00:33:37
2
réponses

Dans quelle mesure est-ce que builtin ctz(0) ou builtin clz(0) ne sont pas définis?

arrière-plan pendant longtemps, gcc a fourni un certain nombre de fonctions de bit-twidling intégrées, en particulier le nombre de 0-bits traînant et menant (également pour long unsigned et long long unsigned , qui ont des suffixes …
demandé sur 1970-01-01 00:33:33
2
réponses

constexpr vs. static const: lequel préférer?

Pour définition des constantes de compilation de l'ensemble des types comme suit (à la fonction et la portée de classe), dont la syntaxe est la meilleure? static const int kMagic = 64; // (1) constexpr int kMagic = 64; // (2) …
demandé sur 1970-01-01 00:33:36
5
réponses

std::max() et std::min() pas constexpr

je viens de remarquer que la nouvelle norme définit min(a,b) et max(a,b) sans constexpr . exemples de 25.4.7, [alg.min.max]: template<class T> const T& min(const T& a, const T& b); template<class T> T min(i …
demandé sur 1970-01-01 00:33:31
6
réponses

enum vs constexpr pour les constantes statiques réelles à l’intérieur des classes

permettez-moi de commencer par énoncer mon intention. Dans les vieux jours (C++), nous aurions le code comme: class C { public: enum {SOME_VALUE=27}; }; alors nous pourrions utiliser SOME_VALUE tout au long de notre code comme une con …
demandé sur 1970-01-01 00:33:34
13
réponses

Quand devez-vous utiliser la capacité de constexpr en C++11?

il me semble qu'avoir une" fonction qui renvoie toujours 5 "brise ou dilue le sens de"appeler une fonction". Il doit y avoir une raison, ou un besoin pour cette capacité ou elle ne serait pas en C++11. Pourquoi est-il là? // preprocessor. # …
demandé sur 1970-01-01 00:33:31