c++

Poruka
1.900
Ajde sad barem ima neka trojka.

Iskreno, ja bas ne koristim C++ godinama, ali mi je C++ jedno prilicno vreme bio glavni alat. A pitanje je cisto prakticno.

C++ je jedan od retkih jezika koji moze da tako da kazem utice na sopstvenu semantiku (ili da prosiruje svoju sintaksu). Ovde pricam o osobini ili tehnici koja se zove Operator Overload. Ovako iz glave pokusavam da se setim nekog drugog jezika koji ima istu ili slicnu osobinu. Ali sad bas ne mogu da se setim.

Razmisljajuci o konstrukciji jezika, zapitao sam se da li ste ikad i za nesto koristili ovu tehniku i koliko je uopste vidite korisnom? I ako je vidite korisnom za koje namene?
 

hm337

Poznat
Poruka
9.107
Ajde sad barem ima neka trojka.

Iskreno, ja bas ne koristim C++ godinama, ali mi je C++ jedno prilicno vreme bio glavni alat. A pitanje je cisto prakticno.

C++ je jedan od retkih jezika koji moze da tako da kazem utice na sopstvenu semantiku. Ovde pricam o osobini ili tehnici koja se zove Operator Overload. Ovako iz glave pokusavam da se setim nekog drugog jezika koji ima istu ili slicnu osobinu. Ali sad bas ne mogu da se setim.

Razmisljajuci o konstrukciji jezika, zapitao sam se da li ste ikad i za nesto koristili ovu tehniku i koliko je uopste vidite korisnom? I ako je vidite korisnom za koje namene?
koristio naravno jesam, ali ne mislim da je previše korisno u praksi...nekad je logično i smisleno koristiti operatore za neke situacije ali nema takvih situacija baš mnogo...
 

bmaxa

Buduća legenda
Poruka
33.753
Ajde sad barem ima neka trojka.

Iskreno, ja bas ne koristim C++ godinama, ali mi je C++ jedno prilicno vreme bio glavni alat. A pitanje je cisto prakticno.

C++ je jedan od retkih jezika koji moze da tako da kazem utice na sopstvenu semantiku (ili da prosiruje svoju sintaksu). Ovde pricam o osobini ili tehnici koja se zove Operator Overload. Ovako iz glave pokusavam da se setim nekog drugog jezika koji ima istu ili slicnu osobinu. Ali sad bas ne mogu da se setim.

Razmisljajuci o konstrukciji jezika, zapitao sam se da li ste ikad i za nesto koristili ovu tehniku i koliko je uopste vidite korisnom? I ako je vidite korisnom za koje namene?
Overloading je korisno kada god imas neke operacije sa objektima koji lice na te operacije. Recimo operacije sa matricama, vektorima
su najtipicniji primeri. Drugi jezici su svi ovi novi Rust,Swift ml jezici, Haskell pogotovo. Imas i operator konverzije koji je mozda korisceniji
a istom sintaksom se uvodi...
 
Poruka
1.900
koristio naravno jesam, ali ne mislim da je previše korisno u praksi...nekad je logično i smisleno koristiti operatore za neke situacije ali nema takvih situacija baš mnogo...
slazem se da nema mnogo situacija ali cini mi se da ta tehnika eventualno moze da poveca citljivost koda, a verovatno da je nema, sasvim moze da se operacija koristi kao funkcija.

recimo da sam je koristio samo jednom. Ali ko sto rekoh ne koristim c++ godinama. Jos uvek nemam razlog.

Da li ti je tehnika bila komplikovana da je savladas?
 

hm337

Poznat
Poruka
9.107
slazem se da nema mnogo situacija ali cini mi se da ta tehnika eventualno moze da poveca citljivost koda, a verovatno da je nema, sasvim moze da se operacija koristi kao funkcija.

recimo da sam je koristio samo jednom. Ali ko sto rekoh ne koristim c++ godinama. Jos uvek nemam razlog.

Da li ti je tehnika bila komplikovana da je savladas?
pa nije komplikovano...funkcija koja se pravi kao i svaka druga ......samo joj je ime operator i oznaka operatora...
 
Poruka
1.900
Overloading je korisno kada god imas neke operacije sa objektima koji lice na te operacije. Recimo operacije sa matricama, vektorima
su najtipicniji primeri.
Ovo su odlicni primeri - hvala!
Drugi jezici su svi ovi novi Rust,Swift ml jezici, Haskell pogotovo. Imas i operator konverzije koji je mozda korisceniji
a istom sintaksom se uvodi...
Sva tri jezika koja pominjes sam malo proucavao ali ni jedan od njih zapravo ne koristim. Nekako mi u Haskellu dodje i logicno da ima tako nesto s obzirom na osnovnu namenu jezika (mada cini mi se da sam video i neke prakticne programe pisane u Haskelu)

Cudno mi je da se generalno Swift retko pominje ipak je tu Apple hteo nesto da usavrsi. Jes da oni nisu bili na C++ strani nego na obj-c.

Rust vec gledam neko vreme, ali mi nesto tu smeta. Spada u ono, you have to unlearn what you have learned. A mene ocigledno mrzi, pa cekam da bude jos malo vise popularan valjda. Recimo pre bi nesto pisao u Go-u nego u Rust-u da mi to treba i da mogu da biram.

Ali najvise me zaintrigiralo ovo sa 'konverzijom', dakako na odredjenim mestima neki objekat bi trebalo da moze da se konvertuje u nesto drugo. To ako sam shvatio dobro ono sto si hteo da kazes.
 

bmaxa

Buduća legenda
Poruka
33.753
Recimo pre bi nesto pisao u Go-u nego u Rust-u da mi to treba i da mogu da biram.
Go je iskljucivo za mrezno programiranje. Ima gcc-go i plan9-go i to malo komplikuje stvari. Recimo go ne moze gui callbackove
iz C-a pouzdano da radi zbog nemogucnosti translacije pointera. Drugo poziv C fje u gou je jako skup, zbog translacije
parametara. Zato je Google i napravio Carbon. Inace dosta sam radio u Go/u za svoju dusu...
 

bmaxa

Buduća legenda
Poruka
33.753
slazem se da nema mnogo situacija ali cini mi se da ta tehnika eventualno moze da poveca citljivost koda, a verovatno da je nema, sasvim moze da se operacija koristi kao funkcija.

recimo da sam je koristio samo jednom. Ali ko sto rekoh ne koristim c++ godinama. Jos uvek nemam razlog.

Da li ti je tehnika bila komplikovana da je savladas?
Najgore je sto moze da napravi picvajz jer je druga semantika funkcije i operatora.
 
Poruka
1.900
Najgore je sto moze da napravi picvajz jer je druga semantika funkcije i operatora.
Slazem se da semantika operatora moze da znaci razlicito za razlicite ljude ali to se verovatno lakse resava kroz dokumentovanje, kao sto dokumentujemo metode i funkcije tako mozemo da dokumentujemo i operatorovu semantiku. Tako nema ljutis. Cak i kad pravimo objekte pozeljno je da dokumentujemo znacenje i idejnu namenu.
Ja sam koristio unarne operatore. Nisam sasvim siguran da moze vise osim unarnih i binarnih operatora da se koristi u ovoj tehnici.
 

bmaxa

Buduća legenda
Poruka
33.753
Slazem se da semantika operatora moze da znaci razlicito za razlicite ljude ali to se verovatno lakse resava kroz dokumentovanje, kao sto dokumentujemo metode i funkcije tako mozemo da dokumentujemo i operatorovu semantiku. Tako nema ljutis. Cak i kad pravimo objekte pozeljno je da dokumentujemo znacenje i idejnu namenu.
Ja sam koristio unarne operatore. Nisam sasvim siguran da moze vise osim unarnih i binarnih operatora da se koristi u ovoj tehnici.
C++ ima operator= i to je jedini obavezan operator. Sad su malo zakomplikovali sa move varijantama jer mozes da se zeznes
ako se na pomerenom objektu pozove destruktor, sto Rust automatski resava...
 
Poruka
1.900
Inace Swift je inzenjerski Rust, a sam Rust je vise computer science.
Zasto tako mislis (za rust), gledao sam neka predavanja ljudi koji su ga kreirali, napravili su ga bas sa namerom da bude sigurniji svakodnevni alat u poredjenju sa drugim jezicima. Tacnije, glavni motiv je memory safety za kompleksne proizvode. S obzirom da ga koristi Netscape, s vremena na vreme gledam dokle su stigli sa web engine-om u rustu - poodmakli su dosta kad sam gledao prosli put, browser je prilicno komplikovana rabota a koliko sam shvatio oni hoce da ga prepisu ceo browser engine sa C++ na Rust.
 

bmaxa

Buduća legenda
Poruka
33.753
Zasto tako mislis (za rust), gledao sam neka predavanja ljudi koji su ga kreirali, napravili su ga bas sa namerom da bude sigurniji svakodnevni alat u poredjenju sa drugim jezicima. Tacnije, glavni motiv je memory safety za kompleksne proizvode. S obzirom da ga koristi Netscape, s vremena na vreme gledam dokle su stigli sa web engine-om u rustu - poodmakli su dosta kad sam gledao prosli put, browser je prilicno komplikovana rabota a koliko sam shvatio oni hoce da ga prepisu ceo browser engine sa C++ na Rust.
Zato sto Rust potencira neke stvari koje inzenjerima smetaju. Pogledaj swift samo print i rust print i sve ce ti se kasti :p
 
Poruka
1.900
e da... taj rust print mi pomalo smeta, kao da sam se vratio 3 koraka u istoriju. C# ima $ strings, Python F-strings ... neuporedivo citljivije i manje gresaka. Python wins C# down, zato sto f strings mogu da budu dinamicki a u C# jbg kompajler tako da format string moze da bude samo staticki jer se kompajlira.
 
Poslednja izmena:
Poruka
1.900
Zato sto Rust potencira neke stvari koje inzenjerima smetaju. Pogledaj swift samo print i rust print i sve ce ti se kasti :p
Swift print je vrlo interesatan sa tim dodatim modifikatorima. Zanimljiv mi je. Print je malo problematican svakako jer ako pises neku aplikaciju za produkciju bolje je da loguje nego da printuje, a onda pocinje sva problematika logginga. Naravno nekad je bolje ovo nekad ono, a i print moze da se loguje, medjutim imao sam i situacije da nesto hocu da printujem, nesto da logujem a nesto i jedno i drugo. Pa pisem svoju log funkciju umesto printa. Dakle wrappujem print pa me mnogo ne sekira.
 

bmaxa

Buduća legenda
Poruka
33.753
Swift print je vrlo interesatan sa tim dodatim modifikatorima. Zanimljiv mi je. Print je malo problematican svakako jer ako pises neku aplikaciju za produkciju bolje je da loguje nego da printuje, a onda pocinje sva problematika logginga. Naravno nekad je bolje ovo nekad ono, a i print moze da se loguje, medjutim imao sam i situacije da nesto hocu da printujem, nesto da logujem a nesto i jedno i drugo. Pa pisem svoju log funkciju umesto printa. Dakle wrappujem print pa me mnogo ne sekira.
Meni je Swift idealan jezik, ali nazalost Apple ga cuva samo za sebe :p
 
Da biste mogli da kreirate nove teme, trajno koristite svoje ime i ne pogađate stalno slike - kliknite ovde da se registrujete.

Top
  Blokirali ste reklame
Dragi prijatelju, nemojte da blokirate reklame - isključite Ad Blocker na Forumu, jer će tako mesto vaših susreta na Krstarici ostati besplatno za korišćenje.