Egy Code::Blocks-ban megirt mukodo c++ban irt program forraskodjat mas compiler-eknek is tudniuk kellene futtatni?
"Miért kéne?"
A szabványos szintaktika miatt. Ha a fordítónak szóló speckó direktívákat használ az ember, akkor persze az a fordítóhoz köti a kódot, ez nyilvánvalóan igaz.
Ha meg egyéb dialektusokat használ, akkor azt csak nagyon laza értelemben nevezhetjük C++-nak. :) C++ alatt az ANSI szabványnak megfelelő kódot értem. Fordító alatt meg ami tudja a megfelelő szabványt. (Olyan persze lehet, hogy egy régi fordító még nem ismer egy újonnan bevezetett szintaxist, de ilyen alapon akkor tényleg egyik kód sem lenne hordozható, amit annak titulálnak.)
Nalátod :) Variadic template pl még mindig nincs msvc-ben, sem default/deleted függvények.
A fordítók rengeteg kiterjesztést adnak, ha használod, már nem hordozható a kódod más fordítóra, ami nem feltétlenül baj, viszont tény.
Nem vitázni akarok, mert látom, hogy jobban benne vagy a témában. :)
De azért szerintem pl. a variadic template is egyfajta c++ szabvány (lett), és ha egy fordító naprakész, akkor ismernie kell. Ezért írtam, hogy ilyen alapon nem létezik hordozható forráskód, legyen az Java, c#, stb. Ami meg nem része a szabványnak, az csak nagy jóindulattal c++.
Na mindegy, akkor úgy fogalmazok, hogy elvileg az ANSI c++ hordozható, gyakorlatilag meg attól függ.
Respect. :))
Arról meg nem is beszéltünk még, hogy milyen architektúrán, és milyen oprendszeren fordítom. Egy Win32-höz írt, alacsony szintű hívásokat tartalmazó kód valszeg nem fog lefordulni Linux-hoz. (De magas szintű könyvtárakat használva sem biztos. Vagy lefordul, de nem úgy viselkedik a progi.) Egy oprendszer nélküli kütyühöz meg pláne, pl. egy AVR vagy Z80 áramkörre. Pedig azokhoz is van c++ fordító.
Szóval tényleg attól függ.. :)
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!