y‰SŽÒнŒ}zC/C++Ž ..
[2ch|¥Menu]
2:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/01/30 00:01:59
@codepad
@URLØÝ¸(codepad.org)

’·‚¢ƒ\[ƒX‚ð“\‚邯‚«‚Í‚±‚±‚ÖI

3:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/01/30 14:18:17
‘Š’k‚ª‚ ‚é‚Ì‚Åæ‚Á‚Ăقµ‚¢B

ƒ^[ƒQƒbƒg‚Í‘g‚Ýž‚݃vƒƒZƒbƒT‚ÅAƒƒ‚ƒŠƒ}ƒbƒvƒhƒŒƒWƒXƒ^‚̃}ƒNƒéŒ¾‚Å¢‚Á‚Ä‚éB

‚ ‚郌ƒWƒXƒ^REG_A‚ª‚ ‚Á‚ÄA‚»‚̃ŒƒWƒXƒ^‚Ì
- ƒAƒhƒŒƒX‚Í 0X12345678A
- ƒŒƒWƒXƒ^‚Í‚SƒoƒCƒg’·A
- “à•”‚Ì’l‚Í•„†–³‚µ®”
‚Æ‚·‚éBƒRƒ“ƒpƒCƒ‰‚Ì®”’·‚ª‚SƒoƒCƒg‚Æ‚·‚邯A‚±‚¤‚¢‚¤ê‡ŽŸ‚̂悤‚ȃ}ƒNƒ’è‹`‚ª’è΂ɂȂÁ‚Ä‚éB

#define REG_A *( volatile unsigned int * ) 0x12345678

‚±‚¤‚·‚邯AREG_A‚̓vƒƒOƒ‰ƒ€’†‚ŕϔ‚̂悤‚ÉŽg‚¦‚éB“–‘R‚¾‚¯‚ÇA‚±‚Ìu•Ï”v‚ւ̃AƒNƒZƒX‚̓ŒƒWƒXƒ^‚ւ̃AƒNƒZƒX‚ɂȂéB‚ÅA¢‚Á‚Ä‚¢‚é‚͎̂Ÿ‚̂悤‚Èê‡B‚ ‚郌ƒWƒXƒ^REG_B‚ª‚ ‚Á‚ÄA‚»‚̃ŒƒWƒXƒ^‚Ì
- ƒAƒhƒŒƒX‚Í 0XFFFF1234
- ƒŒƒWƒXƒ^A®”Œ^Aƒ|ƒCƒ“ƒ^Œ^‚Í‚»‚ꂼ‚ê‚SƒoƒCƒg’·
- “à•”‚Ì’l‚ÍŠÖ”‚ւ̃|ƒCƒ“ƒ^
- ŠÖ”‚Í void ()
‚‚܂èAˆø”‚àŽæ‚炸A‰½‚à•Ô‚³‚È‚¢BŠÖ”‚ւ̃|ƒCƒ“ƒ^B‚±‚¤‚¢‚¤ƒŒƒWƒXƒ^‚ÍŠ„‚螂݃nƒ“ƒhƒ‰‚̃AƒhƒŒƒXŽw’莞‚ÉŽg‚¤B

gcc‚ðŽg‚Á‚ÄŽŽ‚µ‚Ä‚¢‚é‚ñ‚¾‚¯‚ÇA‚Ç‚¤‚µ‚Ä‚à‚¤‚Ü‚­‚¢‚©‚È‚¢B¡‚Í‚ ‚«‚ç‚ß‚Ä*( volatile unsigned int *)‚Æ‚µ‚ăvƒƒOƒ‰ƒ€’†‚ŃLƒƒƒXƒg‚µ‚Ä‚¢‚é‚ñ‚¾‚¯‚ÇA‹CŽ‚¿‚í‚é‚¢B‚¾‚ê‚©‹³‚¦‚ÄBŽŽŒ±‚ÉŽg‚Á‚Ä‚¢‚éƒvƒƒOƒ‰ƒ€‚Í‚±‚ñ‚ÈŠ´‚¶B

URLØÝ¸(codepad.org)

4:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/01/30 14:30:36
volatile‚Á‚ÄŠÖ”‚̕ԋp’l‚ÉŽg‚Á‚Ä‚à—LŒø‚È‚ÌH
‹KŠi‚ł͂ǂ¤‚È‚Á‚Ä‚é‚ñ‚¾‚ë

5:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/01/30 14:37:29
ŠÖ”ƒ|ƒCƒ“ƒ^‚ðŽg‚¤‚Æ‚«‚ÍA‚¿‚å‚Á‚Ƃłà‚í‚©‚è‚É‚­‚­‚È‚Á‚½‚ç
•K‚¸typedef‚ðŽg‚¤‚悤‚É‚·‚é‚Ì‚ª“S‘¥‚¾‚ÆŽv‚¤B
typedef void vfn_t(void);
#define REG_B (*(volatile vfn_t *) 0x11223344)
‚Æ‚©B
‚¢‚âA‚±‚ꂪ³í‚É“®‚­‚©A‚»‚à‚»‚à–]‚݂̂à‚̂Ȃ̂©‚à’m‚ç‚È‚¢‚¯‚Ç‚ËB

6:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/01/30 18:40:07
>>5
typedef void (*vfn_t)(void) ‚ų‰ð‚¾‚ÈB

7:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/01/30 21:15:46
>>3
>>¡‚Í‚ ‚«‚ç‚ß‚Ä*(@volatile@unsigned@int@*)‚Æ‚µ‚ăvƒƒOƒ‰ƒ€’†‚Å
>>ƒLƒƒƒXƒg‚µ‚Ä‚¢‚é‚ñ‚¾‚¯‚Ç

‚»‚ê‚Å‚¢‚¢‚ñ‚¶‚á‚È‚¢H•ʂɋCŽ‚¿ˆ«‚­‚È‚¢

8:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/01/30 22:16:06
>>4-7
‚ ‚肪‚Æ‚¤A’ñˆÄ‚³‚ꂽ•û–@‚ðŽŽ‚µ‚½‚ ‚ƂɌ‹‰Ê‚ð•ñ‚·‚éB

>>4
ŠÖ”‚̕ԋp’l‚ÉŽg‚¢‚½‚¢‚ñ‚¶‚á‚È‚­‚ÄAƒŒƒWƒXƒ^‚Ì’†g‚ªvolatile‚Å‚ ‚邱‚Æ‚ð
錾‚µ‚½‚¢B‚¾‚¯‚Ç‚»‚Ì‚â‚è•û‚ª‚í‚©‚ç‚È‚­‚ÄA“\‚è•t‚¯‚½ƒR[ƒh‚͂߂¿‚á‚ß‚¿‚á‚É
‚È‚Á‚Ä‚éB

>>7
ÜŠp‚¾‚µƒvƒƒOƒ‰ƒ€‚Ì’†‚Å‚¢‚¿‚¢‚¿ƒLƒƒƒXƒg‚µ‚½‚­‚È‚¢‚ñ‚¾‚æBƒLƒƒƒXƒg‚Á‚ÄA
‚±‚Ìꇂͳ‚µ‚­éŒ¾‚µ‚Ä‚¢‚ê‚Εs—v‚¾‚µAŠÔˆá‚Á‚½Œ^‚Ì‘ã“ü‚ð–h‚®‚±‚Æ‚à
‚Å‚«‚éB

9:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/01/30 22:26:18
ƒTƒ“ƒLƒ…[A >>6 ‚ÌŒ¾‚¤‚Æ‚¨‚è‚É‚µ‚½‚ç“®‚¢‚½‚æB

ƒ\[ƒX‚Í‚±‚êBƒRƒ“ƒpƒCƒ‹Œ‹‰Ê‚ð“ǂ݂₷‚¢‚悤‚ɃŒƒWƒXƒ^ƒAƒhƒŒƒX‚ð10i‚ɕς¦‚Ä‚ ‚éB
URLØÝ¸(codepad.org)

GCC‚̃Rƒ“ƒpƒCƒ‹Œ‹‰ÊBŒ©Ž–‚ÉREG_AAREG_B‚Ö‚Ì‘ã“ü‚ɬŒ÷‚µ‚Ä‚¢‚éB
.loc 1 10 0
movl $12345678, %edx
movl $foo, %eax
movl %eax, (%edx)
.loc 1 11 0
movl $12345674, %edx
movl $foo, %eax
movl %eax, (%edx)
.loc 1 12 0
addl $4, %esp
popl %ecx
popl %ebp
leal -4(%ecx), %esp
ret

–{“–‚É‚ ‚肪‚Æ‚¤B

10:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/01/30 23:46:26
Џ‚¦‚Ĉês‚Å‘‚­‚Ȃ炱‚¤‚©‚ÈH
#define REG_B (*(void(*volatile*)()) 0XFFFF1234)

11:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/01/31 01:04:51
>>9
#define ‚Ì’l‚ÍŠ‡ŒÊ‚ň͂Á‚Æ‚¢‚½‚Ù‚¤‚ª‚¢‚¢‚æB
‚»‚ê‚©‚çˆø”–³‚µ‚̈ø”ƒŠƒXƒg‚É void ‚ð“ü‚ê‚é‚©‚Ç‚¤‚©‚Í‚»‚낦‚Æ‚¢‚½‚Ù‚¤‚ª‚¢‚¢‚æB
C ‚È‚ç•K{B

12:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/01/31 09:19:40
”CˆÓ‚̃Nƒ‰ƒX‚̃IƒuƒWƒFƒNƒg‚Ìî•ñ‚ð‚܂邲‚ƃoƒCƒiƒŠƒtƒ@ƒCƒ‹‚ɕۑ¶E•œŒ³‚Ý‚½‚¢‚È‚±‚Ƃ͂ł«‚é‚ñ‚¾‚낤‚©H

13:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/01/31 09:40:27
>>9
‘ã“ü‚ªƒAƒgƒ~ƒbƒN‚ɂȂÁ‚ĂȂ¢‚¼
mutex‚©‰½‚©‚ŃoƒŠƒA‚µ‚Ä‚¨‚¢‚½•û‚ª—Ç‚­‚È‚¢‚©H

14:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/01/31 09:56:49
>>12
ƒVƒŠƒAƒ‰ƒCƒY‚Åo—ˆ‚é‚ñ‚¶‚á‚È‚¢H
Ž©•ª‚Í‚â‚Á‚½‚±‚ƂȂ¢‚¯‚Ç‚Ë

15:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/01/31 10:32:39
>>12
boost::serialization‚©‚È

16:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/01/31 11:24:01
>>12
‚à‚¤‚Ü‚³‚Éboost::serialization‚¾‚ÈB


17:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/01/31 17:21:13
>>12
•Û‘¶’†‚Ìi’»•\ަ‚Íboost::progress_display‚É‚¨”C‚¹I

18:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/01/31 18:06:17
ŠÂ‹«‚Å‚·‚ªA
OS‚ÍWindouwsXP
ƒRƒ“ƒpƒCƒ‰–¼‚ÍMicrosoft VisualC++2008 E‚˜press Edition
Œ¾Œê‚ÍC
‚Å‚·B

‰ðŒˆ‚Å‚«‚¸¢‚Á‚Ä‚¢‚鎖‚ª‚ ‚é‚Ì‚ÅA‚æ‚낵‚­‚¨Šè‚¢‚µ‚Ü‚·B
Ž¿–â@¨@URLØÝ¸(kansai2channeler.hp.infoseek.co.jp)

19:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/01/31 18:26:32
Windows‚ŃtƒŠ[‚ÅVC++ƒ‰ƒCƒN‚Ì‘‡ŠÂ‹«‚Á‚ĂȂñ‚©–³‚¢H

20:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/01/31 18:42:37
>>19 VC++ EE

21:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/01/31 23:02:34
void (*handle) ();


int address = 0x00000;

handle = (void (*) () )address;


‚±‚̃R[ƒh‚ª‚æ‚­‚í‚©‚è‚Ü‚¹‚ñB
ŠÖ”ƒ|ƒCƒ“ƒ^‚ð錾‚µ‚Ä‚¢‚邱‚Ƃ͂킩‚é‚ñ‚Å‚·‚ªA‚Rs–ڂ̃LƒƒƒXƒg‚ª‰½‚ðˆÓ–¡‚µ‚Ä‚¢‚é‚©‚ª•s–¾‚Å‚·B‹³‚¦‚Ä‚­‚¾‚³‚¢

22:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/01/31 23:05:05
‘ã“üæ‚ðl‚¦‚ë

23:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/01/31 23:21:49
>>21
ŠÖ”‚ւ̃|ƒCƒ“ƒ^‚ɃLƒƒƒXƒg‚µ‚Ä‚¢‚邾‚¯‚Å‚·B
void (*x)(); ‚Æ‚¢‚¤éŒ¾‚ª—‰ð‚Å‚«‚é‚̂ł ‚ê‚ÎA‚»‚ê‚©‚环•ÊŽq‚ð‚Æ‚è‚Ì‚¼‚­‚ÆA‚»‚̂܂܃LƒƒƒXƒg‚ÉŽg‚¤‘‚«•û‚ɂȂ邾‚¯‚Å‚·B

24:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/01/31 23:45:44
‚¿‚傤‚ÇŠÖ”ƒ|ƒCƒ“ƒ^‚̘b‘肪o‚Ä‚é‚̂ŕ·‚«‚½‚¢‚ñ‚¾‚¯‚ÇA
ƒNƒ‰ƒX“à‚Åstatic‚È2ŽŸŒ³”z—ñ‚ÌŠÖ”ƒ|ƒCƒ“ƒ^‚ðˆµ‚¢‚½‚¢‚Æ‚«‚Á‚Ăǂ¤‚·‚ê‚΂¢‚¢‚ñ‚¾‚낤‚©B

class ObjectManeger{
public:
@static bool (*Collision[2][2])(const Object &a, const Object &b);

@static bool A(const Object &a, const Object &b){};
@static bool B(const Object &a, const Object &b){};
@static bool C(const Object &a, const Object &b){};
@static bool D(const Object &a, const Object &b){};
};
bool (ObjectManeger::*Collision[2][2])(const Object &a, const Object &b);

‚Á‚ÄŠ´‚¶‚ÌŠ‚܂ł͂½‚Ô‚ñ‡‚Á‚Ă邯Žv‚¤‚ñ‚¾‚¯‚ÇEEEB
2~2‚Ì”z—ñ‚ÉABCD‚ÌŠeŠÖ”‚ð“ü‚ꂽ‚¢‚ñ‚¾B

25:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/01/31 23:48:12
>>21
’P‚ÉŒx‚łȂ¢‚悤‚É‹­§Œ^‡‚킹‚µ‚Ä‚¢‚邾‚¯
ˆá‚¤‚à‚Ì‚ð‹­§‘}“ü‚·‚鎞‚æ‚­‚â‚é



26:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/01/31 23:56:43
>>24
static ‚ÈŠÖ”‚¾‚Æ ObjectManeger::* ‚¶‚á‚È‚­‚Ä‚½‚¾‚Ì * ‚Å‚¢‚¢‚æB
‚Á‚Ä‚¢‚¤‚©ƒRƒ“ƒpƒCƒ‹‚µ‚Ă݂ê‚΂¢‚¢‚¶‚á‚È‚¢B

27:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/01 00:02:47
>>26
ŠO•”ƒVƒ“ƒ{ƒ‹‚Í–¢‰ðŒˆ‚¾A‚Á‚Ä“{‚ç‚ê‚é‚ñ‚¾B
‚ ‚ÆAABCD‚ÌŠeŠÖ”‚ð‰Šú‰»Žž‚É“ü‚ê‚é‚̂͂ǂ¤‚â‚Á‚Ä‚â‚é‚Ì‚©EEEB
FXŽŽ‚µ‚½‚ñ‚¾‚¯‚ÇAƒRƒ“ƒpƒCƒ‹‚ŃGƒ‰[‚Ì—’‚Å•ª‚©‚ç‚È‚¢‚ñ‚¾‚ºEEEB

28:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/01 00:07:11
class Object;

class ObjectManeger
{
public:
@@static bool (*Collision[2][2])(const Object &a, const Object &b);

@@static bool A(const Object &a, const Object &b) { return true; }
@@static bool B(const Object &a, const Object &b) { return true; }
@@static bool C(const Object &a, const Object &b) { return true; }
@@static bool D(const Object &a, const Object &b) { return true; }
};

bool (*ObjectManeger::Collision[2][2])(const Object &a, const Object &b) = {
@@&ObjectManeger::A,
@@&ObjectManeger::B,
@@&ObjectManeger::C,
@@&ObjectManeger::D
};

29:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/01 00:08:26
ŠÖƒ|‚Ítypedef
‚±‚êA펯‚Ë

30:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/01 00:10:17
bool (*ObjectManeger::Collision[2][2])(const Object &a, const Object &b) = {
{ &ObjectManeger::A, &ObjectManeger::B },
{ &ObjectManeger::C, &ObjectManeger::D }
};
ƒ~ƒX‚Á‚½

31:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/01 00:18:05
>>30
’Ê‚Á‚½I ‚ ‚肪‚Æ‚¤I
‚»‚¤‘‚¯‚΂悩‚Á‚½‚Ì‚©EEEB

>>29
‰Â“Ç«“I‚ȈӖ¡‚ÅA‚Ȃ̂©‚ÈB
Šm‚©‚ÉŒ©‚Â炢EEEB

32:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/01 00:56:26
>>14-16
virtual Žg‚Á‚Ä‚éƒNƒ‰ƒX‚Å‚à‚Å‚«‚éH

33:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/01 01:20:53
class ObjectManager {
@typedef bool collision_t(const Object& lhs, const Object& rhs);
@static collision_t *Collision[2][2];
@...
};
ObjectManager::collision_t ObjectManager::Collision[2][2] = {
@&ObjectManager::A,
@...
};
‚ÄŠ´‚¶‚©B
ƒƒ“ƒoŠÖ”ƒ|ƒCƒ“ƒ^‚¶‚á‚È‚¢‚©‚çA‚»‚ñ‚Ȃɕ¡ŽG‚ÈŒ©‚½–ڂɂ͂Ȃç‚È‚¢‚©‚ÈB

34:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/01 08:01:37
ŠÖ”ƒ|ƒCƒ“ƒ^‚Á‚Ä
typedef void (*func_ptr_t)(void);
func_ptr_t fp = &func;
‚¾‚¯‚¶‚á‚È‚­‚Ä
typedef void func_t(void);
func_t * fp = &func;
‚Å‚à’Ê‚é‚ñ‚¾
‚Í‚¶‚߂Ēm‚Á‚½‚æ
‚±‚ê‚Á‚Ä•W€H

35:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/01 09:09:07
>>34 ‚¤‚ñB

36:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/01 21:48:30
java‚¾‚ÆIDE‚̕⊮‹@”\‚ðŽg‚¤‚Æimport *‚ðŸŽè‚É‘‚¢‚Ä‚­‚ê‚邯‚ÇA
C++‚ÌIDE‚Í‚»‚ñ‚È‹@”\‚ª‚È‚¢‚Ì‚©‚ÈH

‚¢‚¿‚¢‚¿A#inluce <*>‚Á‚Ä‘‚­‚Ì‚ª–Ê“|‚­‚³‚¢
‚»‚ê‚Æ‚àAQt Creator‚ÍV‚µ‚¢‚©‚ç–³‚¢‚Ì‚©‚ÈH

37:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/01 22:10:21
‚¾‚©‚ç–³—‚µ‚ÄC/C++‚È‚ñ‚©‚â‚ç‚È‚­‚Ä‚¢‚¢‚æ
‚¸‚Á‚ÆJava‚Å—Ç‚¢‚¶‚á‚ñ

38:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/01 22:10:24
>>36

C++‚͂Ȃ¢‚æ

C# ‚Ȃ炠‚é

39:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/01 22:17:59
>>38
‚í‚©‚Á‚½‚æA‚ ‚肪‚Æ‚¤

40:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/02 10:59:32
C++‚ł͕’ʂ̊֔‚ÍŽg‚í‚È‚¢‚̂ł·‚©H
•’ʂ̊֔‚Ì‘ã‚í‚è‚ÉAstatic‚̃ƒ“ƒoŠÖ”‚ðŽg‚¤‚Ì‚ªíޝ‚Ȃ̂ł·‚©H

41:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/02 11:08:43
>>40
‚ׂ‚ɃNƒ‰ƒX‚ðŽg‚í‚È‚¢‚ñ‚¾‚Á‚½‚çƒoƒVƒoƒV•’ʂ̊֔‚àŽg‚¤‚æ

‚½‚¾ƒNƒ‰ƒX‚ð’è‹`‚µ‚Æ‚­‚ƃfƒoƒbƒO‚ª‚ß‚Á‚¿‚áŠy‚ɂȂñ‚Ì‚æ

42:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/02 11:15:45
•’ʂ̊֔‚à‚à‚¿‚ë‚ñŽg‚¤‚æ
algoritmƒwƒbƒ_‚È‚ñ‚©‚ɂ͕’ʂ̊֔‚à‚½‚­‚³‚ñ“ü‚Á‚Ä‚éi‚Ù‚Æ‚ñ‚ǃeƒ“ƒvƒŒ[ƒgŠÖ”‚¾‚¯‚Çj
‚à‚¿‚ë‚ñ•’ʂ̊֔‚ðŽg‚¤‚Æ‚±‚ë‚Å
staticƒƒ“ƒoŠÖ”‚ðŽg‚Á‚Ä‚à–â‘è‚Í‹N‚±‚ç‚È‚¢‚©‚ç
‚·‚ׂÄstaticƒƒ“ƒoŠÖ”‚Å“ˆê‚µ‚½‚¯‚ê‚΂·‚ê‚΂¢‚¢
‚Þ‚µ‚ë‰ÂŽ‹«‚Ì‘€ì‚Æ‚©ƒlƒXƒgƒNƒ‰ƒX‚Æ‚©‚Å‚«‚邱‚Æ‚ª‘‚¦‚é‚©‚ç
staticƒƒ“ƒo‚̂ق¤‚ª‰´‚Í‚¢‚¢‚ÆŽv‚¤

43:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/02 16:28:40
template <typename T> class Hoge
‚ÆŒ¾‚¤ƒNƒ‰ƒX‚ª‚ ‚邯‚«

ŽÀ‘•‚ðcppƒtƒ@ƒCƒ‹‚É‹Lq‚·‚é‚ɂ͖¾Ž¦“IŽÀ‘̉»‚·‚邵‚©‚È‚¢‚̂łµ‚傤‚©H
.hƒtƒ@ƒCƒ‹‚ÉŽÀ‘•‚ð‹Lq‚·‚邯‚Æ‚Ä‚àŒ©‹ê‚µ‚¢ó‘ԂɂȂÁ‚Ä‚µ‚Ü‚¤‚̂ł·‚ª‚Ç‚¤‚É‚©‚È‚ç‚È‚¢‚Å‚µ‚傤‚©

44:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/02 16:30:30
ƒRƒ“ƒpƒCƒ‰‚É‚æ‚è‚Ü‚·

45:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/02 16:32:45
Žg—pŠÂ‹«‚ÍVS2005standard@edition‚Å‚·

46:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/02 18:38:51
>>43
Žd•û‚ª‚ ‚è‚Ü‚¹‚ñ
Comeau C++‚𔃂¢‚Ü‚µ‚傤

47:40
10/02/02 19:25:32
>>41-42
‚ ‚肪‚Æ‚¤‚²‚´‚¢‚Ü‚·

staticŠÖ”‚̓Nƒ‰ƒX‚É‘®‚µ‚Ä‚¢‚Ü‚·‚ªA‚»‚êˆÈŠO‚Í•’ʂ̊֔‚Æ“¯‚¶‚Ȃ̂ł·‚©H

48:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/02 20:33:42
ƒNƒ‰ƒX‚Ì–¼‘O‹óŠÔ‚É‘®‚µ‚ÄA‚»‚̃Nƒ‰ƒX‚Ìprivate/protectedƒƒ“ƒo‚ðG‚ê‚邱‚ƈȊO‚Í“¯‚¶‚ÆŒ©‚Ä·‚µŽx‚¦‚È‚¢
ׂ©‚¢ˆá‚¢‚Í‚ ‚邯‚Ç

49:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/02 20:36:50
>>43
‚¢‚¢‚ñ‚¶‚á‚Ë
boost‚Ì.hpp‚Á‚Ä‚ÁŠg’£Žq‚Í
ŽÀ‘•‚àŠÜ‚ñ‚Å‚éƒwƒbƒ_‚¾‚æA‚Á‚Ä‚¢‚¤‚悤‚ȈӖ¡‚È‚ñ‚¶‚á‚È‚¢‚©‚Ë

50:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/02 20:39:53
>>48
thx

51:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/02 21:45:20
>>49
Boost FAQ‚ɂ͈ȉº‚̂悤‚É‚ ‚邯‚ÇB

>‚È‚º Boost ‚̃wƒbƒ_ƒtƒ@ƒCƒ‹‚͂ǂê‚à‚±‚ê‚à .hpp ‚ðŽg‚¢A .h ‚âŠg’£Žq‚È‚µ‚É‚µ‚È‚¢‚̂ł·‚©H

>ƒtƒ@ƒCƒ‹‚ÌŠg’£Žq‚ÍAlŠÔ‚ƃRƒ“ƒsƒ…[ƒ^ƒvƒƒOƒ‰ƒ€‚Ì—¼•û‚É‚»‚̃tƒ@ƒCƒ‹‚Ì "Œ^" ‚ð“`‚¦‚é‚à‚̂ł ‚éB
>'.h' ‚Æ‚¢‚¤Šg’£Žq‚Í C ‚̃wƒbƒ_ƒtƒ@ƒCƒ‹‚Å—p‚¢‚ç‚ê‚Ä‚¨‚èA C++ ‚̃wƒbƒ_ƒtƒ@ƒCƒ‹‚ÉŠÖ‚µ‚ÄŠÔˆá‚Á‚½‚±‚Æ‚ð“`‚¦‚Ä‚µ‚Ü‚¤B
>Šg’£Žq–³‚µ‚Ì‚à‚Ì‚ð—p‚¢‚邯‰½‚à“`‚í‚炸AŒ^‚ð’f’è‚·‚邽‚߂Ƀtƒ@ƒCƒ‹‚Ì’†g‚𒲂ׂ邱‚Æ‚ð‹­§‚·‚éB
>'.hpp' ‚ðŽg‚¤‚±‚Æ‚ÅA‚»‚̃tƒ@ƒCƒ‹‚ª C++ ‚̃wƒbƒ_ƒtƒ@ƒCƒ‹‚Å‚ ‚邱‚Ƃ𖾊m‚É“Á’è‚·‚邱‚Æ‚ª‚Å‚«A ‚Ü‚½ŽÀÛ‚ÉŽg‚¤Û‚É‚à‚«‚¿‚ñ‚Æ“®ì‚·‚éB (Rainer Deyke)

52:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/02 22:00:10
>>51
‚‚܂èC++‚ÍÓIŒ^•t‚¯Œ¾Œê‚¾‚©‚çA
“¯‚¶‚悤‚ÉŒ^‚Ì”­‘z‚ð‚µ‚æ‚¤A‚Æ‚¢‚¤‚±‚Æ‚©B

EEE‚»‚ê‚Á‚ÄŽç‚ç‚È‚«‚áƒ_ƒ‚È‚ñH
BoostˆÈŠO‚Å‚àŽç‚ç‚ê‚é‚Ì‚ª•W€“I‚ÈC++‚Ì•¶‰»‚È‚ÌH


53:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/02 22:24:15
Šg’£Žq‚È‚ñ‚Ä‚½‚¾‚Ìü‚肾‚©‚牽‚Å‚à‚¢‚¢‚æ
.fuck‚Æ‚©.java‚Æ‚©.exe‚Æ‚©•t‚¯‚é‚Ì‚àŽ©—R‚¾

54:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/02 22:30:12
>>53
‚Ü‚ Ž©—R‚¾‚¯‚ÇA‚»‚ê‚ð‚܂˂µ‚½
¬Šw¶‚ª‚Ô‚ñ‰£‚ç‚ꂽ‚ç‰Âˆ£‘z‚¶‚á‚È‚¢‚©I


55:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/02 22:32:54
The Loki Library
‚ðŒ©‚Ä‚Ý‚½‚çA‚Ó‚Â[‚É.h‚¾‚Á‚½‚íB


56:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/02 22:34:27
.exe ‚Æ‚© .lnk ‚Æ‚©Šg’£Žq‚É‚æ‚Á‚Ă̓VƒXƒeƒ€‚ׂÁ‚½‚肾‚©‚çü‚è‚¶‚á‚·‚܂Ȃ¢‚È

57:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/02 22:50:13
ƒQ[ƒ€‚̃pƒ‰ƒ[ƒ^‚ðƒtƒ@ƒCƒ‹‚É’u‚¢‚Ä‚¨‚«‚½‚¢‚ñ‚Å‚·‚ª
c++‚©‚çŽg‚¦‚ĈƉ»‚à‚Å‚«‚éƒVƒ“ƒvƒ‹‚ȃf[ƒ^ƒx[ƒX‚Á‚Ä‚ ‚è‚Ü‚·‚©H

58:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/02 22:53:42
Linux‚É‚Ägprof‚Ńvƒƒtƒ@ƒCƒ‹‚ðŒ©‚Ä‚Ý‚½‚̂ł·‚ªA‘SŠÖ”‚̈—‚̇ŒvŽžŠÔ‚ªŽÀ‘ª‚µ‚½ŽžŠÔ‚æ‚è‚à’Z‚­‚È‚Á‚Ä‚¢‚Ü‚µ‚½B
‚±‚Ì·•ª‚͉½‚É‹Nˆö‚·‚é‚à‚̂Ȃ̂łµ‚傤‚©H

59:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/02 22:57:07
>>58
cputime ‚Æ usertime ‚Ì·H

60:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/02 23:12:30
>>57
URLØÝ¸(www.moongift.jp)
‚±‚ê‚Æ‚©‚Ç‚¤‚¾‚낤

61:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/03 05:05:32
gcc‚ÅA‚Ý‚½‚¢‚É‘‚­‚Æstrict@aliasing@rulesŒx‚³‚ê‚é‚ñ‚ÅA
B‚Ý‚½‚¢‚É‘‚¢‚½‚ñ‚¾‚¯‚ÇA‚±‚ê‚Á‚ij‚µ‚¢A‚Æ‚¢‚¤‚©A
-fno-strict-aliasing‚ðŽw’肵‚½ê‡‚Æ“¯‚¶ˆÓ–¡‚ɂȂé‚Á‚Ä•ÛØ‚³‚ê‚Ä‚éH

struct@Vec@{@int@x,@y,@z;@};
int@@data[3][3]@=@{{0,1,2},{3,4,5},{6,7,8}};
int@main()@{
@@Vec*@v0@=@(Vec*)data;@//@A@Œx‚³‚ê‚é
@@Vec*@v1@=@(Vec*)(void*)data;@//@B@Œx‚³‚ê‚È‚¢
@@return@0;
}


62:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/03 06:37:25
ŒxŽc‚µ‚½•û‚ªŒãX‚ׂ̈ɗǂ¢‹C‚à

63:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/03 06:39:24
>>61
Šî–{“I‚Éstrict aliasing rule‚ɑ΂·‚éˆá”½‚Í
ƒLƒƒƒXƒg‚Å‚Í‰ðŒˆ‚Å‚«‚È‚¢‚ÆŽv‚Á‚½•û‚ª‚¢‚¢

‚¶‚á‚ ‚Ç‚¤‚·‚ê‚΂¢‚¢‚ÌH‚Á‚ĂƂ±‚ë‚Å‚Í
GCC3.3.0ˆÈã‚È‚ç__attibute__((may_alias))‚Á‚Ä‚¢‚¤‚Ì‚ª‚ ‚é

‚¯‚ÇA‚»‚̃R[ƒh‚̓_[ƒeƒB‚·‚¬‚é‚©‚ç‚»‚±‚©‚ç’¼‚µ‚½•û‚ª‚¢‚¢

64:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/03 09:35:07
namespace‚Ƃ͂ǂ¤‚¢‚¤‚Æ‚«‚ÉŽg—p‚·‚é‚̂ł·‚©H

65:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/03 09:42:43
>>64 –¼‘OՓ˂̉”\«‚ðŬŒÀ‚É‚µ‚È‚ª‚çA–Ê“|‚ȃvƒŠƒtƒBƒbƒNƒX•t‚¯‚à‚µ‚½‚­‚È‚¢‚Æ‚«B

66:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/03 10:13:04
‚ß‚ñ‚Ç‚¤‚Á‚Ä‚¢‚¤‚¯‚Ç
std_hoge‚àstd::hoge‚à•Ï‚í‚ç‚Ë[‚æ

67:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/03 10:24:18
‚¶‚á‚ ƒCƒ“ƒeƒŠƒZƒ“ƒX‚ňꗗ•\ަ‚³‚¹‚½‚¢ê‡

68:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/03 10:34:05
>>66
‚½‚Æ‚¦‚Ί֔ hoge ‚Ì錾‚â’è‹`‚Å“¯‚¶–¼‘O‹óŠÔ‚É‚ ‚é–¼‘O‚ð‰½“x‚àŽg‚¤‚±‚Æ‚ðl‚¦‚邯
˜b‚ªˆá‚Á‚Ä‚­‚é‚Í‚¸B

std_result std_hoge(std_arg1 a1, std_arg2 a2)
{
@ std_detail d;
@ std_impl(d, a1, a2);
}

namespace std {
result hoge(arg1 a1, arg2 a2)
{
@ detail d;
@ impl(d, a1, a2);
}
}

69:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/03 10:43:42
DQN“IƒvƒƒOƒ‰ƒ~ƒ“ƒO‚Énamespace‚Í•s—v

70:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/03 11:32:37
DLL‚Æ‚©‚ŃGƒNƒXƒ|[ƒg‚·‚邯‚«‚Ɏז‚‚È‚ñ‚¾‚æ–¼‘O‹óŠÔ
‚¢‚¿‚¢‚¿ƒ‰ƒbƒv‚µ‚È‚¢‚Æ‚¢‚¯‚È‚¢

71:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/03 11:42:06
ƒNƒ‰ƒX“à‚Ì•¡”‰ÓŠ‚Åstd::out_of_range("“K“–‚ȃGƒ‰[ƒƒbƒZ[ƒW")
‚±‚̂܂ܕ¶Žš—ñƒŠƒeƒ‰ƒ‹‚ªƒR[ƒhŠeŠ‚ÉŽU‚ç‚΂é‚̂͋CŽ‚¿ˆ«‚¢‚Ì‚Å

‚PD‚ ‚ç‚©‚¶‚߃Gƒ‰[ƒƒbƒZ[ƒW‚ðƒƒ“ƒo•Ï”‚ÉŽ‚½‚¹‚Ä‚¨‚­
‚QD—áŠO‚𓊂°‚郃“ƒoŠÖ”‚ð—pˆÓ‚·‚é
‚RDstd::out_of_range("“K“–‚ȃGƒ‰[ƒƒbƒZ[ƒW")‚ðƒ}ƒNƒ’è‹`‚µ‚Ä‚¨‚­

‚ǂꂪƒXƒ}[ƒg‚È•û–@‚Å‚µ‚傤‚©H

72:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/03 11:54:58
‰´‚̓}ƒNƒ‚©‚È‚Ÿ
const•¶Žš—ñ‚É‚µ‚Ä‚à‚¢‚¢‚¯‚ǃ}ƒNƒ‚Ì‚ªŠy‚¶‚á‚í‚¢

73:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/03 12:09:13
void check_range(int min, int max, int value) {
if (value < min || value > max) throw std::out_of_range("`");
}

74:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/03 12:14:27
>>73
‚»‚ê‚¶‚á‚Ç‚±‚©‚çƒGƒ‰[o‚½‚©“Á’è‚Å‚«‚È‚¢‚¶‚á‚ñ

75:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/03 12:18:23
‚ǂ݂̂¿—áŠO‚És”Ô†î•ñ‚͊܂܂ê‚È‚¢‚©‚çAŒ³‚©‚ç“Á’è‚Å‚«‚È‚¢‚ÆŽv‚¤‚¯‚Ç

76:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/03 12:28:21
__FILE__‚Æ__LINE__‚ðƒpƒ‰ƒ[ƒ^‚Å“n‚¹‚΂¢‚¢

77:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/03 14:24:53
•ʂɉ½‚à‘Îô‚Í‚µ‚È‚¢‚È
‚»‚ê‚Å–â‘肪o‚é‚킯‚¶‚á‚È‚¢‚µ

78:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/03 15:43:49
C++ ‚ÅŒp³•s‰Â”\‚ȃNƒ‰ƒX‚ð錾‚·‚邱‚Ƃ͂ł«‚Ü‚·‚©H
C# ‚â Java ‚Ì static class ‚Ý‚½‚¢‚ÉB

79:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/03 15:49:27
Žc”O‚È‚±‚Ƃɂł«‚Ü‚¹‚ñ
(C#‚âJava‚Ìsealed‚âfinal‚Ì‚±‚Æ‚¾‚æ‚ËH)
‰¼‘zŠÖ”‚É‚ ‚½‚é‚à‚Ì‚Évirtual‚ð•t‚¯‚È‚¢‚±‚Æ‚Å
‚±‚êˆÈãŒp³‚µ‚È‚¢‚Å‚ËA‚Æ‚¢‚¤ˆÓŽv•\ަ‚É‚·‚邱‚Æ‚®‚ç‚¢‚µ‚©
Œ»ó‚Å‚«‚È‚¢‚ÆŽv‚¤
‚½‚¾AŽŸŠúC++‚¾‚Æ‚½‚Ô‚ñ‚ ‚é‚ñ‚¶‚á‚È‚¢‚©‚È

80:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/03 15:52:22
—áŠO‚ðƒ}ƒNƒ‰»‚·‚é‚̂͗ǂ¢ƒAƒCƒfƒA‚¾‚ȂƂ¨‚à‚Á‚½‚¯‚Ç
•W€—áŠO‚̃Rƒ“ƒXƒgƒ‰ƒNƒ^‚É__LINE__‚Æ__FILE__‚ð“n‚·•û–@‚ðŽv‚¢‚‚©‚È‚­‚ăKƒbƒJƒŠEEE

‚Ç‚¤‚¢‚¤ƒ}ƒNƒ‚É‚·‚ê‚Ηǂ¢‚Å‚µ‚傤‚©H

81:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/03 16:00:32
class out_of_range_with_line_number : public std::out_of_range {
...........
};

82:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/03 16:13:05
s”Ô†‚Æ‚©‚æ‚è‚à
‚ǂ̊֔‚©‚ç/‚ǂ̃f[ƒ^‚ªŒ´ˆö‚œЂ°‚ç‚ꂽ‚Ì‚©A‚Æ‚¢‚Á‚½î•ñ‚ð“ü‚ꂽ‚Ù‚¤‚ª‚¢‚¢‚ñ‚łȂ¢‚©‚¢
out_of_range‚È‚çA‚ǂ̔z—ñ‚©‚çout_of_range‚ªo‚½‚Ì‚©‚É‚æ‚Á‚Ä
‚»‚ꂪ•ª‚©‚邿‚¤‚È—áŠOƒNƒ‰ƒX‚ðì‚Á‚Ärethrow‚·‚邯‚©


83:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/03 16:37:42
‚Â boost::exception

84:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/03 17:48:55
>>81>>83
‚â‚Á‚Ï‚èŒp³‚·‚é‚È‚è‚È‚ñ‚Ȃ肷‚邵‚©‚È‚¢‚©

85:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/03 18:37:02
>>78
ƒfƒXƒgƒ‰ƒNƒ^‚ð private ‚É‚µ‚Ä‚Ý‚é‚Æ‚©B

class Hoge {
private:
@~Hoge() {}
};


86:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/03 18:50:11
‚܂Ƃà‚ÉŽg‚¦‚Ë‚¦‚æ

87:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/03 19:06:09
C++0x‚Ì[[final]]‚àŒp³‹ÖŽ~‚¶‚á‚È‚¢‚µ‚È

88:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/03 19:08:30
iface *create(...) { class local : public iface { ... }; return new local(...); }

§ŒÀ‚Í‚ ‚邯‚Ç‚±‚ê‚Åfinal‚¾‚æ

89:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/03 20:52:17
‹³‚¦‚ĉº‚³‚¢B

¡‚¨ŽdŽ–‚̃fƒoƒbƒO—p‚ÉSDƒJ[ƒh‚̃ZƒNƒ^‚ðFAT‚ł͂Ȃ­
ƒZƒNƒ^’¼ÚƒAƒNƒZƒX‚·‚éƒR[ƒh‚ð¡Žg‚Á‚Ă܂·B

‚»‚̃\ƒtƒg‚Ńhƒ‰ƒCƒu‘I‘ð‚ðGetDriveType()‚ÅƒŠƒ€[ƒoƒuƒ‹ƒfƒBƒXƒN‚݂̂ð
‘I‘ð‚Å‚«‚邿‚¤‚É‚µ‚Ä‚¨‚é‚̂ł·‚ªA‚±‚ê‚ł̓J[ƒhƒŠ[ƒ_[ƒ‰ƒCƒ^[‚É
Žh‚³‚Á‚½ƒfƒBƒXƒN‘S‚Ä‘I‘ð‚Å‚«‚Ä‚µ‚Ü‚¢‚Ü‚·B(—Ⴆ‚ÎCF‚Æ‚©USBƒƒ‚ƒŠ‚Æ‚©)

Ž©•ª‚¾‚¯‚ÅŽg‚¤ê‡‚Í’ˆÓ‚·‚ê‚΂¢‚¢‚¾‚¯‚Ȃ̂ł·‚ªAƒ`[ƒ€‚ÅŽg‚Á‚Ä‚é‚ñ‚Å
‚Å‚«‚ê‚΃hƒ‰ƒCƒu‘I‘ð‚ðSDƒJ[ƒhONLY‚É‚µ‚½‚¢‚ÆŽv‚Á‚Ä‚¢‚é‚̂ł·‚ªA
‚ǂ̂悤‚ȃR[ƒh‚É‚·‚ê‚΂¢‚¢‚Å‚µ‚傤‚©H

ŠÂ‹«
WindowsXP
Microsoft VisualC++ 6.0 MFC

90:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/04 00:22:22
>>71
‚ǂ̕û–@‚É‚à‰½‚̃ƒŠƒbƒg‚àŠ´‚¶‚ç‚ê‚È‚¢B
‚»‚̂܂܂ɂµ‚Æ‚­‚Ì‚ªˆê”ÔƒXƒ}[ƒg‚È‹C‚ª‚·‚éB

>>80
#define OUT_OF_RANGE(what) (std::out_of_range(std::string(__FILE__":"BOOST_PP_STRINGIZE(__LINE__)": ") + (what)))

91:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/04 01:59:50
>>62-63
‚ ‚肪‚Æ‚¤B‚Å‚«‚邾‚¯ª–{“I‚ÉC³‚·‚邿‚¤‚É‚µ‚Ă݂éB
‚‚¢‚Å‚ÉA‚±‚̃R[ƒh‚ɂ‚¢‚Ä‚à‹³‚¦‚Ä‚­‚ê‚È‚¢‚©B

URLØÝ¸(codepad.org)

‚±‚êAŽdŽ–‚ÅŽg‚Á‚Ä‚égcc4.1.1‚Æcodepad(gcc4.1.2)‚ł͌x‚³‚ê‚é‚Ì‚ÉAcygwin‚Ìgcc4.3.2‚¾‚ÆA
-fstrict-aliasing‚Æ-Wstrict-aliasing‚ðŽw’肵‚Ä‚àŒx‚³‚ê‚È‚¢‚ñ‚¾(-Wstrict-aliasing=2‚ð‰Á‚¦‚ê‚ÎŒx‚³‚ê‚é)B
‚±‚̂ւñ‚Ì“®ì‚Á‚Ä4.1.2ˆÈ~‚Å•ÏX‚³‚ê‚Ä‚éH
gcc‚Ìchanges‚ðŒ©‚½‚¯‚ÇAŠÖŒW‚ ‚è‚»‚¤‚Ȃ̂Í4.2‚Ì
The@C++@frontend@now@also@produces@strict@aliasing@warnings@when@-fstrict-aliasing@-Wstrict-aliasing@is@in@effect.
‚­‚ç‚¢‚µ‚©Œ©‚‚¯‚ç‚ê‚ñ‚©‚Á‚½B

92:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/04 05:32:31
>>91
‚Ç‚¤‚µ‚Ä‚»‚ñ‚Èáï‚Å‚à–³‚¢ƒR[ƒh‚΂©‚è‘‚­‚ñ‚¾…

GCC‚Ìchangelog‚É‘‚¢‚Ä‚ ‚é‚̂͑傫‚È‚à‚Ì‚¾‚¯‚¾‚©‚ç
’m‚ç‚È‚¢‚¤‚¿‚É“à•”‚Ì“®ì‚ª­X•Ï‚í‚邱‚Ƃ͂ ‚肤‚邿

–³ˆó‚Ì-Wstrict-aliasing‚ÅŒx‚ª‚łȂ¢‚Ì‚ª³‚µ‚¢‚©‚͂킩‚ç‚ñ
‚»‚±‚ç‚Ö‚ñ‚̉ÁŒ¸‚Ígcc‚Ì’†‚Ìl‚É‚µ‚©‚í‚©‚ç‚ñ‚¾‚낤‚©‚ç…

93:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/04 09:36:50
#include <iostream>
#include <fstream>

#pragma pack(push, 1)

struct POD
{
int a, b;
char str[5];
int x, y, z;
};

#pragma pack(pop)

void test(POD &pod)
{
std::cout << "a: " << pod.a << std::endl;
std::cout << "b: " << pod.b << std::endl;
std::cout << "str: " << pod.str << std::endl;
std::cout << "x: " << pod.x << std::endl;
std::cout << "y: " << pod.y << std::endl;
std::cout << "z: " << pod.z << std::endl;
}

94:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/04 09:37:33
void save(POD &pod)
{
std::ofstream out("test.bin", std::ios::binary);
out.write((char*)&pod, sizeof(POD));
}

void load(POD &pod)
{
std::ifstream in("test.bin", std::ios::binary);
POD tmp;
in.read((char*)&tmp, sizeof(POD));
pod = tmp;
}

95:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/04 09:39:19
int main(void)
{
POD pod1 = {1, 2, "test", 3, 4, 5};
test(pod1);
save(pod1);

POD pod2 = {0};
load(pod2);
test(pod2);

return 0;
}

ã‹L‚̃R[ƒh‚ÍŽ©•ª‚̃}ƒVƒ“‚¾‚ÆŠú‘Ò’Ê‚è‚É“®‚¢‚Ă邿‚¤‚È‚ñ‚Å‚·‚ª
‚Ù‚©‚̃}ƒVƒ“‚ɈÚA‚µ‚Ä‚à‘åä•v‚Å‚µ‚傤‚©H

96:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/04 09:44:54
int‚ÌŠï””Ô’nƒAƒNƒZƒX‚É–â‘è‚È‚¢CPU‚¾‚Á‚½‚çA‘åä•v‚©‚à

97:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/04 10:01:24
>>96
ƒŒƒX‚ ‚肪‚Æ‚¤‚²‚´‚¢‚Ü‚·
”O‚Ì‚½‚ßpack(push, 4)‚É‚µ‚Ă݂܂·

98:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/04 10:07:15
ˆÚA«l‚¦‚é‚È‚ç
stdint.h‚ð“ǂݞ‚ñ‚Å
int
‚ð
int32_t
‚Æ‚©‚É

99:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/04 12:44:50
>>98
ƒŒƒX‚ ‚肪‚Æ‚¤‚²‚´‚¢‚Ü‚·
ƒoƒCƒg”‚à‘µ‚¦‚Ă݂܂·
vc++‚Éstdint‚ª–³‚¢‚Ì‚ª¢‚è‚à‚̂ł·‚ªvs2010‚ɂ͂ ‚邿‚¤‚Ȃ̂ÅEEE

100:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/04 13:21:04
>>92
>‚Ç‚¤‚µ‚Ä‚»‚ñ‚Èáï‚Å‚à–³‚¢ƒR[ƒh‚΂©‚è‘‚­‚ñ‚¾c@
‚²‚ß‚ñw
ŽÀ‚Í>>91‚ÍAŽÐ“ໃR[ƒh‚ÅLoadFileAsync(const@char*@filename,@void**@buffer)‚Á‚Ä‚¢‚¤‚Ì‚ª‚ ‚é‚ñ‚¾‚¯‚ÇA
‚±‚ꂪgcc4.1.1‚É‚µ‚½‚çŒx‚ªo‚½‚Ì‚ÅA’²¸—p‚É‘‚¢‚½‚ñ‚¾‚íB
“®ì‚ÍAfilename‚ð”ñ“¯Šú‚ɃfƒBƒXƒN‚©‚ç“Ç‚Ýo‚µ‚ÄA“Ç‚Ýo‚µ‚½ƒƒ‚ƒŠ—̈æ‚̃AƒhƒŒƒX‚ðbuffer‚ɕԂ·B
”ñ“¯Šúƒ[ƒh—pƒNƒ‰ƒX‚Å‚àì‚Á‚ÄAvoid**‚ð’u‚«Š·‚¦‚ê‚΂¢‚¢‚ñ‚¾‚낤‚ªA
Šù‚É‚ ‚¿‚±‚¿‚ŌĂ΂ê‚Ä‚éŠÖ”‚¾‚©‚çŽè‚ðo‚µ‚Â炢‚ñ‚¾‚æ‚ËB

101:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/04 16:21:27
>>99
URLØÝ¸(www.kijineko.co.jp)
‚±‚¤‚¢‚¤‚Ì‚ª‚ ‚邿

102:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/04 23:42:27
>>100
‚»‚ê‚Å‚à‚»‚Ì‹­ˆø‚ȃLƒƒƒXƒg‚Í—v‚ç‚ñ‚̂łÍH

A a;
void* p;
f(&p);
a.str = static_cast<char*>(p);

‚à‚µ‚©‚µ‚ăƒ‚ƒŠ—̈æ‚ÌŠm•Û‚à”ñ“¯Šú‚È‚ÌH

103:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/05 01:25:07
ƒwƒbƒ_ƒtƒ@ƒCƒ‹‚Ì’†‚Å#include‚̑ւí‚è‚É,class‚ªŽg‚í‚ê‚Ä‚¢‚鎞‚ª‚ ‚è‚Ü‚·
#include‚ðclass‚É‚·‚邯A‰½‚©‚¢‚¢Ž–‚ª‚ ‚é‚̂łµ‚傤‚©H

‚Ü‚½AQWidget‚Í#include‚àclass‚à‘‚©‚ê‚Ä‚¢‚Ü‚¹‚ñ‚ª
‚È‚ºAŽg‚¤Ž–‚ª‚Å‚«‚é‚̂łµ‚傤‚©H
URLØÝ¸(calmlight.s2.zmx.jp)

104:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/05 01:34:59
u#include‚̑ւí‚è‚É,class‚ªŽg‚í‚ê‚Ä‚¢‚év‚킯‚¶‚á‚È‚¢
‘O•û錾‚ŃOƒO‚ê
‚Æ‚¢‚¤‚©C/C++‚Ì#include‚ÍJava‚ÌimportAC#‚Ìusing‚Ƃ͈Ⴄ‚¼

105:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/05 06:58:32
>>103
‚à‚¤CŒ¾Œê‚âC++‚̃vƒŠƒvƒƒZƒbƒT‚Á‚Ä‚¢‚¤•׋­‚ð‚µ‚½•û‚ª‚¢‚¢‚ñ‚¶‚á‚È‚¢‚©H

106:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/05 09:24:40
Œp³Œ³ƒNƒ‰ƒX‚ðˆø”‚Ŏ󂯂½Žž‚ÉA‚»‚Ìprotectedƒƒ“ƒo‚ɃAƒNƒZƒX‚Å‚«‚È‚¢‚Ì‚Í
‚Ç‚¤‚¢‚¤——R‚Å‚»‚¤‚È‚Á‚Ä‚¢‚é‚̂łµ‚傤‚©H

class A {
protected:
@int x;
};

class B : public A {
public:
@void operator=(const A& a) {
@@x = a.x; //a.x‚Íprotected‚Å‘€ì‚Å‚«‚È‚¢
@};
};

107:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/05 09:30:31
>>106
•ʂ̃Nƒ‰ƒX class C : public A i—ªj‚ȂǂªA B ‚Ƃ͈Ⴄ“s‡‚Å‚»‚¢‚‚ðŽg‚Á‚Ä‚¢‚é
‚©‚à‚µ‚ê‚È‚¢‚©‚çB

‚ß‚ñ‚Ç‚­‚³‚¢‚©‚ç protected ‚È‚ñ‚Äʼn‚©‚çŽg‚í‚È‚¯‚è‚á‚¢‚¢‚ñ‚¾‚æB
private or public ‚Å‚¢‚¯‚È‚¢‚Ì‚©A‚æ‚­l‚¦‚½‚Ù‚¤‚ª‚¢‚¢B

108:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/05 09:45:32
>>107
“K“–‚È‚±‚Æ‚¢‚¤‚È

>>106
Ž©•ª‚ªA‚ðpublic‚ÉŒp³‚µ‚ăAƒNƒZƒX‰Â”\‚ɂȂé‚Ì‚Í
this->a‚Å‚ ‚Á‚Ä
ˆø”‚Æ‚µ‚ÄA‚ðŽó‚¯‚½Žž‚ÍŠO•”‚©‚ç‚̃AƒNƒZƒX‚ɂȂé
‚‚܂èA‚Ìpublic‚ȃƒ“ƒo‚É‚µ‚©ƒAƒNƒZƒX‚Å‚«‚È‚¢
(Ž©•ª‚ªA‚ðŒp³‚µ‚Ă邩‚È‚ñ‚Ä‘S‚­ŠÖŒW‚È‚¢)

ã‚̃P[ƒX‚Å‚â‚낤‚Æ‚µ‚Ä‚é‚̂͂±‚ê‚Æ•Ï‚í‚ç‚È‚¢
void f(const A& a){
int a=a.x;
}

protected‚ȃƒ“ƒo‚Í
u‚±‚Ì‹@”\‚ÍŒp³‚µ‚Ä‚©‚çŽg‚¦‚ÈvA‚Á‚Ä‚¢‚¤ˆÓŽv•\ަ‚Ȃ̂É
Œp³‘O‚ÌA‚̃f[ƒ^‚ɃAƒNƒZƒX‚Å‚«‚½‚炨‚©‚µ‚¢‚Å‚µ‚å

109:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/05 10:04:23
‚¾‚Á‚½‚çŠO‚©‚çƒAƒNƒZƒX‚µ‚Ä‚é‚̂ɓ¯‚¶ƒNƒ‰ƒX‚Ìprivate‚ɃAƒNƒZƒXo—ˆ‚é‚̂͂¨‚©‚µ‚¢‚Í‚¸

110:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/05 10:05:47
>>108
‚ ‚ñ‚½‚Ì‚»‚ê‚͉½‚©ª‹’‚ª‚ ‚é‚Ì‚©‚ËH

> Ž©•ª‚ªA‚ðpublic‚ÉŒp³‚µ‚ăAƒNƒZƒX‰Â”\‚ɂȂé‚Ì‚Í
> this->a‚Å‚ ‚Á‚Ä
> ˆø”‚Æ‚µ‚ÄA‚ðŽó‚¯‚½Žž‚ÍŠO•”‚©‚ç‚̃AƒNƒZƒX‚ɂȂé

protected ‚ª‚»‚¤‚È‚Á‚Ä‚éi private ‚ƈႤj——R‚ð•·‚©‚ê‚Ä‚é‚ñ‚¾‚æB

‚¿‚Ȃ݂ÉA A ‚ÌŒp³‚ª public ‚Å‚ ‚é‚©‚Ç‚¤‚©‚ÍŠÖŒW‚È‚¢‚µA
this->a ˆÈŠO‚É‚à B& b ‚Æ‚¢‚¤ˆø”‚ɑ΂µ‚ĂȂç b.a ‚ŃAƒNƒZƒX‚Å‚«‚éB

> protected‚ȃƒ“ƒo‚Í
> u‚±‚Ì‹@”\‚ÍŒp³‚µ‚Ä‚©‚çŽg‚¦‚ÈvA‚Á‚Ä‚¢‚¤ˆÓŽv•\ަ‚Ȃ̂É
> Œp³‘O‚ÌA‚̃f[ƒ^‚ɃAƒNƒZƒX‚Å‚«‚½‚炨‚©‚µ‚¢‚Å‚µ‚å

‚»‚Ìà–¾‚¾‚ÆA•ʂ̔h¶ƒNƒ‰ƒX C ‚Ì C& c ‚ɂ‚¢‚Ä B ‚̃ƒ“ƒoŠÖ”“à‚Å
c.a ‚ɃAƒNƒZƒX‚Å‚«‚È‚¢——R‚Ìà–¾‚ɂȂç‚È‚¢‚ËB

111:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/05 10:17:53
>>100
>>92‚É’Ç‹L‚µ‚Ä‚¨‚­‚¯‚Ç
-Wstrict-aliasing‚Í‘S‚Ă̖â‘肪‚ ‚éƒP[ƒX‚ðŒx‚·‚邯‚ÍŒÀ‚ç‚È‚¢
-Wstrict-aliasing‚Í-Wstrict-aliasing=3‚Æ“¯‚¶‚Å
-Wstrict-aliasing=1‚ªÅ‚àu­‚µ‚Å‚à‰ö‚µ‚¯‚ê‚ÎŒx‚É‚·‚év‚¯‚Ç
‚»‚ê‚Å‚àit has very few false negatives‚Æ‚µ‚©Œ¾‚í‚ê‚ĂȂ¢
URLØÝ¸(gcc.gnu.org)

»•i‚Æ‚µ‚Ägcc‚ÌÅ“K‰»‚É‚æ‚éƒoƒO‚ðâ‘Ήñ”ð‚µ‚½‚¢‚È‚ç
-fno-strict-aliasing‚É‚µ‚Ä‚±‚ÌŽí‚ÌÅ“K‰»‚𖳌ø‚É‚·‚邵‚©‚È‚¢

112:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/05 10:23:47
>>111
> -Wstrict-aliasing=1‚ªÅ‚àu­‚µ‚Å‚à‰ö‚µ‚¯‚ê‚ÎŒx‚É‚·‚év‚¯‚Ç
> ‚»‚ê‚Å‚àit has very few false negatives‚Æ‚µ‚©Œ¾‚í‚ê‚ĂȂ¢

‚»‚êA "when higher levels do not ... , as it has very few false negatives" ‚Ì
‚Æ‚±‚ë‚ÅA 1 ‚æ‚èã‚̃Œƒxƒ‹‚ɂ‚¢‚ÄŒ¾‚Á‚Ă邯‚±‚낾‚æBƒŒƒxƒ‹ 1 ‚ɂ‚¢‚Ä‚Í
"it has many false positives" ‚Á‚ĂȂÁ‚Ä‚éB

113:112
10/02/05 10:28:46
‚ñH‚²‚ß‚ñA“ǂ݈Ⴆ‚½B

Level 1 ‚¾‚Æ false negative ‚ª­‚È‚­‚Äi‚Å‚àƒ[ƒ‚¶‚á‚È‚­‚ÄjA‚©‚í‚è‚É false positive ‚Í‘½‚¢‚Á‚Ä‚±‚Æ‚©B

112 ‚Í–Y‚ê‚ÄB

114:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/05 15:57:26
ifstream ‚Æ@Win32 ReadFile ‚̃ƒŠƒbƒg‚ƃfƒƒŠƒbƒg‚ð‹³‚¦‚Ä‚­‚¾‚³‚¢

ReadFile‚ÍwindowsˆË‘¶‚µ‚Ä‚¢‚邱‚Ƃ͒m‚Á‚Ă܂·Aifstream‚Ì“à•”‚Å‚ÍReadFile‚ðŽg‚Á‚Ä‚¢‚éiHj‚Æ‚©‚Ç‚Á‚Ăł݂½‹C‚ª‚·‚é
‘¬“x‚ð”äŠr‚µ‚Ă݂½‚çifstream‚Ì•û‚ª‚͂₩‚Á‚½‚Å‚·

115:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/05 16:02:59
1ƒoƒCƒg‚¸‚ÂReadFile‚ðŒÄ‚Ño‚µ‚½‚肵‚Ä‚¢‚È‚¢‚©H
ifstream“™‚Í“à•”‚Ƀoƒbƒtƒ@‚ðŽ‚Á‚Ĉê“x‚̌ĂÑo‚µ‚Å‘½‚­‚̃f[ƒ^‚ð“ǂݞ‚ނ悤‚É‚µ‚ÄAPI‚̌ĂÑo‚µ‰ñ”‚ð—}‚¦‚Ä‚¢‚é‚Í‚¸

116:114
10/02/05 16:10:02
ReadFileˆø”‚̃uƒbƒtƒ@Žw’è‚̂Ƃ±‚ë‚Ńtƒ@ƒCƒ‹ƒTƒCƒY“n‚µ‚Ä‚¢‚é‚Ì‚Å1ƒoƒCƒg‚¸‚‚ł͂Ȃ¢‚Í‚¸

117:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/05 16:45:56
•’ʂ̃tƒ@ƒCƒ‹‚ð•’ʂɓǂނÆOS‚ÍŸŽè‚ɃfƒBƒXƒNƒLƒƒƒbƒVƒ…‚·‚邿

118:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/05 17:24:52
‚»‚ꂾ‚ÆReadFile‚ª’x‚¢——R‚ɂȂç‚ñ‚̂łÍ

119:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/05 17:28:37
‚¢‚«‚È‚èƒtƒ@ƒCƒ‹‘S‘̃LƒƒƒbƒVƒ…‚·‚é‚킯‚¶‚á‚È‚¢‚©‚ç

120:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/05 18:04:54
ƒfƒBƒXƒNƒAƒNƒZƒX‚̃RƒXƒg‚ÍOS‚̃fƒBƒXƒNƒLƒƒƒbƒVƒ…‚ʼnB•Á‚Å‚«‚Ä‚à
ƒVƒXƒeƒ€ƒR[ƒ‹(ƒJ[ƒlƒ‹‚Ƃ̃‚[ƒh‘JˆÚ)‚̃RƒXƒg‚͉B•Á‚Å‚«‚Ü‚¹‚ñB
ReadFile‚ð‰½“x‚à‰½“x‚àŒÄ‚Ño‚µ‚Ä‚¢‚éŒÀ‚èB

121:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/05 19:48:25
ifstream‚ª‘¬‚¢——R‚ɂȂç‚ñ‚¼

122:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/05 20:15:36
ƒiƒjŒ¾‚Á‚Ä‚ñ‚¾ƒIƒ}ƒG‚Í

123:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/05 20:16:50
‚¿‚Ȃ݂É
stdio‚Æ”äŠr‚µ‚Äifstream‚Í‘S‘R‘¬‚­‚È‚¢B

124:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/05 20:23:02
”äŠr‚µ‚¿‚Ⴞ‚ß‚¾‚ë

iostream‚Ì—Ç‚¢Š‚͕ʂɂ ‚é‚ñ‚¾‚©‚çB
‰½‚©‚Æ‚¢‚¤‚Æ‚»‚ê‚ÍŽŸ‚Ìl‚Ç‚¤‚¼
«««


125:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/05 20:39:29
Œp³‚É‚æ‚Á‚Äì‚ç‚ê‚Ä‚¢‚銂ł·

‚‚܂è“ü—ÍŒ³‚âo—Íæ‚¾‚¯‚ł͂Ȃ­stringstream‚̂悤‚É
ª–{“I‚È\‘¢‚ªˆÙ‚È‚Á‚Ä‚à‘S‚­“¯‚¶ƒCƒ[ƒW‚Å‘€ì‚Å‚«‚鎖‚Å‚·

‚Æ‚Å‚àŒ¾‚Á‚Ä—~‚µ‚¢‚Ì‚©H

126:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/05 21:52:34
>>114 ‚Ç‚ñ‚ȃR[ƒh‚Å”äŠr‚µ‚½‚Ì‚©‚í‚©‚邿‚¤‚ɃR[ƒh‚ðŽN‚³‚È‚¢‚Æ“š‚¦‚ç‚ê‚È‚¢‚ÈB


127:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/05 22:16:09
>>114
ReadFile‚ÌŽg‚¢•û‚ðŠÔˆá‚Á‚Ä‚é‚ñ‚¶‚á‚È‚¢‚©H
ifstream‚ð‘‚¢‚½l‚ÍReadFile‚ÌŽg‚¢•û‚ð‚æ‚­’m‚Á‚Ä‚é‚ñ‚¾‚ÆŽv‚¤‚æB

128:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/05 23:44:41
ƒƒbƒZ[ƒbƒW‚ɂ‚¢‚Ä‹³‚¦‚Ä‚­‚ê
WM_NOTIFY‚ÆON_NOTIFY_REFLECT‚ÌŠÖŒW‚ª‚í‚©‚ç‚È‚¢

’²‚ׂ½‚Æ‚±‚ëWM_NOTIFY‚̃ƒbƒZ[ƒW‚ª‘¡‚ç‚ê‚邯‚邯ON__NOTIFY_REFLECT‚ªŒÄ‚Ño‚³‚ê‚êƒE
‚Ý‚½‚­‘‚¢‚Ä‚ ‚Á‚½‚¯‚Ç
‚¶‚á‚ ON_NOTIFY_REFLECT‚ª‚à‚Á‚Ä‚é’Ê’mƒƒbƒZ[ƒW‚͉½‚æH

‚í‚©‚è‚â‚·‚­‚¨‚µ‚¦‚Ä‚Ë

129:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/05 23:49:40
>>128
‚ÍH
“ª‚¨‚©‚µ‚¢‚ÌH

130:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/05 23:50:12
>>128
Win32APIŽ¿–â”  Build86
½ÚØÝ¸(tech”Â)

131:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/05 23:52:04
‚Ç‚Á‚¿‚©‚Æ‚¢‚¤‚ÆMFC‚̂ق¤‚¾‚È

132:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/06 02:27:22
PaintDC‚Ì•`‰æ—̈æ‚̃NƒŠƒA•û–@‹³‚¦‚Ä

133:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/06 10:22:50
InvalidateRect‚à‚µ‚­‚ÍValidateRect‚Ì‚±‚Æ‚©
‚»‚ê‚Æ‚àFillRect‚Ì‚±‚Æ‚¾‚낤‚©

134:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/06 13:22:55
template< int Foo >
class CHoge
{
public:
@@CHoge(int ini) : m_hoge(ini){}
@@int m_hoge;
@@char m_foo[Foo];

@@static const CHoge<Foo> sc_Zero;
};
//const CHoge<Foo> CHoge<Foo >::sc_Zero = CHoge<Foo>(0); // Foo : ’è‹`‚³‚ê‚Ä‚¢‚È‚¢Ž¯•ÊŽq‚Å‚·B

@sc_Zero ‚ð‰Šú‰»‚µ‚½‚¢‚ñ‚¾‚¯‚ÇC‚ǂ̂悤‚É‚·‚ê‚΂¢‚¢‚Å‚µ‚傤‚©H

135:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/06 13:38:26
Foo‚Ì’l‚ÍŒˆ‚Ü‚é•K—v‚ª‚ ‚é‚ñ‚¶‚á‚ËH

template< int Foo >
class CHoge
{
public:
CHoge(int ini) : m_hoge(ini){}
int m_hoge;
char m_foo[Foo];
static const CHoge<Foo> sc_Zero;
};

CHoge<1> h(10);
const CHoge<1> CHoge<1>::sc_Zero(h);


136:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/06 13:41:57
template < int Foo >
const CHoge<Foo> CHoge<Foo >::sc_Zero = CHoge<Foo>(0);

137:134
10/02/06 13:51:57

>>135-136
‚ ‚肪‚Æ‚¤‚²‚´‚¢‚Ü‚·D‰Šú‰»o—ˆ‚Ü‚µ‚½D

138:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/06 17:31:35
‘O•û錾‚ð‚·‚é‚Æ•’Ê‚É#include‚·‚邿‚è‚àAƒRƒ“ƒpƒCƒ‹‚ª‘¬‚­‚È‚è‚Ü‚·‚©H

139:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/06 17:33:57
‘O•û錾‚̓Rƒ“ƒpƒCƒ‹ˆË‘¶«‚ðŒ¸‚ç‚µ‚½‚è‚·‚邽‚ß‚É
‚ ‚邯Žv‚¤‚ñ‚¾‚¯‚Ç

140:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/06 17:39:20
>>138
ƒRƒ“ƒpƒCƒ‹‚ª‘¬‚­‚È‚é‚Á‚Ä‚¢‚¤‚æ‚è‚àAƒRƒ“ƒpƒCƒ‹‚µ‚È‚¨‚³‚È‚¯‚ê‚΂¢‚¯‚È‚­‚È‚éƒtƒ@ƒCƒ‹‚ª
Œ¸‚é‚Á‚Ä‚¢‚¤‚Ì‚ª³‚µ‚¢‚©‚ÆB

141:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/06 18:05:26
‘O•û錾‚ª•K—v‚ȃpƒ^[ƒ“

class B;

class A {
B b;
};

class B {
A *a;
};

‚ ‚Æ‚ÍpimplƒCƒfƒBƒIƒ€‚Å­‚µŽ—‚½Žg‚¢•û‚µ‚½‚èB

142:138
10/02/06 18:06:41
>>140
‚â‚Á‚Ï‚èA‚»‚¤‚¾‚æ‚Ë
thx

143:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/06 22:06:12
new‚Æmalloc‚ÍŽ—‚½‚悤‚È“®ì‚ð‚µ‚Ü‚·‚ªA
ƒoƒbƒNƒOƒ‰ƒEƒ“ƒh‚Å‚Ínew‚ªmalloc‚ðŒÄ‚Ño‚µ‚Ä‚¢‚é‚̂ł·‚©H

144:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/06 22:09:27
>>143
‚»‚¤‚¢‚¤ŽÀ‘•‚à‘½‚¢‚¯‚Ç‚àA‚»‚¤‚Ƃ͌À‚ç‚È‚¢B
‚»‚ꂪ–â‘è‚É‚È‚é‚æ‚¤‚ȃvƒƒOƒ‰ƒ€‚ð‘‚­‚ׂ«‚ł͂Ȃ¢‚µA‘‚­•K—v‚à–³‚¢B

145:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/06 22:48:57
WinAP‚h‚ðŽg‚킸‚Ƀ}ƒEƒX‚ðƒvƒƒOƒ‰ƒ€‘¤‚©‚瑀삷‚é‚ɂ͂ǂ¤‚µ‚½‚ç‚æ‚¢‚Å‚µ‚傤‚©H

146:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/06 22:50:12
‚»‚¤‚¢‚¤ƒ‰ƒCƒuƒ‰ƒŠ‚ð’T‚·B

147:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/06 22:57:22
>>145
‚»‚ê‚Í•s‰Â”\‚¾‚낤B

ƒ‰ƒbƒpƒ‰ƒCƒuƒ‰ƒŠ‚ª‚ ‚ê‚Ή”\‚¾‚낤‚ªA
‚»‚̃‰ƒbƒp‚à‚â‚Í‚èWinAPI‚ÍŽg‚Á‚Ä‚¢‚邾‚낤‚ÈB

148:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/06 23:43:39
VS2005A‚b/‚b++‚ŃRƒ“ƒgƒ[ƒ‰iJoystickj‚Ìó‘Ô‚ðŽæ“¾‚·‚é‚ɂ͂ǂ¤‚·‚ê‚Ηǂ¢‚̂łµ‚傤‚©H
’²‚×‚Ä‚à’†Xo‚Ä‚±‚È‚¢‚Ý‚½‚¢‚Ȃ̂ÅB•‚¯‚Ä‚­‚¾‚³‚¢B
ƒvƒƒWƒFƒNƒgÝ’è‚ÍWin32ƒRƒ“ƒ\[ƒ‹ƒAƒvƒŠƒP[ƒVƒ‡ƒ“‚Å‚·B
‚Ђǂ¢‚­‚ç‚¢‰SŽÒ‚Å‚·‚ªA‚æ‚낵‚­‚¨Šè‚¢‚µ‚Ü‚·B

149:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/06 23:53:46
GetJoystickState

150:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/07 00:13:35
>>148
Windows API‚©ADirectX‚ÌDirectInput‚ðŽg‚¤

Joystick Reference (Windows)
URLØÝ¸(msdn.microsoft.com)(VS.85).aspx

DirectInput
URLØÝ¸(msdn.microsoft.com)(VS.85).aspx
URLØÝ¸(msdn.microsoft.com)(VS.85).aspx

151:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/07 00:30:49
DirectInput‚ÍŽg‚Á‚Ä‚¢‚Ü‚·B

printf("%d\r\n",js.lX);
‚ňꉞA‰Šú’l‚Ì@-8@‚ƃvƒŠƒ“ƒg‚³‚ê‚Ä‚¢‚é‚̂ł·‚ªA
“®‚©‚µ‚Ä‚à•Ï“®‚ª‚ ‚è‚Ü‚¹‚ñB‚Ç‚¤‚à“|‚µ‚È‚ª‚çƒL[ƒ{[ƒh‚ð“ü—Í‚·‚邯”’l‚ª•Ï“®‚·‚邿‚¤‚Å‚·B

Œ»Ý‚̓L[ƒ{[ƒh“ü—͂œü—Í‚µ‚½‚Æ‚«‚¾‚¯OpenGL‚ªÄ•`‰æ‚³‚ê‚é‚̂ł·‚ª
‚±‚ê‚ðJoystick‚ð“|‚µ‚½Žž‚ÉÄ•`‰æ‚³‚ê‚邿‚¤‚É‚·‚é‚ɂ͂ǂ¤‚·‚ê‚΂悢‚̂łµ‚傤‚©H

switch (key) {

case 'd':
{
Point NextPos( PosX+0.2, PosY );
if( !ColCheck( NextPos ) )PosX +=0.2;
glutPostRedisplay();
}
ƒ\[ƒX‚Í‚±‚ñ‚ÈŠ´‚¶‚ɂȂÁ‚Ä‚¢‚Ü‚·BƒL[ƒ{[ƒh“ü—ÍŽž‚݂̂ÌÄ•`‰æ‚ł͂Ȃ­Aí‚ÉH•`‰æ‚·‚é‚ɂ͂ǂ¤‚·‚ê‚΂悢‚̂ł·‚©H
‰SŽÒ‚Å‚·‚݂܂¹‚ñB‘‚«ž‚ñ‚Å‚¢‚ĉ½‚ðŒ¾‚Á‚Ä‚é‚Ì‚©‚í‚©‚ç‚È‚­‚È‚Á‚Ä‚«‚Ü‚µ‚½B

152:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/07 00:45:10
OpenGLƒXƒŒ‚Å•·‚¢‚Ă݂ê‚ÎH

153:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/07 00:50:10
‚Í‚¢A‚»‚¤‚µ‚Ă݂܂·B‚ ‚肪‚Æ‚¤‚²‚´‚¢‚Ü‚µ‚½B

154:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/07 02:47:37
void *Œ^‚©‚牽‚©‚ÌŒ^‚ւ̃|ƒCƒ“ƒ^‚ÖƒLƒƒƒXƒg‚·‚鎞‚É‚»‚ꂪ—LŒø‚©’²‚ׂ邢‚¢•û–@‚Í‚ ‚è‚Ü‚·H
¡‚̂Ƃ±‚ëƒnƒbƒVƒ…‚ɃAƒhƒŒƒX‚Ætype_info‚̃yƒA•Û‘¶‚µ‚Ä‚¨‚­‚Æ‚¢‚¤”÷–­‚È•û–@‚µ‚©Žv‚¢‚‚«‚Ü‚¹‚ñ

155:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/07 07:03:04
>154
dynamic_cast ‚©‚ÈB
‚Å‚à‚Ç‚Á‚¿‚©‚Á‚Ä‚¢‚¤‚ÆŒ^”»•Ê‚µ‚È‚«‚á‚¢‚¯‚È‚¢‚±‚ÆŽ©‘Ì‚ª‚Ç‚Á‚©‚¨‚©‚µ‚¢‚悤‚È‹C‚ª‚·‚éB

156:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/07 07:19:04
void * ‚Édynamic_cast‚Í–³—

157:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/07 08:14:09
C++‚É‚ÍƒŠƒtƒŒƒNƒVƒ‡ƒ“‚ª‚È‚¢‚©‚ç–³—‚¾‚ë

158:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/07 10:01:05
>>154
shared_ptr ‚ª‚ ‚邿

159:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/07 11:15:33
struct hoge {
int bar1;
char *buf;
int bar2;
};

‚±‚ñ‚È\‘¢‘Ì‚Ìbuf‚É•¶Žš—ñ“ü‚ê‚é‚È‚èmalloc‚·‚é‚Ȃ肷‚邯ƒƒ‚ƒŠ“I‚ɂ͂ǂ¤‚È‚é‚ÌH
bar2‚ª‚»‚Ì•ªŒã‚ë‚É‚¸‚ꂽ‚è‚·‚é‚ÌH

160:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/07 11:22:14
template<size_t T_size>struct hoge {
int bar1;
char buf[T_size];
int bar2;
};

161:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/07 11:22:50
>>155
void*‚È‚ñ‚©Žg‚í‚È‚¢‚Ù‚¤‚ª‚¢‚¢‚ÆŒ¾‚¦‚΂»‚̂Ƃ¨‚è‚È‚ñ‚Å‚·‚ª
ƒXƒNƒŠƒvƒg‚ÆŠg’£Œ^‚̃|ƒCƒ“ƒ^‚ð‚â‚èŽæ‚è‚·‚é‚̂Ɉê‰ñvoid*‚ɕϊ·‚³‚ê‚ÄŒ^î•ñ‚ª‚È‚­‚È‚Á‚Ä‚µ‚Ü‚¤‚̂ł·
ƒXƒNƒŠƒvƒg‘¤‚ŕςȂ±‚Æ‚µ‚È‚¯‚ê‚Ζâ‘è‚͂Ȃ¢‚ñ‚Å‚·‚ªAŠÔˆá‚¦‚邯ƒGƒ‰[‚ào‚¹‚¸‚É—Ž‚¿‚Ä‚µ‚Ü‚¤‚̂łǂ¤‚É‚©‚Å‚«‚È‚¢‚©‚ÈA‚Æ

>>156,157
‚â‚Á‚ς薳—EEE‚Å‚µ‚傤‚©

>>158
‚·‚¢‚Ü‚¹‚ñ
Ú‚µ‚­‚¨Šè‚¢‚Å‚«‚Ü‚·‚©H

162:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/07 11:45:30
void*‚̃|ƒCƒ“ƒ^æ‚ðƒf[ƒ^‚̶ƒ|ƒCƒ“ƒ^‚ł͂Ȃ­A

struct ptr_holder {
void *ptr;
type_info ty;
};

‚̃|ƒCƒ“ƒ^‚Æ‚©‚ɂ͂ł«‚È‚¢‚ÌH

163:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/07 11:54:49
>>161
void*‚ð‰½‚©‚̃Nƒ‰ƒX‚ɕϊ·‚·‚é‚̂̓vƒƒOƒ‰ƒ}‚ÌÓ”C‚ɂȂé‚ñ‚¾‚ËB
•ÏŠ·•û–@‚̓vƒƒOƒ‰ƒ}‚©‚猈‚߂Ȃ¢‚Æ‚¢‚¯‚È‚¢‚¯‚ÇA‚PŽí—ނ̃Nƒ‰ƒX‚µ‚©ˆµ‚¦‚È‚¢‚Ì‚ªŽÀîB
‚»‚±‚ÅA•¡”‚̃Nƒ‰ƒX‚ðˆµ‚¤‚É‚ÍA>>162‚̂悤‚É‚PŽí—ނ̃Nƒ‰ƒX‚ð‹²‚ñ‚ŃNƒ‰ƒX‚ðŽ¯•Ê‚Å‚«‚邿‚¤‚É‚µ‚ĕϊ·‚·‚éB
‚»‚ê‚ð‚â‚Á‚Ä‚¢‚é‚Ì‚ª>>158‚Ì•û–@Bshared_ptr<void>‚ւ̃|ƒCƒ“ƒ^shared_ptr<void>*‚ðvoid*‚Æ‚µ‚Ä“n‚µAshared_ptr<void>*‚É–ß‚·B‚»‚ÌŒãAshared_polymorphic_cast<Hoge>(*Ptr);‚ŕϊ·BŒ^‚ªˆá‚¦‚ΗáŠO‚ª“Š‚°‚ç‚ê‚éB

164:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/07 11:56:54
>>159
‚¸‚ê‚È‚¢
@@@@@@@@@@@@@@@@+------+
0x11111100@|@bar1@@@|
@@@@@@@@@@@@@@@@@|------|
0x11111104@|@buf@@@@@|@--->@NULL
@@@@@@@@@@@@@@@@@|------|
0x11111108@|@bar2@@@|
@@@@@@@@@@@@@@@@+------+
ª‚±‚ñ‚ÈŠ´‚¶‚Ì‚ª@«‚±‚ñ‚ÈŠ´‚¶‚ɂȂ邾‚¯
@@@@@@@@@@@@@@@@+------+
0x11111100@|@bar1@@@|
@@@@@@@@@@@@@@@@@|------|
0x11111104@|@buf@@@@@|@----+
@@@@@@@@@@@@@@@@@|------|@@@@@@@@|
0x11111108@|@bar2@@@|@@@@@@@@|
@@@@@@@@@@@@@@@@+------+@@@@@@@@|
@@@@@@@@@@@@@@@@@+------+@@@@@@@|
0x22222200@|@•¶Žš—ñ@|@@<--+
@@@@@@@@@@@@@@@@@+------+

165:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/07 12:13:53
>>163
shared_ptr‚Ì‚»‚ÌŽg‚¢•û‚Íshared_ptr‚Ì–{—ˆ‚ÌŽg‚¢•û‚̈ꕔ‚É‚µ‚©‚·‚¬‚È‚¢B
shared_ptr‚Ì–{—ˆ‚ÌŽg‚¢•û‚ð’m‚Á‚½ã‚ÅŽg‚¤‚ׂ«B

166:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/07 12:13:58
>>162
Žc”O‚È‚ª‚çAptr_holder*‚ðvoid*‚É‚µ‚Ä“n‚·‚Æ‚¢‚¤Œ`‚ɂȂè‚Ü‚·‚Ì‚Å
Œ‹‹Ç‚̂Ƃ±‚ëvoid*‚ªptr_holder*‚É–ß‚¹‚é‚©‚Æ‚¢‚¤A‚Ù‚Ú“¯‚¶–â‘è‚É–ß‚Á‚Ä‚µ‚Ü‚¢‚Ü‚·

>>163
‚â‚Í‚èvoid*‚ªshared_ptr<void>‚ɕϊ·‚Å‚«‚é•ÛØ‚͂Ȃ¢‚Ì‚ÅAŠ®‘S‚ł͖³‚¢‚Å‚·‚Ë


‚Å‚à“¯ˆêƒvƒƒWƒFƒNƒg“à‚łȂçshared_ptr‚É“ˆê‚·‚邱‚Ƃ͉”\‚È‚Ì‚ÅŽŽ‚µ‚Ă݂½‚¢‚ÆŽv‚¢‚Ü‚·
‚݂Ȃ³‚ñƒŒƒX‚ ‚肪‚Æ‚¤‚²‚´‚¢‚Ü‚µ‚½

167:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/07 12:39:16
>void*‚ªptr_holder*‚É–ß‚¹‚é‚©

‚»‚±‚Í“–‘Rptr_holder‚µ‚©Žg‚í‚È‚¢‚Æ‚¢‚¤”›‚肪•K—v‚ɂȂé

168:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/07 12:50:54
void*‚âshared_ptr<void>‚ł͂Ȃ­Aboost::anyi‚ ‚é‚¢‚Íany*‚âshared_ptr<any>j‚É‚µ‚½‚ç‚¢‚¢B

169:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/07 15:23:09
Linux‚ÅC++•׋­‚µ‚½‚¢‚ñ‚¾‚¯‚Ç
ƒ‰ƒCƒuƒ‰ƒŠ‚Á‚ĉ½‚ª•W€‚È‚ÌH

170:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/07 15:25:02
gcc‚Æ‚©‚Ì‚±‚ÆH

171:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/07 15:25:38
>>169
‚Ü‚¸‚Í C •W€ƒ‰ƒCƒuƒ‰ƒŠ‚Æ C++ •W€ƒ‰ƒCƒuƒ‰ƒŠ‚¾‚ÈB

172:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/07 15:29:38
>>171
boost‚Æ‚¢‚¤‚Ì‚ª•W€‚Å‚·‚©H‚»‚ê‚Æ‚àSTL‚Æ‚¢‚¤‚̂ł·‚©H

173:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/07 15:35:08
>>172
boost ‚Í•W€‚ł͂Ȃ¢‚ªA«—ˆ‚Ì•W€‚Ɋ܂܂ê‚é‚à‚Ì‚ðŠÜ‚ñ‚Å‚¢‚éB
STL ‚Í̖̂¼‘O‚ÅA¡‚Í C++ •W€ƒ‰ƒCƒuƒ‰ƒŠ‚Ɋ܂܂ê‚Ä‚¢‚éB

174:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/07 15:38:54
>>172
boost‚Í•W€ƒ‰ƒCƒuƒ‰ƒŠ‚ł͂Ȃ¢B
‚¾‚ªM—Š«EˆÚA«‚Ì‚ ‚éŠO•”ƒ‰ƒCƒuƒ‰ƒŠ‚¾‚ÆŽv‚¤B
‚ ‚Æboost‚Ì‚·‚²‚¢‚Æ‚±‚ë‚ÍÅæ’[‚ð‚ß‚Á‚¿‚á’Ç‹‚µ‚Ä‚¢‚邯‚±‚ë‚©‚ÈB



175:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/07 15:45:36
boost‚Í·‚肾‚­‚³‚ñ‚¾‚©‚çA‚ЂƂ­‚­‚è‚Å‘S•”OK‚Æ‚©ƒ_ƒ‚¾‚Ƃ͌¾‚¢‚É‚­‚¢‚ÈB

176:progress_display
10/02/07 15:49:25
>>175
Ž„‚Ì‚±‚Æ‚¨ŒÄ‚ÑH

177:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/07 16:40:18
ð“úˆá‚¤ƒXƒŒ‚ÅŽ¿–₵‚Ü‚µ‚½‚ªAŽ¿–₳‚¹‚Ä‚­‚¾‚³‚¢

public void setXXX(Foo* f)‚Æ‚¢‚¤ƒƒ\ƒbƒh‚ª‚ ‚Á‚½ê‡A
‚P.setXXX(f);¨f‚̓|ƒCƒ“ƒ^
‚Q.setXXX(&f);¨f‚̓|ƒCƒ“ƒ^‚ł͂Ȃ­Af‚̃AƒhƒŒƒX‚ð“n‚µ‚Ä‚¢‚é

•’ʂɃvƒƒOƒ‰ƒ~ƒ“ƒO‚ð‚µ‚½ê‡‚ÍA1 or 2‚̂ǂ¿‚ç‚Å‚à‘åä•v‚¾‚ÆŽv‚¢‚Ü‚·
‚µ‚©‚µAGUIŠÖŒW‚ðƒvƒƒOƒ‰ƒ~ƒ“ƒO‚µ‚½ê‡‚ÍA‚Q‚Ì•û–@‚̓_ƒ‚ȉ”\«‚ª‚‚¢‚ÆŽv‚¤‚̂ł·‚ª
Œ‹‹Ç‚ÍGUI Tool Kit‚Ɉˑ¶‚·‚邯‚¢‚¢‚¤‚±‚Ƃłµ‚傤‚©H

178:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/07 16:47:07
f‚ªFoo‚̃|ƒCƒ“ƒ^‚È‚ç1‚¾‚µAFoo‚̃Cƒ“ƒXƒ^ƒ“ƒX‚È‚ç2
ƒc[ƒ‹ƒLƒbƒg‚Æ‚©‚»‚¤‚¢‚¤–â‘è‚¶‚á‚È‚¢
‚»‚à‚»‚àpublic void setXXX‚Í’Êí‚È‚ç\•¶ƒGƒ‰[

179:177
10/02/07 16:51:15
>>178
1‚ÍFoo* f = new Foo();
2‚ÍFoo f;
‚Å錾‚µ‚Ä‚¢‚Ü‚·

>‚»‚à‚»‚àpublic void setXXX‚Í’Êí‚È‚ç\•¶ƒGƒ‰[
‰½ŒÌH

180:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/07 16:58:25
‚»‚ÌGUIƒIƒuƒWƒFƒNƒg‚ªƒ[ƒJƒ‹ƒXƒR[ƒvŒÀ‚è‚Å휂³‚ê‚邿‚¤‚Èꇂ͕ʂÉ2‚Å‚à–â‘è‚È‚¢‚ÆŽv‚¤‚¯‚ê‚Ç
ƒfƒoƒCƒXƒRƒ“ƒeƒLƒXƒg‚Æ‚©‚Í‚»‚¤‚¢‚¤Žg‚¢•û‚ð‚µ‚»‚¤‚¾‚ªƒEƒBƒ“ƒhƒE‚Æ‚©‚Í‚ ‚܂肻‚¤‚¢‚¤Žg‚¢•û‚ð‚µ‚È‚¢‚¾‚낤

181:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/07 17:06:54
>>179
ƒGƒ‰[‚Á‚Ă̂ÍApublic‚ÌŒã‚ë‚ɃRƒƒ“‚ª•t‚¢‚ĂȂ¢‚¾‚¯‚Ì‚±‚Æ‚¾‚ÆŽv‚¤B

182:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/07 17:06:54
>>177
> GUIŠÖŒW‚ðƒvƒƒOƒ‰ƒ~ƒ“ƒO‚µ‚½ê‡‚ÍA‚Q‚Ì•û–@‚̓_ƒ‚ȉ”\«‚ª‚‚¢‚ÆŽv‚¤‚̂ł·‚ª

‚È‚ñ‚ÅH
ˆÓ–¡‚í‚©‚ñ‚È‚¢B

‰Â”\«‚ª‚‚¢‚Æ‚©ƒOƒ_ƒOƒ_Œ¾‚Á‚ĂȂ¢‚ÅAŠÖ”‚ÌŽd—l‚ðŠm”F‚·‚ê‚΂¢‚¢‚Ì‚ÉB

183:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/07 17:15:50
ƒXƒ^ƒbƒN‚âƒq[ƒv‚Æ‚¢‚Á‚½ƒƒ‚ƒŠ—̈æ‚Í‚²‘¶‚¶H

184:177
10/02/07 17:56:51
>>180
‚»‚ê‚à‚»‚¤‚Å‚·‚Ë

>>181
javaog‚È‚à‚Ì‚ÅA‚¤‚Á‚©‚è‚â‚Á‚Ä‚µ‚Ü‚¢‚Ü‚µ‚½

>>183
yes

185:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/07 18:14:18
177‚ª‚È‚ñ‚Å‚»‚ñ‚È‹^–â‚ðŽ‚Á‚½‚©‚̂ق¤‚ª‹C‚ɂȂé
‚»‚à‚»‚àŽÀˆø”f‚ÌŒ^‚ªFOO‚ւ̃|ƒCƒ“ƒ^‚¾‚Æ‚µ‚½‚ç
ã‚Ì1‚Æ2‚Í‘S‚­“¯‚¶ˆÓ–¡‚¾‚Æ‚¢‚¤‚͕̂ª‚©‚Á‚Ä‚éH

186:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/07 18:17:44
185‚Í–Y‚ê‚Ä‚­‚ê

187:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/07 18:21:54
>>185
ƒhƒ“ƒ}ƒCB‚½‚܂ɂ¤‚Á‚©‚肵‚¿‚Ⴄ‚æ‚ÈB

188:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/07 18:39:49
>>177‚͉½‚©‚ðŠ¨ˆá‚¢‚µ‚Ä‚é‹C‚ª‚·‚éB

public : void setXXX(Foo* f);

Foo fOrg;
Foo* f = &fOrg;

1.setXXX(f);¨f‚̓|ƒCƒ“ƒ^
2.setXXX(&fOrg);¨fOrg‚̓|ƒCƒ“ƒ^‚ł͂Ȃ­AfOrg‚̃AƒhƒŒƒX‚ð“n‚µ‚Ä‚¢‚é

‚±‚ê‚łǂÁ‚¿‚à“¯‚¶‚ɂȂé‚ñ‚¾‚ªB

189:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/07 18:47:44
>>188‚¢‚âA‚½‚Ô‚ñ‚»‚ꎩ‘̂͗‰ð‚µ‚Ä‚é‚ñ‚¶‚á‚È‚¢‚©‚È
GUIƒAƒvƒŠ‚ÅA’·ŠúŠÔ‚ ‚éƒIƒuƒWƒFƒNƒg‚ðŽg‚¤‚悤‚ÈꇂÉA
ƒq[ƒv‚ɂƂé‚ׂ«‚©i1jƒXƒ^ƒbƒN‚ɂƂé‚ׂ«‚©i2j‚Æ‚¢‚¤Ž¿–â‚È‚ñ‚¶‚á‚È‚¢‚Ì

190:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
10/02/07 18:54:41
‚¶‚á‚ AƒCƒ“ƒXƒ^ƒ“ƒX‚ÌŽõ–½‚ð‹C‚É‚µ‚Ä‚é‚Á‚Ä‚±‚Æ‚©B
‚»‚ñ‚È‚ÌJava‚àC++‚àˆê‚¶‚á‚È‚¢‚ÌH
ƒXƒR[ƒv‚𔲂¯‚½‚çƒfƒXƒgƒ‰ƒNƒ^‚ªŽÀs‚³‚ê‚é‚Å‚µ‚傤‚æB

191:190
10/02/07 18:56:52
‚²‚ß‚ñˆá‚Á‚½BJava‚Ífinalize‚ª‚¢‚ÂŽÀs‚³‚ê‚é‚Ì‚©•ª‚©‚ç‚ñ‚Ì‚ËB

192:177
10/02/07 19:11:12
>>189
‚»‚Ì’Ê‚è‚Å‚·B‚»‚¤‚¢‚¤Ž¿–â‚Å‚·
URLØÝ¸(gihyo.jp)
>1DŽqƒEƒBƒWƒFƒbƒg‚̃ƒ‚ƒŠ‰ð•ú‚ÌŽ©“®‰»
‚ð“Ç‚ñ‚Å‚¢‚½‚ç‹^–₪—N‚«‚Ü‚µ‚½

>>188 ‚ɂͫ‚Æ‘‚¢‚Ä‚¢‚Ü‚·‚ªA
>‚±‚ê‚łǂÁ‚¿‚à“¯‚¶‚ɂȂé‚ñ‚¾‚ªB

1.Foo fOrg;©ƒXƒ^ƒbƒN‚ɃCƒ“ƒXƒ^ƒ“ƒX‚ªŠm•Û‚³‚ê‚éƒnƒY
2.Foo* f = new Foo();©ƒq[ƒv‚ɃCƒ“ƒXƒ^ƒ“ƒX‚ªŠm•Û‚³‚ê‚é

2‚Ì•û–@‚¾‚ƃq[ƒv‚É‚ ‚éƒCƒ“ƒXƒ^ƒ“ƒX‚Ídelete‚µ‚È‚¢‚Æíœ‚³‚ê‚Ü‚¹‚ñ‚ªA
1‚Ì•û–@‚¾‚ÆŽ©“®“I‚É휂³‚ê‚é‚̂łÍH‚Æl‚¦‚Ü‚µ‚½

‚à‚µ‚àA1‚Ì•û–@‚ÅŽ©“®“I‚É휂³‚ê‚È‚©‚Á‚½ê‡A
ƒXƒ^ƒbƒN(first in first out)‚Ȃ̂Åu‘¼‚̕ϔ‚à휂³‚ê‚È‚­‚È‚é‰Â”\«v‚ª‚ ‚é‚ñ‚¶‚á‚È‚¢‚©‚È`‚Æ

‚í‚©‚肸‚ç‚­‚ÄAƒXƒ}ƒ\


ŽŸƒy[ƒW
ÅVƒŒƒX•\ަ
ƒXƒŒƒbƒh‚ÌŒŸõ
—ÞŽ—ƒXƒŒˆê——
˜b‘è‚̃jƒ…[ƒX
‚¨‚Ü‚©‚¹ƒŠƒXƒg
¥ƒIƒvƒVƒ‡ƒ“‚ð•\ަ
‰É‚‚Ԃµ2ch

5399“ú‘O‚ÉXV/160 KB
’S“–:undef