eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programming › Efektywne syntezowanie op= z op ?
Ilość wypowiedzi w tym wątku: 4

  • 1. Data: 2010-01-11 07:55:17
    Temat: Efektywne syntezowanie op= z op ?
    Od: Maciej Pilichowski <P...@g...com>

    Hej,

    Jesli mamy zdefiniowany op= to automatycznie mozemy syntezowac op.
    Np. w C++

    template <class X, class Y>
    X op(const X &x,const Y &y)
    {
    X t(x);
    t op= y;
    return t;
    }

    oczywiscie musimy sie zdecydowac na jakies op.

    Ale teraz odwrotny problem -- mamy zdefiniowane op, a chcemy dostac
    op=

    template <class X, class Y>
    void op(X &x,const Y &y)
    {
    x = x op y;
    }

    Mimo, ze kod jest krotszy, to jednak jest niebezpieczenstwo niskiej
    efektywnosci. Pytanie wiec -- jak to zrobic wydajnie?


    A skad pytanie -- w C# zalecane jest takie definiowanie operatorow,
    ktore nie zmieniaja argumentu. Reszte ma byc madrze dosyntezowana.
    Zastanawiam sie wiec, jakich MS technik uzywa, ze im wychodzi to
    wydajnie (klasyk to operator ++pre i post, normalnie post definiuje
    sie na bazie pre, ale w C# jest wlasnie odwrotnie).

    milego dnia, hej


  • 2. Data: 2010-01-12 12:30:12
    Temat: Re: Efektywne syntezowanie op= z op ?
    Od: Krzysiek Kowaliczek <k...@g...com>

    Użytkownik Maciej Pilichowski napisał:
    [...]
    > A skad pytanie -- w C# zalecane jest takie definiowanie operatorow,
    > ktore nie zmieniaja argumentu. Reszte ma byc madrze dosyntezowana.
    > Zastanawiam sie wiec, jakich MS technik uzywa, ze im wychodzi to
    > wydajnie (klasyk to operator ++pre i post, normalnie post definiuje
    > sie na bazie pre, ale w C# jest wlasnie odwrotnie).

    Biblioteka standardowa C++ też używa podobnej techniki np.:
    std::map wymaga tylko operatora <, resztę jak == potrafi
    zrobić sobie sama.
    Jeżeli chodzi o rozwiązanie ogólne, to istnieje takowe w boost:
    http://www.boost.org/doc/libs/1_41_0/libs/utility/op
    erators.htm

    Pozdrawiam
    KK


  • 3. Data: 2010-01-12 14:44:06
    Temat: Re: Efektywne syntezowanie op= z op ?
    Od: Maciej Pilichowski <P...@g...com>

    On Tue, 12 Jan 2010 13:30:12 +0100, Krzysiek Kowaliczek
    <k...@g...com> wrote:

    >Biblioteka standardowa C++ też używa podobnej techniki np.:
    >std::map wymaga tylko operatora <, resztę jak == potrafi

    Przeciez to sa dwa rozne operatory, a co wiecej oba zwracaja wyniki
    (sa funkcjami).

    Pytam jak efektywnie przejsc od op do op=

    np. jak zrobic z
    * (mnozenie, wynik jest zwracany)

    *= (mnozenie i przypisanie)

    milego dnia, hej


  • 4. Data: 2010-01-12 20:12:38
    Temat: Re: Efektywne syntezowanie op= z op ?
    Od: "Marcin 'Qrczak' Kowalczyk" <q...@k...org.pl>

    On Jan 11, 8:55 am, Maciej Pilichowski
    <P...@g...com> wrote:

    > template <class X, class Y>
    > void op(X &x,const Y &y)
    > {
    >  x = x op y;
    >
    > }
    >
    > Mimo, ze kod jest krotszy, to jednak jest niebezpieczenstwo niskiej
    > efektywnosci. Pytanie wiec -- jak to zrobic wydajnie?

    Wydajniej niż to w ogólności się nie da.

strony : [ 1 ]


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: