Pravda o testax Actiona
Why waste time learning when ignorance is instantaneous?
Hobbes
Nedavno nekij gospodin Mr.M napisal svoi volnujushie vpechatlenija po povodu testov C++ Action.
Esli ostavim v storone emocional’nuju storonu ego pamfleta to v celom ego pretenzii svodilis’ k sledujuschemu
1. testy ne praktichnye
2. voprosy opirajutsja na konkretnuju realizacuju I vozmozhno neskol’ko pravil’nyx otvetov
3. Action ne smozhet etomu nauchit’ I ne nuzhno etomu uchit’
Po povodu pervogo punkta xochu zametit’ chto ne pripominaju chtoby Action kogda libo obeschal gospodinu Mr. M pomestit’ na svoem sajte PRAKTICHNYE testy. Testy raschitany na teoreticheskie znanija I nikogda ne pretendovali na chto libo inoe. Dlja ljubitelej prakticheskix testov suschestvuet Brainbench. Action ne vidit smysla v sozdanii eshe odnogo takogo zhe testa.
Vtoroe. Pravil’nym schitaetsja otvet sootvetstvujuschij poslednemu standartu C++ (ISO/IEC 14882). I ni v odnom voprose net dvux pravil’nyx otvetov.
I nakonec tret’e. Ja ne budu osparivat’ subjectivnoe mnenie gospodina Mr.M o tom chemu nuzhno uchit’ a chemu ne nuzhno. Odnako xochu zametit’, chto nepravomerno sudit’ o kursax Actiona po testam na ego sajte. Gospodin Mr M. mozhet bez truda oznakomitsja s programmoj obuchenija naxodjashejsja na tom zhe saite.
O tom zhe chemu mozhet nauchit’ I uchit Action luchse vsego sprosit’ u ego vypusknikov, kotoryx uzhe bolee 100 I mnogie iz nix spokojno sdali vstupitel’nye testy v Amerikanskie firmy I uspeshno rabotajut. Opyt pokazyvaet chto programma obuchenija dostatochno xorosho otrabotana I vysoko rezul’tativna.
P.S. Neskol’ko slov po povodu operatora zapjataja ras uzh o nem zashla rech’.
Ne mozhet ne radovat’ to chto gospodinu Mr.M udalos’ ee raspoznat’.
Bjarne Stroustrup (nadejus’ chto eto imja xotja by znakomo avtoru) v svoej knige "The Design and Evolution of C++" pishet chto razreshil vkljuchit’ operator zapjataja v standart C++ po nastojaniju odnoj iz clenov kommiteta po standartzacii prosto potomu chto ne nashel povoda ej otkazat’. Xotja povod konechno byl.
Scott Meyers (uzhe s menjshimi nadezhdami) v svoej knige "More Effective C++" pishet.
"An expression containing a comma is evaluated by first evaluating the part of the expression to the left of the comma, then evaluating the expression to the right of the comma; the result of the overall comma expression is the value of the expression on the right.
Perhaps you're wondering why you need to know this. You need to know because you need to mimic this behavior if you're going to take it upon yourself to write your own comma operator. Unfortunately, you can't perform the requisite mimicry.
If you write operator, as a non-member function, you'll never be able to guarantee that the left-hand expression is evaluated before the right-hand expression, because both expressions will be passed as arguments in a function call (to operator,). But you have no control over the order in which a function's arguments are evaluated. So the non-member approach is definitely out.
That leaves only the possibility of writing operator, as a member function. Even here you can't rely on the left-hand operand to the comma operator being evaluated first, because compilers are not constrained to do things that way. Hence, you can't overload the comma operator and also guarantee it will behave the way it's supposed to. It therefore seems imprudent to overload it at all."
-------
Action priderzhivaetsja toj zhe tochki zrenija. Nigde, ni v testax ni v processe obuchenija ne privetstvuetsja peregruzka operatora zapjataja. No Action schitaet vazhnym dat’ ponimanie togo pochemu imenno ne nuzhno peregruzhat’ tot ili inoj operator.
S uvazheniem Taurus.
|