bool opérateur ++ et --

Aujourd'hui, alors que l'écriture de code de Visual C++, j'ai trouvé quelque chose qui m'a surpris. Il semble que C++ prend en charge ++ (incrémentation) pour le type bool, mais pas -- (décrémentation). Il c'est juste une décision au hasard, ou il y a une raison derrière tout cela?

Cette compile:

static HMODULE hMod = NULL;
static bool once = false;
if (!once++)
    hMod = LoadLibrary("xxx");

Ce n'est pas:

static HMODULE hMod = NULL;
static bool once = true;
if (once--)
    hMod = LoadLibrary("xxx");
  • hm, même pour xcode et le compilateur gcc
  • Yep, ++once et once++ travail avec gcc, mais pas le décrémente.
  • Peut-être en mesure de baliser "l'histoire" au lieu de "opérateur-mot-clé", c'est donc regroupés avec tous les autres du plaisir explications du pourquoi de diverses choses folles sont raisonnables si vous considérez l'histoire? 🙂
  • Note de C++17 de la pré-opérateur d'incrémentation pour bool est obsolète, source.
InformationsquelleAutor Suma | 2010-08-10