eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingwyzwanie z szablonami ;]Re: wyzwanie z szablonami ;]
  • Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.
    atman.pl!.POSTED!not-for-mail
    From: Edek <e...@g...com>
    Newsgroups: pl.comp.programming
    Subject: Re: wyzwanie z szablonami ;]
    Date: Fri, 07 Oct 2011 18:16:50 +0200
    Organization: ATMAN - ATM S.A.
    Lines: 54
    Message-ID: <j6n8na$7fa$1@node2.news.atman.pl>
    References: <j6kipe$qt3$1@inews.gazeta.pl> <j6kitl$dmv$1@node2.news.atman.pl>
    <j6kknb$385$1@inews.gazeta.pl> <j6m07u$os3$1@inews.gazeta.pl>
    <j6mu8s$6d1$1@inews.gazeta.pl>
    <8...@f...googlegroups.com>
    NNTP-Posting-Host: 213.195.143.220
    Mime-Version: 1.0
    Content-Type: text/plain; charset=ISO-8859-2; format=flowed
    Content-Transfer-Encoding: 8bit
    X-Trace: node2.news.atman.pl 1318004266 7658 213.195.143.220 (7 Oct 2011 16:17:46
    GMT)
    X-Complaints-To: u...@a...pl
    NNTP-Posting-Date: Fri, 7 Oct 2011 16:17:46 +0000 (UTC)
    User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.17) Gecko/20110428
    Linux/3.1.0-15 Thunderbird/3.1.0
    In-Reply-To: <8...@f...googlegroups.com>
    Xref: news-archive.icm.edu.pl pl.comp.programming:192639
    [ ukryj nagłówki ]

    On 10/07/2011 05:32 PM, Andrzej Jarzabek wrote:
    > On Oct 7, 2:19 pm, "Sarr."<s...@g...pl> wrote:
    >> On 7-10-2011 6:46, Andrzej Jarzabek wrote:
    >>
    >>> On 06/10/2011 17:24, Sarr. wrote:
    >>>> On 6-10-2011 17:52, Edek wrote:
    >>
    >>>> pytanie pozakonkursowe, oczywiscie b i Sth to uproszczenie dla potrzeb
    >>>> zadania, zazwyczaj beda to dluzsze nazwy, i w takim wypadku na przyklad:
    >>
    >>>> myHappyRotator->TComponentInterface<ConstRotatorComp
    onent>::GetValue();
    >>
    >>>> czy taki zapis mozna uznac za elegancki?
    >>
    >>> Elegancko będzie owinąć to w klasie pochodnej w funkcję, której nazwa
    >>> mówi co to jest to, co ona zwraca w kontekście tej klasy.
    >>
    >> racja. o to chodzilo.
    >
    > Dodatkowo co jeszcze można zrobić dla poprawienia czytelności kodu to
    > nadać klasom bazowym nazwy w klasie pochodnej przy pomocy typedef,
    > np.:
    > class HappyRotator: public TComponentInterface<ConstRotatorComponent>
    > {
    > typedef TComponentInterface<ConstRotatorComponent> ConstRotator;
    > public:
    > RotVal GetConstRotation() {
    > return ConstRotator::GetValue();
    > }
    >
    > (oczywiście nazwy funkcji i klasy wziąłem z sufitu, w rzeczywistości
    > powinny odzwierciedlać semantykę danych konstrukcji)

    Albo:

    template <class Comp>
    class ValueGetter
    {
    TComponentInterface<Comp> const * tci;
    public:
    ValueGetter(TComponentInterface<Comp> const * _tci) : tci(_tci) {};

    operator int () { return tci->GetValue(); };
    }

    Użycie:

    int val = ValueGetter<MyRod> (myHappyRotator);

    Sprawdziłbym też tuple->get<1>(). Kiedyś zajrzę i sprawdzę o co chodzi,
    jak to jest rozwiązane i dlaczego niektóre kompilatory nie pozwalają
    na rozwiązanie z member template i trzeba robić get<1>(tuple);

    Edek

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj

Najnowsze wątki z tej grupy


Najnowsze wątki

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: