рд╣рдорд╛рд░рд╛ рдзреНрдпрд╛рди рд╣рд╛рд▓ рд╣реА рдореЗрдВ GitHub рдкрд░ рдЗрд▓реЗрдХреНрдЯреНрд░реЙрдирд┐рдХ рдЖрд░реНрдЯреНрд╕ рднрдВрдбрд╛рд░ рджреНрд╡рд╛рд░рд╛ рдЖрдХрд░реНрд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдпрд╣ рдЫреЛрдЯрд╛ рд╣реИ, рдФрд░ рд╡рд╣рд╛рдВ рдЙрдкрд▓рдмреНрдз рддреЗрдИрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рд╕реЗ рдХреЗрд╡рд▓ рдХреБрдЫ C ++ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рджрд┐рд▓рдЪрд╕реНрдк рд▓рдЧ рд░рд╣реА рдереАрдВ: EASTL, EAStdC, EABase, EAThread, EATest, EAMain, рдФрд░ EAAssertред рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдБ рдЦреБрдж рднреА рдЫреЛрдЯреА рд╣реИрдВ (рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ 10 рдлрд╛рдЗрд▓реЗрдВ), рдЗрд╕рд▓рд┐рдП рдмрдЧ рдХреЗрд╡рд▓ 20 рдлрд╛рдЗрд▓реЛрдВ рдХреА "рд╕рдмрд╕реЗ рдмрдбрд╝реА" рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдкрд╛рдП рдЧрдП: рдбреА рд▓реЗрдХрд┐рди рд╣рдордиреЗ рдЙрдиреНрд╣реЗрдВ рдвреВрдВрдв рд▓рд┐рдпрд╛, рдФрд░ рд╡реЗ рджрд┐рд▓рдЪрд╕реНрдк рджрд┐рдЦрддреЗ рд╣реИрдВ! рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВ рдЗрд╕ рдкреЛрд╕реНрдЯ рдХреЛ рд▓рд┐рдЦ рд░рд╣рд╛ рдерд╛, рд╣рдо рдИрдП рдЧреЗрдореНрд╕ рдФрд░ рдХрдВрдкрдиреА рдиреАрддрд┐: рдбреА рдХреА рдЬреАрд╡рдВрдд рдЪрд░реНрдЪрд╛ рдХрд░ рд░рд╣реЗ рдереЗ

рдкрд░рд┐рдЪрдп
рдЗрд▓реЗрдХреНрдЯреНрд░реЙрдирд┐рдХ рдЖрд░реНрдЯреНрд╕ (EA) рдПрдХ рдЕрдореЗрд░рд┐рдХреА рд╡реАрдбрд┐рдпреЛ рдЧреЗрдо рдХрдВрдкрдиреА рд╣реИред GitHub рдФрд░ рдХреБрдЫ C ++ рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдкрд░ рдЗрд╕рдХрд╛ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛
рднрдВрдбрд╛рд░ рд╣реИ , рдЕрд░реНрдерд╛рддреН C ++ рд▓рд╛рдЗрдмреНрд░реЗрд░реАрдЬрд╝: EASTL, EAStdC, EABase, EAThread, EATest, EAMain, рдФрд░ EAAssertред рд╡реЗ рдЫреЛрдЯреЗ рд╣реИрдВ, рдФрд░
рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХреЗрд╡рд▓ "рд╕рдмрд╕реЗ рдмрдбрд╝реА" рдкрд░рд┐рдпреЛрдЬрдирд╛,
рдИрдПрдПрд╕рдЯреАрдбреАрд╕реА (20 рдлрд╛рдЗрд▓реЗрдВ) рдореЗрдВ рдХрд┐рд╕реА рднреА рдХреАрдбрд╝реЗ рдХреЛ рдЦреЛрдЬрдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣реЗред рдЗрд╕ рддрд░рд╣ рдХреЗ рдЖрдХрд╛рд░ рдХреЗ рд╕рд╛рде, рдЖрдк рд╕рдордЧреНрд░ рд░реВрдк рд╕реЗ рдЧреБрдгрд╡рддреНрддрд╛ рдХрд╛ рдиреНрдпрд╛рдп
рдирд╣реАрдВ рдХрд░
рд╕рдХрддреЗ рд╣реИрдВ , рдЗрд╕рд▓рд┐рдП рдмрд╕ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд╛рдВрдЪ рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ рдФрд░ рдЕрдкрдиреЗ рд▓рд┐рдП рдирд┐рд░реНрдгрдп рд▓реЗрдВред
рдЪреЗрддрд╛рд╡рдиреА рез
V524 рдпрд╣ рдЕрдЬреАрдм рд╣реИ рдХрд┐ '>>' рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рд╢рд░реАрд░ '<<' рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╢рд░реАрд░ рдХреЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдордХрдХреНрд╖ рд╣реИред EAFixedPoint.h 287
template <class T, int upShiftInt, int downShiftInt, int upMulInt, int downDivInt> struct FPTemplate { .... FPTemplate operator<<(int numBits) const { return value << numBits; } FPTemplate operator>>(int numBits) const { return value << numBits; } FPTemplate& operator<<=(int numBits) { value <<= numBits; return *this;} FPTemplate& operator>>=(int numBits) { value >>= numBits; return *this;} .... }
рд╢рд┐рдлреНрдЯ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЛ рдУрд╡рд░рд▓реЛрдб рдХрд░рддреЗ рд╕рдордп, рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдиреЗ рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рдореЗрдВ << рдХреЗ рдмрдЬрд╛рдп << рд▓рд┐рдЦрдХрд░ рдЯрд╛рдЗрдкреЛ рдмрдирд╛рдпрд╛ред рдпрд╣ рдХреЙрдкреА-рдкреЗрд╕реНрдЯ рдЧрд▓рддреА рдХреА рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИред
рдЪреЗрддрд╛рд╡рдиреА реи
V557 рдРрд░реЗ рдУрд╡рд░рд░рди рд╕рдВрднрд╡ рд╣реИред 'NFormatLength' рд╕реВрдЪрдХрд╛рдВрдХ рдХрд╛ рдореВрд▓реНрдп 16 рддрдХ рдкрд╣реБрдВрдЪ рд╕рдХрддрд╛ рд╣реИред EASprintfOrdered.cpp 246
static const int kSpanFormatCapacity = 16; struct Span8 { .... char mFormat[kSpanFormatCapacity]; .... }; static int OVprintfCore(....) { .... EA_ASSERT(nFormatLength < kSpanFormatCapacity); if(nFormatLength < kSpanFormatCapacity) spans[spanIndex].mFormat[nFormatLength++] = *p;
рд╕реНрдкреИрди [рд╕реНрдкреИрдирдЗрдВрдбреЗрдХреНрд╕] .mFormat рд╕рд░рдгреА рдореЗрдВ
16 рддрддреНрд╡ рд╣реЛрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЕрдВрддрд┐рдо рд╡реИрдз рддрддреНрд╡ рдХрд╛ рд╕реВрдЪрдХрд╛рдВрдХ
15 рд╣реИ ред рдЕрдкрдиреЗ рд╡рд░реНрддрдорд╛рди рд░реВрдк рдореЗрдВ,
OVprintfCore рдлрд╝рдВрдХреНрд╢рди
nFormatLength рдХреЗ рд╕реВрдЪрдХрд╛рдВрдХ рдХреЛ
рдмрдврд╝рд╛рдХрд░ 16 рддрдХ рдХрд░ рджреЗрддрд╛ рд╣реИ рдпрджрд┐ рдЗрд╕рдХрд╛ рдЙрдЪреНрдЪрддрдо рд╕рдВрднрд╡ рд╕реВрдЪрдХрд╛рдВрдХ рд╣реИ, рдЕрд░реНрдерд╛рдд
15 ред рдЙрд╕рдХреЗ рдмрд╛рдж,
рд╕реНрд╡рд┐рдЪ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдореЗрдВ рдПрдХ рд╕рд░рдгреА-рдЖрдЙрдЯ-рдСрдл-рдмрд╛рдЙрдВрдб рддреНрд░реБрдЯрд┐ рд╣реЛрдЧреАред
рдЗрд╕ рдЯреБрдХрдбрд╝реЗ рдХреЛ рджреЛ рдмрд╛рд░ рдХреЙрдкреА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛:
- V557 рдРрд░реЗ рдУрд╡рд░рд░рди рд╕рдВрднрд╡ рд╣реИред 'NFormatLength' рд╕реВрдЪрдХрд╛рдВрдХ рдХрд╛ рдореВрд▓реНрдп 16 рддрдХ рдкрд╣реБрдВрдЪ рд╕рдХрддрд╛ рд╣реИред EASprintfOrdered.cpp 614
- V557 рдРрд░реЗ рдУрд╡рд░рд░рди рд╕рдВрднрд╡ рд╣реИред 'NFormatLength' рд╕реВрдЪрдХрд╛рдВрдХ рдХрд╛ рдореВрд▓реНрдп 16 рддрдХ рдкрд╣реБрдВрдЪ рд╕рдХрддрд╛ рд╣реИред EASprintfOrdered.cpp 977
рдЪреЗрддрд╛рд╡рдиреА рей
V560 рд╕рд╢рд░реНрдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХрд╛ рдПрдХ рд╣рд┐рд╕реНрд╕рд╛ рд╣рдореЗрд╢рд╛ рд╕рдЪ рд╣реЛрддрд╛ рд╣реИ: (рдкрд░рд┐рдгрд╛рдо> = 0)ред EASprintfOrdered.cpp 489
static int OVprintfCore(....) { .... for(result = 1; (result >= 0) && (p < pEnd); ++p) { if(pWriteFunction8(p, 1, pWriteFunctionContext8, kWFSIntermediate) < 0) return -1; nWriteCountSum += result; } .... }
рдкрд░рд┐рдгрд╛рдо = = 0 рд╕реНрдерд┐рддрд┐ рд╣рдореЗрд╢рд╛ рд╕рд╣реА рд╣реЛрддреА рд╣реИ рдХреНрдпреЛрдВрдХрд┐
рдкрд░рд┐рдгрд╛рдо рдЪрд░ рдХреЛ рд▓реВрдк рдореЗрдВ рдХрд╣реАрдВ рднреА рдирд╣реАрдВ рдмрджрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИред рдХреЛрдб рдмрд┐рд▓реНрдХреБрд▓ рднреА рд╕рд╣реА рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рдореЗрдВ рдХреБрдЫ рдЧрд▓рддреА рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред
рдЗрд╕ рдЯреБрдХрдбрд╝реЗ рдХреЛ рджреЛ рдмрд╛рд░ рдХреЙрдкреА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛:
- V560 рд╕рд╢рд░реНрдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХрд╛ рдПрдХ рд╣рд┐рд╕реНрд╕рд╛ рд╣рдореЗрд╢рд╛ рд╕рдЪ рд╣реЛрддрд╛ рд╣реИ: (рдкрд░рд┐рдгрд╛рдо> = 0)ред EASprintfOrdered.cpp 852
- V560 рд╕рд╢рд░реНрдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХрд╛ рдПрдХ рд╣рд┐рд╕реНрд╕рд╛ рд╣рдореЗрд╢рд╛ рд╕рдЪ рд╣реЛрддрд╛ рд╣реИ: (рдкрд░рд┐рдгрд╛рдо> = 0)ред EASprintfOrdered.cpp 1215
рдЪреЗрддрд╛рд╡рдиреА рек
V1009 рд╕рд░рдгреА рдЖрд░рдВрднреАрдХрд░рдг рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВред рдХреЗрд╡рд▓ рдкрд╣рд▓рд╛ рддрддреНрд╡ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЖрд░рдВрднрд┐рдХ рд╣реИред рдмрд╛рдХреА рддрддреНрд╡реЛрдВ рдХреЛ рд╢реВрдиреНрдп рд╕реЗ рдЖрд░рдВрдн рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред EASprintfOrdered.cpp 151
static int OVprintfCore(....) { .... int spanArgOrder[kArgCapacity] = { -1 }; .... }
рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ рдмрдЧ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд▓реЗрдЦрдХреЛрдВ рдХреЛ рдЪреЗрддрд╛рд╡рдиреА рджреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдП рдХрд┐ рдХреЗрд╡рд▓
рд╕реНрдкреИрдирдСрд░реНрдЧрдСрд░реНрдбрд░ рд╕рд░рдгреА рдХрд╛ рдкрд╣рд▓рд╛ рддрддреНрд╡
-1 рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рдмрд╛рдХреА рд╕рднреА рдХреЛ 0 рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдЗрд╕ рдЯреБрдХрдбрд╝реЗ рдХреЛ рджреЛ рдмрд╛рд░ рдХреЙрдкреА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛:
- V1009 рд╕рд░рдгреА рдЖрд░рдВрднреАрдХрд░рдг рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВред рдХреЗрд╡рд▓ рдкрд╣рд▓рд╛ рддрддреНрд╡ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЖрд░рдВрднрд┐рдХ рд╣реИред рдмрд╛рдХреА рддрддреНрд╡реЛрдВ рдХреЛ рд╢реВрдиреНрдп рд╕реЗ рдЖрд░рдВрдн рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред EASprintfOrdered.cpp 518
- V1009 рд╕рд░рдгреА рдЖрд░рдВрднреАрдХрд░рдг рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВред рдХреЗрд╡рд▓ рдкрд╣рд▓рд╛ рддрддреНрд╡ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЖрд░рдВрднрд┐рдХ рд╣реИред рдмрд╛рдХреА рддрддреНрд╡реЛрдВ рдХреЛ рд╢реВрдиреНрдп рд╕реЗ рдЖрд░рдВрдн рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред EASprintfOrdered.cpp 881
рдЪреЗрддрд╛рд╡рдиреА рел
V728 рдПрдХ рдЕрддреНрдпрдзрд┐рдХ рдЬрд╛рдБрдЪ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдж '(A &&! B) || (рдП! рдФрд░ рдмреА) 'рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐' рдмреВрд▓ (рдП)! = рдмреВрд▓ (рдмреА) 'рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИред int128.h 1242
inline void int128_t::Modulus(....) const { .... bool bDividendNegative = false; bool bDivisorNegative = false; .... if( (bDividendNegative && !bDivisorNegative) || (!bDividendNegative && bDivisorNegative)) { quotient.Negate(); } .... }
рдореИрдВрдиреЗ рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдХреЛ рд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рд░реВрдкрд┐рдд рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдореВрд▓ рд░реВрдк рдореЗрдВ, рдпрд╣ рд╕реНрдерд┐рддрд┐ рдмрд╣реБрдд рд▓рдВрдмреА рд╣реИ рдФрд░ рдкрдврд╝рдиреЗ рдореЗрдВ рдХрдард┐рди рд╣реИред рд▓реЗрдХрд┐рди рд╣рдо рд╕рд╢рд░реНрдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдХрд░ рдЗрд╕реЗ рдмреЗрд╣рддрд░ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕рд╛ рдХрд┐ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рд╕реБрдЭрд╛рд╡ рджреЗрддреЗ рд╣реИрдВ:
if( bDividendNegative != bDivisorNegative) { quotient.Negate(); }
рдХреЛрдб рдЕрдм рдмрд╣реБрдд рдЫреЛрдЯрд╛ рд╣реИ, рдЬреЛ рд╣рд╛рд▓рдд рдХреЗ рддрд░реНрдХ рдХреЛ рд╕рдордЭ рд▓реЗрдирд╛ рдЖрд╕рд╛рди рдмрдирд╛рддрд╛ рд╣реИред
рдирд┐рд╖реНрдХрд░реНрд╖
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдкрдиреЗ рджреЗрдЦрд╛ рд╣реЛрдЧрд╛, рдЕрдзрд┐рдХрд╛рдВрд╢ рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ рдореЗрдВ рджреЛ рдФрд░ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ рд╡реЗ рд╕рднреА рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдПрдХ рд╣реА рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкрд╛рдП рдЬрд╛рддреЗ рд╣реИрдВред рдХреЛрдб рджреЛрд╣рд░рд╛рд╡ рдПрдХ рдмрд╣реБрдд рдЦрд░рд╛рдм рд╡рд┐рд░реЛрдзреА рдкреИрдЯрд░реНрди рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд░рдЦрд░рдЦрд╛рд╡ рдХреЛ рдмрд╣реБрдд рдЬрдЯрд┐рд▓ рдХрд░рддрд╛ рд╣реИред рдЬрдм рдХреАрдбрд╝реЗ рдРрд╕реЗ рдХреЛрдб рдореЗрдВ рд░реЗрдВрдЧрддреЗ рд╣реИрдВ, рддреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреА рд╕реНрдерд┐рд░рддрд╛ рдмрд╣реБрдд рдХрдо рд╣реЛ рдЬрд╛рддреА рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рд╕рднреА рдХреЛрдб рдореЗрдВ рдлреИрд▓ рдЬрд╛рддреЗ рд╣реИрдВред
рдЙрдореНрдореАрдж рд╣реИ, рдИрдП рдХреБрдЫ рдЕрдиреНрдп рджрд┐рд▓рдЪрд╕реНрдк рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рдЕрдкрд▓реЛрдб рдХрд░реЗрдВрдЧреЗ рдФрд░ рд╣рдо рдЙрдирдХреА рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдкрд░ рдПрдХ рдмрд╛рд░ рдлрд┐рд░ рд╕реЗ рдЬрд╛рдПрдБрдЧреЗ :)ред рдЗрд╕ рдмреАрдЪ,
рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдФрд░ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкрд░ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИред