Trzy nawiasy - (typ)(zmienna)() <- co to znaczy?

0

Cześć, przyszło mi analizować taki kawałek kodu:

cl_context_properties cprops[3] = {CL_CONTEXT_PLATFORM, (cl_context_properties)(platformList[0])(), 0};

Po raz pierwszy spotkałem się z trzema nawiasami obok siebie (mówię o (cl_context_properties)(platformList[0])() ) i zupełnie nie wiem co to oznacza, może ktoś pomóc?

0

E, to będzie wywołanie funkcji (używając tablicy wskaźników na funkcje) i rzutowanie wyniku na cl_context_properties.

0

O, o tym nie pomyślałem, masz jak najbardziej rację, dzięki!

0

Ale chyba nie musi koniecznie to być funkcja. Wydaje mi się, że obiekt klasy z przeciążonym operatorem () wystarczyłby.

0

Po raz pierwszy spotkałem się z trzema nawiasami obok siebie

co powiesz na to: (C++11)

int main()
{
  [](){}();
}
0

Podana fraza - {}() - nie została odnaleziona.

Co to jest?

0

wywołanie pustej lambda funkcji

0

muszę poczytać o nowym C++, bo utknąłem na starszym standardzie.

0

Podana fraza - {}() - nie została odnaleziona.
Co to jest?

[]

wyrażenie lambda o pustym domknięciu

()

niepobierające parametrów

{}

o pustym ciele funkcji

()

wywołane bez parametrów.

w skrócie: to nic nie robi.

1

W skrócie już nie lubię nowego standardu.

0

dla mnie jest zajebisty, w końcu można sobie użyć sortowania z stla w jednej linii, bez koneiczności przeciążania operatorów czy tworzenia globalnych funkcji

0

Ja też się cieszę, że wprowadzili nowy standard C++. W końcu programowanie w C++ może być ciekawe (bo bez ton powtarzającego się kodu).

0

mi do szczęścia brakuje tylko bardziej rozbudowanych dyrektyw kompilatora, które np. generowałyby mi kod - z szablonami trzeba za bardzo kombinować

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