preguntar acerca de language-lawyer
6
réponses
C++11 a introduit un modèle de mémoire standardisé. Qu’est-ce que cela signifie? Et comment cela va-t-il affecter la programmation C++?
C++11 a introduit un modèle de mémoire standardisé, mais qu'est-ce que cela signifie exactement? Et comment cela va-t-il affecter la programmation C++?
Cet article (par Gavin Clarke qui cite Herb Sutter) dit que,
Le modèle de mémoire signifie qu …
demandé sur
1970-01-01 00:33:31
7
réponses
Pourquoi le caractère d’espace n’a-t-il pas été choisi pour les séparateurs de 14 chiffres C++?
À partir de C++14, grâce à n3781 (qui en soi ne répond pas à cette question), nous pouvons écrire du code comme suit:
const int x = 1'234; // one thousand two hundred and thirty four
Le but est d'améliorer le code comme ceci:
const int y = 100 …
demandé sur
1970-01-01 00:33:35
3
réponses
Initialisation d’un tableau de zéros
Il est bien connu que les initialiseurs manquants pour un tableau de scalaires sont par défaut à zéro.
int A[5]; // Entries remain uninitialized
int B[5]= { 0 }; // All entries set to zero
Mais est-ce (ci-dessous) garanti ?
int C[5]= { }; // All …
demandé sur
1970-01-01 00:33:36
7
réponses
Le comportement de la division en virgule flottante par zéro
Considérez
#include <iostream>
int main()
{
double a = 1.0 / 0;
double b = -1.0 / 0;
double c = 0.0 / 0;
std::cout << a << b << c; // to stop compilers from optimising out the code.
}
J'ai toujours pens …
demandé sur
1970-01-01 00:33:37
1
réponses
La taille de std::array est-elle définie par standard
En C++11 std::array est défini pour avoir un stockage et des performances contigus qui ne sont pas pires qu'un tableau, mais je ne peux pas décider si les différentes exigences de la norme impliquent que std::array a la même taille et la même disposi …
demandé sur
1970-01-01 00:33:33
2
réponses
Utilisation de modèles d’alias pour sfinae: le langage le permet-il?
Je viens de découvrir la technique suivante. Il semble très proche de l'un des concepts proposés syntaxe, fonctionne parfaitement sur Clang, GCC et MSVC.
template <typename T, typename = typename std::enable_if<std::is_rvalue_reference<T&am …
demandé sur
1970-01-01 00:33:38
2
réponses
Est l’astérisque en option lors de l’appel d’un pointeur de fonction?
je ne pouvais pas trouver une réponse à ce n'importe où. Je viens de lire K&R et vu l'appel d'un pointeur de fonction comme ceci:
(*ptr)(arg1, arg2);
je me souviens très bien, cependant, d'avoir vu quelqu'un utiliser comme ceci:
ptr(arg1, arg …
demandé sur
1970-01-01 00:33:34
4
réponses
Type incomplète n’est pas autorisé dans une classe, mais il est permis à un modèle de classe
le code suivant n'est pas valide:
struct foo {
struct bar;
bar x; // error: field x has incomplete type
struct bar{ int value{42}; };
};
int main() { return foo{}.x.value; }
C'est assez clair, comme foo::bar est considéré comme …
demandé sur
1970-01-01 00:33:38
2
réponses
Est-ce que memcpy d’un type de construction ou d’affectation trivial-copiable?
disons que vous avez un objet de type T et un tampon mémoire convenablement aligné alignas(T) unsigned char[sizeof(T)]. Si vous utilisez std::memcpy copier à partir de l'objet de type Tunsigned char array, est considéré que la copie de la constructi …
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