Operator warunkowy w C++

0

Jak zapisać

if (warunek)
    cout << a;

za pomocą

warunek ? (cout << a): ();

?
Kompilator wymaga żeby coś wpisać po dwukropku. Nie mogę zostawić pustego miejsca, nie można też pominąć dwukropka.

0

Zapisywanie:

if (warunek) cout << a;

za pomocą operatora trójargumentowego mija się z celem (czytaj bez sensu).
W niektórych przypadkach wręcz nie da się.

0

Wiem że można z ifem, ale zastanawia mnie czy można za pomocą tego operatora, nie wstawiając nic za else.

0

Operator ?: zwraca jakąś wartość bez względu na warunek, więc jest oczywiste, że po dwukropku musi coś być, by zapewnić taką wartość, gdy warunek nie jest prawdziwy.
if nie zwraca wartości, wiec można pominąć else.

0
#include <iostream>

void* val() { return nullptr; }

int main( int, char** ) {

    bool warunek = true;
    int a = 23;

    warunek ? (std::cout << a << std::endl) : val();

    return 0;
}

Dziwny pomysł, ale proszę bardzo.
g++ plik.cpp -Wall -Wextra -std=c++0x -o app.exe

0

Jeżeli już to:

  1. warunek?cout<<a<<endl:cout;
  2. warunek?(cout<<a<<endl):false; // wynik skonwertuje się na wartość logiczną

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0