eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programming › Stroustrup o C++
Ilość wypowiedzi w tym wątku: 43

  • 21. Data: 2019-01-14 17:42:52
    Temat: Re: Stroustrup o C++
    Od: AK <n...@n...net>

    On 2019-01-14 16:33, Wojciech Muła wrote:
    > On Monday, January 14, 2019 at 10:07:01 AM UTC+1, AK wrote:
    >> On 2019-01-14 09:37, Wojciech Muła wrote:
    >>> On Sunday, January 13, 2019 at 5:34:26 PM UTC+1, AK wrote:
    >>>> Przy deklaracji tablic wymagane jest const_expr (ktore jest
    >>>> podsetem expr) i wszytsko gra.
    >>>> _Nic_ nie stoi na przeszkodzie, aby dla sizeof tez bylo
    >>>> subexpr (nie dopuszczajace operatorow pre-in-fixowych).
    >>>
    >>> Nie rozumiem w czym te operatory przeszkadzają.
    >>
    >> No bez jaj. Przeszkadzaja, gdyz tak wlasciwie nie dzialaja
    >> w sizeof, a jedynie wprowadzaja w blad/konfuzje (8 zamiast 9)
    >> developerow.
    >
    > "... developerów, którzy nie rozumieją jak działa sizeof/decltype/etc."

    Bo trudno zrozumiec idiotyzm tego sizeofowego wyjatku.

    > Jeśli ktoś nie rozumie, że sizeof bierze **typ wyrażenia**
    > bez liczenia go, to trudno mieć pretensje do języka.

    Mozna, zwlaszcza ze (jak pokazalem) mozna go _bardzo latwo_ uniknac
    przez gramatyke.
    Bo ++ (-- itp) w sizeof nie maja _najmniejszego sensu_.
    Dlatego powinny byc zwyczajnie zabronione.

    > O ile> w C to jeszcze Twoja propozycja miałaby sens, to w C++ jest
    > nie do zaakceptowania, bo można przeciążać operatory. Wyrażenie
    > "x++" może mieć inny typ niż samo "x".

    Tak?. No cos podobnego!?
    Bo mi sie zawsze wydawalo, ze taki ++ to posiada obligatoryjne
    sygnatury:
    Klasa& Klasa::operator++(); // dla ++x
    Klasa Klasa::operator++(); // dla x++

    AK


  • 22. Data: 2019-01-14 17:48:22
    Temat: Re: Stroustrup o C++
    Od: AK <n...@n...net>

    On 2019-01-14 17:42, AK wrote:
    > Klasa  Klasa::operator++(); // dla x++
    oczywiscie:
    Klasa Klasa::operator++(int); // dla x++


  • 23. Data: 2019-01-14 19:53:29
    Temat: Re: Stroustrup o C++
    Od: Wojciech Muła <w...@g...com>

    On Monday, January 14, 2019 at 5:42:54 PM UTC+1, AK wrote:
    > > O ile> w C to jeszcze Twoja propozycja miałaby sens, to w C++ jest
    > > nie do zaakceptowania, bo można przeciążać operatory. Wyrażenie
    > > "x++" może mieć inny typ niż samo "x".
    >
    > Tak?. No cos podobnego!?
    > Bo mi sie zawsze wydawalo, ze taki ++ to posiada obligatoryjne
    > sygnatury:
    > Klasa& Klasa::operator++(); // dla ++x
    > Klasa Klasa::operator++(); // dla x++

    Ciekawa kwestia. W sumie się nad tym nie zastanawiałem, ostatni
    raz przeciążałem ten operator 10 lat temu, takiż on wybitnie
    przydatny. :)

    GCC/clang/ICC/MSVC nie protestują:

    ---test.cpp---
    #include <cstdio>

    struct X {
    int operator++(int) {
    return 42;
    }

    int x;
    int y;
    int z;
    };

    int main() {
    X x;
    printf("%d %d\n", sizeof(x), sizeof(x++));
    }
    ---eof---

    Na moim systemie dostaję "12 4".

    w.


  • 24. Data: 2019-01-15 15:02:36
    Temat: Re: Stroustrup o C++
    Od: AK <n...@n...net>

    On 2019-01-14 19:53, Wojciech Muła wrote:
    > On Monday, January 14, 2019 at 5:42:54 PM UTC+1, AK wrote:
    >>> O ile> w C to jeszcze Twoja propozycja miałaby sens, to w C++ jest
    >>> nie do zaakceptowania, bo można przeciążać operatory. Wyrażenie
    >>> "x++" może mieć inny typ niż samo "x".
    >>
    >> Tak?. No cos podobnego!?
    >> Bo mi sie zawsze wydawalo, ze taki ++ to posiada obligatoryjne
    >> sygnatury:
    >> Klasa& Klasa::operator++(); // dla ++x
    >> Klasa Klasa::operator++(); // dla x++
    >
    > Ciekawa kwestia. W sumie się nad tym nie zastanawiałem, ostatni
    > raz przeciążałem ten operator 10 lat temu, takiż on wybitnie
    > przydatny. :)

    No.. Nie powiedzial bym. Raczej najczesciej przeciazany.
    Kazdy byle iterator przeciaza zwykle ++,
    a tych jednak sie troche pisze (jakis rekordsety czy inne sekwencje).

    > GCC/clang/ICC/MSVC nie protestują:

    No to zle robia (jak to zwykle w C/C++:).
    Fakt ze, wiele jest dziur/niedomowien zarowno w raporcie
    jak i w kompilatorach.
    Heh, nawet glupi preprocesor sprawia pewne problemy.
    np.
    #else
    czy
    #endif
    w/g standardu/gramatyki C/C99 nie moze byc:
    # else jakies tokeny
    czy
    # endif jakies tokeny
    a kompilatory swoje - dopuszczaja (fakt, ze chociaz ostatnie
    VC++ daja warninga).

    AK


  • 25. Data: 2019-01-15 22:56:08
    Temat: Re: Stroustrup o C++
    Od: Wojciech Muła <w...@g...com>

    On Tuesday, January 15, 2019 at 3:02:40 PM UTC+1, AK wrote:
    > > GCC/clang/ICC/MSVC nie protestują:
    >
    > No to zle robia (jak to zwykle w C/C++:).
    > Fakt ze, wiele jest dziur/niedomowien zarowno w raporcie
    > jak i w kompilatorach.

    Z ciekawości zajrzałem do najnowszego drafta C++ i wychodzi
    na to, że nie definiuje zwracanego typu z operatorów post-/
    prefiksowych. Czyli kompilatory spełniają standard.

    Osobna kwestia czy takie ograniczenie miałoby sens.

    w.


  • 26. Data: 2019-01-16 00:36:39
    Temat: Re: Stroustrup o C++
    Od: AK <n...@n...net>

    On 2019-01-15 22:56, Wojciech Muła wrote:
    > On Tuesday, January 15, 2019 at 3:02:40 PM UTC+1, AK wrote:
    >>> GCC/clang/ICC/MSVC nie protestują:
    >>
    >> No to zle robia (jak to zwykle w C/C++:).
    >> Fakt ze, wiele jest dziur/niedomowien zarowno w raporcie
    >> jak i w kompilatorach.
    >
    > Z ciekawości zajrzałem do najnowszego drafta C++ i wychodzi
    > na to, że nie definiuje zwracanego typu z operatorów post-/
    > prefiksowych. Czyli kompilatory spełniają standard.

    Mowilem o niespojnosciach/niedopowiedzeniach.
    Kazda porzadniejsza ksiazka do C++ definiuje te operatory tak
    jak je podalem.

    > Osobna kwestia czy takie ograniczenie miałoby sens.

    IMHO mialoby.

    AK


  • 27. Data: 2019-01-18 13:50:34
    Temat: Re: Stroustrup o C++
    Od: q...@t...no1 (Queequeg)

    s...@g...com wrote:

    > x == 9; y == 4;
    > Co w tym tajemniczego?!?

    Sprawdziłeś?

    --
    https://www.youtube.com/watch?v=9lSzL1DqQn0


  • 28. Data: 2019-01-18 14:05:16
    Temat: Re: Stroustrup o C++
    Od: q...@t...no1 (Queequeg)

    AK <n...@n...net> wrote:

    > Jednak kazdy Ci powie, ze Mercedes (choc nie idealny, A-iles_tam
    > sie przewracal:), jest jednak lepszy od jakiegos Tico.

    Zależy w jakich kategoriach go oceniasz. Jeśli szukasz samochodu, który
    będzie tani (w zakupie i w eksploatacji), to 10-letnie, małolitrażowe Tico
    będzie lepsze od wypasionego Mercedesa.

    Wybór między Mercedesem i Tico to sztuka kompromisu tak samo, jak wybór
    języka programowania.

    > Podobnie z j.prog. Nnie ma idealnych, ale sa (niekiedy zdecydowanie)
    > lepsze i (niekiedy zdecydowanie) gorsze.

    Wg mnie, jeśli poruszamy się wśród "mainstreamowych" języków, to zależy to
    głównie od konkretnego zastosowania.

    Gdy musiałem zrobić webserwis, to mimo zerowego doświadczenia z C#
    wybrałem właśnie ten język, zamiast trzymać się C++, w którym piszę
    najwięcej.

    --
    https://www.youtube.com/watch?v=9lSzL1DqQn0


  • 29. Data: 2019-01-18 16:45:32
    Temat: Re: Stroustrup o C++
    Od: q...@t...no1 (Queequeg)

    AK <n...@n...net> wrote:

    > int x = 8;
    > int y = sizeof(x++);
    > // no wiec ile w tym miejscu wynosi sobie x ?

    Zadałem to pytanie na ryjbuku:

    http://tinypic.com/view.php?pic=15gblsw&s=9

    I dostałem odpowiedź od pewnej dobrze zapowiadającej się przyszłej
    programistki, że:

    - sizeof() jest funkcją, która nie ma ciała
    - w argumencie funkcji nie może być x++
    - x++ to to samo, co x=x+1
    - takich operacji nie robi się w argumencie

    Taki jest poziom polskiej edukacji.

    http://tinypic.com/view.php?pic=2mx037b&s=9

    --
    https://www.youtube.com/watch?v=9lSzL1DqQn0


  • 30. Data: 2019-01-19 00:59:58
    Temat: Re: Stroustrup o C++
    Od: Wojciech Muła <w...@g...com>

    On Friday, January 18, 2019 at 4:45:34 PM UTC+1, Queequeg wrote:
    > AK <n...@n...net> wrote:
    >
    > > int x = 8;
    > > int y = sizeof(x++);
    > > // no wiec ile w tym miejscu wynosi sobie x ?
    >
    > Zadałem to pytanie na ryjbuku:
    >
    > http://tinypic.com/view.php?pic=15gblsw&s=9
    >
    > I dostałem odpowiedź od pewnej dobrze zapowiadającej się przyszłej
    > programistki, że:
    >
    > - sizeof() jest funkcją, która nie ma ciała
    > - w argumencie funkcji nie może być x++
    > - x++ to to samo, co x=x+1
    > - takich operacji nie robi się w argumencie
    >
    > Taki jest poziom polskiej edukacji.
    >
    > http://tinypic.com/view.php?pic=2mx037b&s=9

    Akurat unikanie post- i pre-inkrementacji w argumentach
    funkcji to dobra praktyka, poprawia czytelność.

    w.

strony : 1 . 2 . [ 3 ] . 4 . 5


Szukaj w grupach

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: