Hlavní navigace

Názor ke článku Bezpečné programování v C++ II od Lael Ophir - [17] Jestli mluvíte o pre-processoru, který nebezpečné konstrukce...

  • 20. 3. 2009 14:46

    Lael Ophir (neregistrovaný)

    [17] Jestli mluvíte o pre-processoru, který nebezpečné konstrukce nepustí dál, tak to by šlo. Jinak to nemá smysl, protože zase spoléháte jen na to, že programátor něco neudělá. Jenže programátoři jsou lidi, a dělají velkou spoustu chyb. Tomu nelze nijak zabránit. Jinak C# se mi líbí, a nevidím důvod používat okrajový jazyk typu F#.

    Výjimky samozřejmě neřeší vše, ale je to potřebný mechanismus. Právě to, že C/C++ programy tiše hnijí, když se něco nepovede, je příčinou velké spousty problémů.

    Strcpy budete těžko ověřovat, když máte například pointery na funkce. Prostě při analýze nebudete tušit, kdo nebo s jakými parametry zavolá kód, který strcpy použije. Naproti tomu v .NETu/Javě to není problém, protože neexistuje možnost, že by došlo k nepravostem.

    Jak jsem psal, C++ by blyo možné použít, pokud byste zajistil, že se nebezpečné konstrukce nebudou vyskytovat (ano, preprocessor může být řešení), zahodil POSIX, zahodil kompatibilitu s ANSI C, a napsal nové frameworky používající bezpečné konstrukce. Ovšem výsledkem by spíše něco jako MS C++/CLI.

    Co konkrétně máte na mysli "divokým imperativním kódem"?