Ik zou die optimalisatie toch aan de compiler overlaten, tenzij je aannames doet over het platform waarop je code moet gaan draaien.
Verwijderd
(welke optimalisatie?)Op dinsdag 05 maart 2002 18:29 schreef OlafvdSpek het volgende:
Ik zou die optimalisatie toch aan de compiler overlaten, tenzij je aannames doet over het platform waarop je code moet gaan draaien.
Overigens, we zitten hier toch in een C++ topic... dan schrijf je dat toch zelf?!?!?
Zo, nu nog even zelf die 4 functies en die stringclass invullen en je bent klaar
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
| // ------------------------------------------------------------------------
// Time type (8 bytes)
// ------------------------------------------------------------------------
typedef struct
{
unsigned m_Year : 18;
unsigned m_Month : 4;
unsigned m_Day : 5;
unsigned m_Hour : 5;
unsigned m_Minute : 6;
unsigned m_Second : 6;
unsigned m_Millisecond : 10;
unsigned m_Sequence : 10;
} t_Time;
// --------------------------------------------------------------------------
// MyOwnTime: Date/Time container
// --------------------------------------------------------------------------
class MyOwnTime : public MyOwnObject
{
public: // Methods
MyOwnTime();
MyOwnTime(const MyOwnTime &p_Time);
MyOwnTime(t_UInt2 p_Year,
t_UInt2 p_Month,
t_UInt2 p_Day,
t_UInt2 p_Hour,
t_UInt2 p_Minute,
t_UInt2 p_Seconds,
t_UInt2 p_MilliSeconds);
void ConvertFromString(const MyOwnString &p_MyString);
inline t_UInt2 Year() const { return m_Time.m_Year; }
inline t_UInt2 Month() const { return m_Time.m_Month; }
inline t_UInt2 Day() const { return m_Time.m_Day; }
inline t_UInt2 Hour() const { return m_Time.m_Hour; }
inline t_UInt2 Minute() const { return m_Time.m_Minute; }
inline t_UInt2 Second() const { return m_Time.m_Second; }
inline t_UInt2 Millisecond() const { return m_Time.m_Millisecond; }
inline t_UInt2 Sequence() const { return m_Time.m_Sequence; }
protected: // Methods
t_UInt2 GenerateSequence();
private: // Properties
t_Time m_Time;
static volatile t_UInt2 m_Sequence;
};
// -------------------------------------------------------------------------- |
Zo, nu nog even zelf die 4 functies en die stringclass invullen en je bent klaar
Wow! Gewelding dat je dit ff voor me doet, maar ben niet zo'n C++ freak dat ik dit allemaal begrijp. Is misschien ook niet nodig, maar ik wil wel graag weten hoe ik het gebruik...
Zelfs de Dinkumware patches (www.dinkumware.com).Op dinsdag 05 maart 2002 17:12 schreef OlafvdSpek het volgende:
Had je wel de SPs geinstalleerd?
Als je vaker met MSVC werkt, dan weet je dat dit soort bugs niet in SPs gefixed worden. Het heeft nl. een potentiele impact op bestaande code, die strict genomen fout is/niet zou moeten compileren/ander gedrag zou moeten vertonen.
Stel je voor dat je een geoptimaliseerde template specialisatie hebt gemaakt met een bug. MS negeert deze voor SPn, en na SPn compileer je je code opnieuw. Dan komt de bug dus boven water. MS is bang dat de SP dan de schuld krijgt.
Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein
Had niet verwacht dat zoiets goed zou gaan. Het volgende gaat wel fout met g++.
code:
1
| printf("%s", 5); |
Tja ik denk bij de code van beelzebu toevallig een 0 staat op de argumenten stack (shit hoe heet dat nou) waardoor het goed werkt. iig gevaarlijk en undefined.Op woensdag 06 maart 2002 10:50 schreef OlafvdSpek het volgende:
Had niet verwacht dat zoiets goed zou gaan. Het volgende gaat wel fout met g++.
code:
1printf("%s", 5);