hilpers


  hilpers > comp.lang.* > comp.lang.c

 #106  
08.07.2008, 18:22
Seweryn Habdank-Wojewodzki
Witam

> "Visitor jest idiomem pewnego j=EAzyka, maj=B1cego braki w jakiej=B6
> konstrukcji steruj=B1cej, i kt=F3ry to idiom poprawia samopoczucie
> ludziom, kt=F3rzy nie umiej=B1 obs=B3ugiwa=E6 swoich kompilator=F3w."


Pewnego języka czyli? Ja już się zgubiłem o jakim języku mowa :-).

> Przewi=F1 do linii 84 i zobacz, co tam si=EA zaczyna.


Kod jest czysty :-). Pozwolę sobie zadać pytanie,
jak to się ma do boost::variant?

Prawdę mówiąc to zgubiłem się w zawiłościach tego wątku.

Pozdrawiam,
Seweryn Habdank-Wojewódzki.
 #107  
08.07.2008, 18:23
Sebastian Bialy
Seweryn Habdank-Wojewodzki wrote:
> W Javie masz GPF? Na Jowisza myśłałem, że Javie nie ma GPF.


Zboczenie zawodowe. W javie oczywiście mam null pointer dereference. Ale
na jedno wychodzi a ja jakoś nazywam wszystko hurtem GPF.
 #108  
08.07.2008, 18:29
Seweryn Habdank-Wojewodzki
Witam

Krzysiek Kowaliczek <this> napisał(a):

> >> Ewentualnie z Type można by zrobić klasę i przechowywać w
> >> niej wynik ( tylko wtedy nie nazywała by się już Type ).

> >
> > Pytanie co byloby wynikiem. Jesli stan jakiegos obiektu, to czemu nie?
> >

>
> W skrajnych przypadkach będziesz miał tyle typów wyniku ile
> algorytmów, ale jak zrozumiałem, raczej rozwiązanie
> ograniczy się do kilku typów.


No więc albo klasa pochodna od stanu, a czy boost::variant będzie zły?

Pozdrawiam,
Seweryn Habdank-Wojewódzki.
 #109  
09.07.2008, 06:48
Jedrzej Dudkiewicz
Rafal wrote:
> Maciej Sobczak pisze:
>> Czyli standardu też nie czytałeś. Standard nie gwarantuje ale też nie
>> zabrania komunikatu o błędzie jeśli switch nie jest kompletny a typem
>> wyrażenia jest jakiś enum.

>
> Możesz podać w którym miejscu standard C++ dopuszcza traktowanie
> niekompletnego switch jako błąd ?


W żadnym, przypuszczam, że Maćkowi chodziło o "diagnostic message",
czyli o "warning" a nie "error".

JD
 #110  
09.07.2008, 11:45
Maciej Sobczak
On 8 Lip, 20:10, Rafal <ra> wrote:

> > Czyli standardu też nie czytałeś. Standard nie gwarantuje ale też nie
> > zabrania komunikatu o błędzie jeśli switch nie jest kompletny a typem
> > wyrażenia jest jakiś enum.

>
> Możesz podać w którym miejscu standard C++ dopuszcza traktowanie
> niekompletnego switch jako błąd ?


Dobre pytanie. Komunikat o błędzie w sensie odrzucenia programu to
faktycznie przesada (jest nawet napisane, że jeśli program jest well-
formed, to ma być zaakceptowany (1.4/2) - a niepełny switch jest well-
formed), ale przyjacielskie komunikaty kompilator może sobie
produkować do woli, zaczynając od dzisiejszej daty, przez warunki
licencji a na wykrywaniu niekompletnych switch kończąc.

Jeśli powiesz, że kombinacja -Wswitch -Werror jest niezgodna ze
standardem, to się zgodzę, ale nie byłaby to jedyna rzecz niezgodna ze
standardem, którą warto użyć - i nie zmieniłaby ogólnej oceny
visitora.
 #111  
09.07.2008, 11:51
Maciej Sobczak
On 8 Lip, 20:22, "Seweryn Habdank-Wojewodzki" <sh-wSKA>
wrote:

> > "Visitor jest idiomem pewnego j=EAzyka, maj=B1cego braki w jakiej=B6
> > konstrukcji steruj=B1cej, i kt=F3ry to idiom poprawia samopoczucie
> > ludziom, kt=F3rzy nie umiej=B1 obs=B3ugiwa=E6 swoich kompilator=F3w."

>
> Pewnego języka czyli? Ja już się zgubiłem o jakim języku mowa :-).


C++. W innych językach (np. w Adzie) switch jest zrobiony dobrze i
dzięki temu nie miałbyś motywacji unikać jego potencjalnych błędów
visitorem.

> > Przewi=F1 do linii 84 i zobacz, co tam si=EA zaczyna.

>
> Kod jest czysty :-).


Musi. ;-)

> Pozwolę sobie zadać pytanie,
> jak to się ma do boost::variant?


Wcale się nie ma. W tym przykładzie kod operuje na wskaźnikach do
obiektów podanych przez użytkownika a nie trzymanych przez bibliotekę,
więc boost::variant/any nie ma tu zastosowania (pytanie: kto jest
właścicielem obiektu?).

Konkretnie wygląda to tak, że użytkownik pisze:

int salary;
string name;

sql << "select name, salary from persons where id = 7",
into(name), into(salary);

a kod, który widziałeś, ma za zadanie wpisać odpowiednie wartoścido
zmiennych powyżej. Czyli do *cudzych* zmiennych.
boost::variant/any pozwala trzymać różne typy, jako *własne* obiekty.

Inna kwestia, ale też na temat: SOCI z założenia miało nie używać
typów z Boost.
 #112  
10.07.2008, 09:35
Seweryn Habdank-Wojewódzki
Witam

> > Pozwolę sobie zadać pytanie,
> > jak to się ma do boost::variant?

>
> Wcale się nie ma.


[...]

Rozumiem.

W kazdym razie jesli mam taka sytuacje wzgledem SWOICH typow o duzym
rozrzucie,
to uwazam, ze variant jest ok. wszczegolnosci, ze ma metode get_type()
i mozna z
tym pracowac analogicznie jak z enum.
Ale w sumie ciekawe, czy variant moze pomiescic referencje do
objektow, wtedy
moznabyloby tak wlasnie przekazywac nieznane typy usera.

> Inna kwestia, ale też na temat: SOCI z założenia miało nie używać
> typów z Boost.


Zawsze mozna kod wciagnac, defakto nie uzywajac Boost ;-).

Pozdrawiam,
Seweryn Habdank-Wojewodzki.

Podobne wątki
Ciekawostka przyrodnicza

Dziś zostałam uraczona chłodnikiem "litewskim" z... krewetkami, w zastępstwie raków, chyba. Hmmm... :/

ciekawostka przyrodnicza

> NH4(+) = NH3(+) + H ze niby wodor atomowy powstaje?? dziwne...

ciekawostka przyrodnicza

Jestem dumnym posiadaczem dosyć wiekowego ale do tej pory spisującego się bez zarzutów kompa. Mój zestaw to Plyta główna Acorp 6bx67 z chipsetem 440BX Procesor Celeron 333,...

Ciekawostka przyrodnicza

Co wam to przypomina? (reklama z Gadu-gadu - 17 KB) [..]


Czasy w strefie GMT. Teraz jest 10:34. | Privacy Policy