y‰SŽÒнŒ}zC/C++Ž ..
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