eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingwyzwanie z szablonami ;]Re: wyzwanie z szablonami ;]
  • Data: 2011-10-07 16:16:50
    Temat: Re: wyzwanie z szablonami ;]
    Od: Edek <e...@g...com> szukaj wiadomości tego autora
    [ pokaż wszystkie 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: