• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Język C++. Kompendium wiedzy problem ze zrozumieniem

Aruba Cloud - Virtual Private Server VPS
0 głosów
171 wizyt
pytanie zadane 21 sierpnia 2024 w C i C++ przez RufinB Bywalec (2,020 p.)
Witam,
Właśnie czytam książkę "Język C++. Kompendium wiedzy. Wydanie IV" i nie mogę zrozumieć jednego zdania na stronie 761 w podrozdziale 26.3.1. Treść tego rozdziału dotyczy wiązania nazw i podaje definicje typu zależnego:
"1.Typ argumentu rzeczywistego zależy od parametru szablonowego T zgodnie z zasadami dedukcji typów np. f(T(1)),f(t),f(g(t)),f(&t), przy założeniu że t jest obiektem typu T.
2.Wywołana funkcja ma parametr zależny od T zgodnie z zasadami dedukcji typów np. f(T),f(list<T>&) oraz f(const T*)"

Pierwszy podpunkt rozumiem ale do drugiego nie mogę wymyślić przykładu

1 odpowiedź

+3 głosów
odpowiedź 22 sierpnia 2024 przez adrian17 Mentor (352,580 p.)
wybrane 22 sierpnia 2024 przez RufinB
 
Najlepsza

OK, to jest... trudniejsze niż myślałem :( Jakby co, porównywałem do angielskiej (ale analogicznej) wersji tego tekstu.

Najbliższą podpowiedzią dla mnie jest https://stackoverflow.com/a/3952874 , gdzie autor odpowiedzi bezpośrednio zaprzecza drugiemu punktowi książki:

Also, the formal parameters of a function have nothing to do with whether a function call is dependent or not. In the IS, only actual arguments define dependency of a function name. 

I dalej cytuje część starego (1996, czyli przed jakąkolwiek oficjalną wersją) szkicu standardu C++a:

[Example: some calls that depend on a template-argument type T are:

  1. The function called has a parameter that depends on T according to the type deduction rules (temp.deduct). For example, f(T), f(Array), and f(const T*).

  2. The type of the actual argument depends on T. For example, f(T(1)), f(t), f(g(t)), and f(&t) assuming that t has the type T.

Ten tekst jest praktycznie identyczny co w książce Strostrupa - a jednocześnie, ten tekst nie jest obecny w żadnej nowszej wersji standardu.

Więc moją osobistą interpretacją tutaj jest, że książka tłumaczy w sposób błędny, zainspirowany częścią standardu języka która kiedyś była proponowana ale nigdy nie stała się faktem.

Na szczęście w praktyce można tu się kierować intuicją i nie powinno być tutaj wielkich niespodzianek. (za to z późniejszymi tematami jak ADL, to już się czasem robi śmiesznie :) )

komentarz 22 sierpnia 2024 przez RufinB Bywalec (2,020 p.)
Bardzo dziękuję za odpowiedź

Podobne pytania

+16 głosów
2 odpowiedzi 26,343 wizyt
0 głosów
1 odpowiedź 418 wizyt
pytanie zadane 29 grudnia 2017 w C i C++ przez niezalogowany

93,331 zapytań

142,323 odpowiedzi

322,400 komentarzy

62,667 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...