
agosto 16, 2017 — fegomes
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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
#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!
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.