Verdadeiro, Falso ou Indefinido em C++

Já pensou em ter uma variável booleana com essas três possibilidades? O tipo primitivo booleano tem 2 valores, verdadeiro ou falso, simples como ligado e desligado, mas vou mostrar a possibilidade de ter um terceiro valor.

É como se você não soubesse se está ligado ou desligado, ou seja, indefinido.

Quem possibilita esse uso é a biblioteca Boost Tribool.

 

Exemplo de uso da Boost Tribool

 

#include <boost/logic/tribool.hpp>

using namespace boost;

tribool some_operation(){ return tribool(indeterminate); }

int main(){
    tribool b = some_operation();
    if (b) {
         // b is true
        return 1;
    } else if (!b) {
        // b is false
        return 0;
    } else {
    // b is indeterminate
        return -1;
    }
    return 0;
}

 

É diferente pensar em um caso que possibilita essa abordagem, mas é sempre bom sair do padrão para conhecer novas possibilidades de programação!

Tem alguma dúvida ou sugestão? Deixe nos comentários!

Um comentário em “Verdadeiro, Falso ou Indefinido em C++

  1. Legal, na verdade acho que é o que acontece em qualquer outra linguagem, mas os compiladores por padrao atribuem um valor. No caso de c é muito simples, o valor diferente de 0 é true e não indefinido. Em java ele atribui 0, ou seja, falso. Interessante, o boost tribool é mais natural.

Deixe um comentário