Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Definicja w definicji funkcji

Ostatnio zmodyfikowano 2012-10-14 13:50
Autor Wiadomość
Admixior
Temat założony przez niniejszego użytkownika
Definicja w definicji funkcji
» 2012-09-26 18:47:52
Mam pyt. Czy jest możliwa definicja funkcji w ciele innej, tudzież:
C/C++
int main()
{
    int fun() { /*cos*/ }
    fun();
}
Czy jest coś na ten temat w standardzie, że można w powyższy sposób lub jakiś inny robić takowe definicje?
P-65595
m4tx
» 2012-09-26 18:52:43
Po co Ci takie? :P

Nie da się raczej czegoś takiego zrobić.
P-65596
Mrovqa
» 2012-09-26 19:12:52
Pamiętam, iż w Symfonii C++ chyba było coś na ten temat. Teraz sprawdziłem - G++ w wersji 4.6.2 nie przepuszcza takiej definicji, ale niewykluczone, że starsze wersje przepuszczają ;)
P-65597
pekfos
» 2012-09-26 21:04:49
Jest coś takiego jak wyrażenie lambda.
C/C++
// C++11
int main()
{
    auto wtf =[]( int a ) { return a * 2 + 2; };
   
    int b = wtf( 1 );
    b += wtf( 86 );
}
P-65600
Mrovqa
» 2012-09-26 21:48:32
Wiem co to wyrażenie lambda, miałem na myśli zwykłą definicję funkcji.
P-65604
Admixior
Temat założony przez niniejszego użytkownika
» 2012-09-26 22:08:48
@Mrovqa: Też właśnie coś kojarzę z symfonii ale za każdym razem jak próbowałem robić coś takiego to była lipa i nie działało.
Zaraz sprawdzę jak to dokładnie J.Grębosz pisał...
P-65607
Mrovqa
» 2012-09-27 10:46:32
C/C++
int main()
{
    int func() { return 5; }
    return func();
}
Gdy skompilujemy jako C to działa, jednakże jako C++ to nie chce się kompilować... Gdzie tu jest zachowana zgodność C++ z C? :/
P-65617
DejaVu
» 2012-09-27 13:34:21
Parcie na zgodność C++ z językiem C po tylu latach istnienia C++ jest bezsensowne :) Kompilatora C to raczej się już używa tylko do zadań na zaliczenia.
P-65622
« 1 » 2 3
  Strona 1 z 3 Następna strona