ySҽ}zC/C++ ..
179:ftHg̼³µ³ń
10/03/25 13:17:03
>>177
deleteĢĘ«ÉhogeÉµĢŽ¼ŽŖøÄŖ¶Ż·éĘ«ĢŻfXgN^ŖÄĪźéę¤Hv·é±ĘĶoȢŵ天
āĶčf¼É1ń̲ĘÉnewĘdeletešJčŌµ½ūŖĒ³»¤Å·ĖA čŖĘ¤äĄ¢Üµ½
180:ftHg̼³µ³ń
10/03/25 13:34:25
void *v = ::operator new (sizeof(Hoge));
T *p = new (v) T;
p->~T();
operator delete (p, v);
p = new (p) T;
p->~T();
operator delete (p, v);
::operator delete (v);
»źÉµÄąČńÅ
delete (v) p;
ĮÄÆČ¢ń¾ė¤Č
placement new/deleteÖWĶdlŖČń©Cæ«¢
181:ftHg̼³µ³ń
10/03/25 13:36:02
>>179
NŖ~µ¢ĢĶ boost::optional ©ąµźČ¢B
182:ftHg̼³µ³ń
10/03/25 17:57:19
>>175
newĶ»ńČÉxČ¢B
vectorŖ»źāĮÄé©ēB
vector<T> hoge(1);//placement new³źéB
hoge.resize(0); //fXgN^ŖÄĪźéB
hoge.resize(1);//placement new³źéB
//XR[v©ēoźĪčÉfXgN^ŖÄĪźéB
183:ftHg̼³µ³ń
10/03/25 18:15:41
ńPOD^É
T *p = new (v) T;
ĮÄs”¢ń¶įČ©Į½Hzu\¶ČńÄ Üčgķń©ēØį¢¾Į½ē·Üń
184:ftHg̼³µ³ń
10/03/25 18:25:03
POD¶įČÄąāčČ¢ę
185:ftHg̼³µ³ń
10/03/25 18:27:38
ĄŪplacement newĘŹĢnewĮÄĒĢ碬xæŖ¤ńH
N©_lmēČ¢H
186:ftHg̼³µ³ń
10/03/25 18:44:42
PÉl¦Ä(placement new/deleteĢń*¶mŪ/JśÉ©©éŌ)ĢŖ¾Æ¬Čé
¶¬jüµÜéźĶXQ[¬ČéÆĒA»¤ÅČ¢źĶŁŚ³Ó”
187:ftHg̼³µ³ń
10/03/25 18:49:22
tɾ¦Ī¶¬jüµÜéČēČéń¾ęĖH
¤µAæåĮĘĄŖµÄéB čŖĘ¤B
188:ftHg̼³µ³ń
10/03/25 18:49:40
>>184
źAǤ¢¤Ę«s”¢ń¾ĮÆEEE
189:ftHg̼³µ³ń
10/03/26 19:15:46
>>188
ACgĢāč®ē¢¶įĖH
190:ftHg̼³µ³ń
10/03/26 20:10:02
ąµÜø¢_Ŗ éʵ½ē
zńšoperator new()ĘzunewšgĮÄmŪµ½ąĢÉεÄ
delete[]šg¦Č¢AĘ©»¤¢¤_B
191:ftHg̼³µ³ń
10/03/26 20:13:46
>>190
»źĶnewĢąīĶÆ¶¾ęĖ
192:ftHg̼³µ³ń
10/03/26 20:28:29
C++0xĢunionÅńPOD`Ŗg¦éę¤ÉČéĢĶplacement newšg¤½ßČĢ©ČH
”ÜÅĶboost::variantĢę¤Č±Ęš·éÉĶzńÅĢęęĮĽÆĒunionÅACgĢāčą³ČPÉg¦élÉČéĢ©H
193:ftHg̼³µ³ń
10/03/26 20:37:45
D&EęOÅŖC++0xŖo½ćÅoųźéęČ
194:ftHg̼³µ³ń
10/03/26 20:50:24
>>191
unewZqvĶAoperator new()ÅĢęšmŪµ
RXgN^šÄŃoµÄś»·é±ĘŖÜĮÄéń¶įČ©Į½©ČB
KiĒńÅČ¢©ēmēńÆĒB
ąµ»¤ČēA»Ģū@ÅmŪµ½IuWFNgšdeleteÅšś·é±Ęą³ź»¤¾ŖB
KiĒńÅČ¢©ēmēńÆĒB
ܽAČĘą
p = new T();
p->~T();
new (p) T();
µ½ąĢÉεÄĶ
delete p;
ĶåävČń¶įČ©Į½©ČB
Ki(ry
195:ftHg̼³µ³ń
10/03/26 20:54:41
>>194
¢ā“Ŗ¾ĮÄéĢĶuzńnewvą¶ŻµČ¢ĖAĘ¢¤
196:ftHg̼³µ³ń
10/03/26 20:55:40
¾¢ūŖÜø¢Č
new A[]; Ę©ĶoéÆĒAÄŃo¹éĢĶftHgRXgN^ĢŻ
ųt«RXgN^ĶÄŃo¹Č¢
197:ftHg̼³µ³ń
10/03/26 22:00:43
operator new/deleteĢI[o[[hĘ©placement new/deleteͽÜÉg¤ÆĒ»źĢzńÅĶźxągĮ½Č¢“UM
Ę¢¤©RpCÅ®Ŗį¤µAOObÄądlŖĒšēńµÅśß½
198:ftHg̼³µ³ń
10/03/26 22:54:00
AP[^Ģ©ģĶšŖ[Č¢ĘåĻȱĘÉČé©ē|¢ęĖ
199:ftHg̼³µ³ń
10/03/26 22:56:32
VC¾Ęvfši[·éŖ¾Æ]ŖÉmŪµÄA
»ĢĢAhXšŌ·ń¾ĮÆ
200:ftHg̼³µ³ń
10/03/26 22:57:02
AP[^Ģ©ģČńÄ{ÉKv©Ē¤©
³ń“ńᔵē„IÉyŃÉČé×µB
201:ftHg̼³µ³ń
10/03/26 23:07:45
Scoped AllocatorČēgŻŻÅąg¦»¤Č\“
202:ftHg̼³µ³ń
10/03/27 02:28:15
>>199
gccą»ńȾĮ½Ķø
ĘPODĢĘ«ĶvfĢęšm۵ȢƩ Į½CŖ·é
203:ftHg̼³µ³ń
10/03/27 06:41:37
POD¶įČ¢ÆĒfXgN^ŖČ¢źĮÄǤČń¾ėH
m©ß½³¢ā
204:ftHg̼³µ³ń
10/03/27 06:51:18
placement newĢfXgN^ŖČ¢źHNXŖ®IÉĢęšmŪ·é
ضįČÆźĪfXgN^šÓ}IÉÄŃo³ČÄąĄQĶČ©Į½Ęv¤
§³źČ¢ÆĒ
205:ftHg̼³µ³ń
10/03/27 06:55:36
±ńČ“¶©
class A {
int i;
};
class B {
int* p;
public:
B() : p(new int[100]) {}
~B() { delete[] p; }
};
int main()
{
char c[1000];
A* ap = new (c) A;
// ap->~A(); // ³ÄąĄQĶČ¢
B* bp = new (c) B;
bp->~B(); // Č¢Ę[N·é
}
206:ftHg̼³µ³ń
10/03/27 07:29:32
¢āA»¤¢¤b¶įČÄA
zńnewÅvfši[·éĢĶfXgN^ÄŌ[v̽߾©ē
inew¤ĶvfŖŖ©éĢÅĮÉKvĶȢ͸j
fXgN^ŖČÆźĪPOD¶įČÄązńnewÅvfŖmŪ·éKR«ĶČ¢ęĖAĘ
Ü mŪµÄąĄQͳ¢©ē©ŖÅzńnewšĄ·éźĶ³šÅmŪ·źĪ¢¢ń¾ÆĒ
ftHgÅĶǤČĮÄńĢ©ČAĘ
207:ftHg̼³µ³ń
10/03/27 08:25:35
>>206
¶į ±¤¢¤©
æČŻÉCodeGuard|ÆÄݽŖ½ĢG[ąoČ©Į½ĢŰē
āčČ¢Ęvķźé
class A {
int i;
};
int main()
{
char c[1000];
A* ap = new (c) A[100];
// ap->~A(); // ČÄąĄQĶČ¢
}
208:ftHg̼³µ³ń
10/03/27 14:09:46
¢āAǤ©Äą>>203Ŗ¾¢½¢ĢĶ
struct NonPod {
@int x;
@NonPod(): x(rand()) {}
@virtual int f() { return x; }
};
ݽ¢ČąĢš
new NonPod[n];
µ½ÉAvfšL^·éĢęšmŪ·é̩Ǥ©A¾ėB
209:ftHg̼³µ³ń
10/03/27 14:11:50
>>208
vfĶL^µČ¢
placement newĢzńÅÅmŪµ½Ģęš delete[] Åšśµę¤Ę·éĘ
@©ē«
210:ftHg̼³µ³ń
10/03/27 14:14:01
¾©ēA>>203ĢÓ}É placement new ĶÖWČ¢ĮÄĢ
211:ftHg̼³µ³ń
10/03/27 14:16:24
>>199,>>202-203̬꾩ēČ
212:ftHg̼³µ³ń
10/03/27 14:17:48
ą¤ŠĘĀB
ĒĢn©ą¾L¹øÉuL^µČ¢vČńľ¢ŲéČB
v¢Į«čn˶¾ĮıĘĶFķ©ĮÄéń¾©ēB
213:ftHg̼³µ³ń
10/03/27 14:19:30
>>212
@©ē«ĮÄKi[É¢Ä é¶įń
Ę¢¤ĶvfĶL^µČ¢
214:ftHg̼³µ³ń
10/03/27 14:33:33
ĶH
215:ftHg̼³µ³ń
10/03/27 14:35:28
>>214
>>209
ØO³ńąŖ«¢Č
216:ftHg̼³µ³ń
10/03/27 14:36:15
ĀÜčAŲ©ē«ĘKi[É¢ÄČ¢źĶ
uvfšKøL^·évĘ¢Ä éĮÄ[Ģ©B
»ą»ą“Ķu¢č`vĘ¢Ä éąĢĶ©½o¦Ŗ éŖ
uŲ©ē«vČńÄ¢Ä éKiĶ©½±Ę³¢ÆĒČB
217:ftHg̼³µ³ń
10/03/27 14:38:35
>>216
¾©ēu¢č`ĢUé¢vundefined behavior¾ĮĀ[Ģ
218:ftHg̼³µ³ń
10/03/27 14:38:59
>>213 Ǥ¢¤ü¾ę
219:ftHg̼³µ³ń
10/03/27 14:39:27
ĀÜč
int * p = new int[n];
¾ĘAvfŖĒ±ÉąL^³źČ¢AĘKiĢDZ©É¢Ä éĢ©H
¾©ē
delete p[] ÅĶČ delete p šµÄą©ÄÓ`®ģÅĶČ¢ĘB
Ó[ńB
220:ftHg̼³µ³ń
10/03/27 14:40:22
>>219
n©
placement newĢzńžƾĮÄé¾ė[Ŗ
Az©
221:ftHg̼³µ³ń
10/03/27 14:42:14
>>213>>216
¢č`ĢUé¢Å é == vfšL^µČ¢
ĮÄ©H
ØŌØÉZńÅ¢éĮÄK¹H
222:ftHg̼³µ³ń
10/03/27 14:44:24
vfšL^µ½ē¢č`ĢUé¢ÉČēČ¢¾ė¤Ŗ
223:ftHg̼³µ³ń
10/03/27 14:45:14
¾¢½¢placement newĶq[vĢęĘͽĢÖWąČ¢¾ė
224:ftHg̼³µ³ń
10/03/27 14:48:42
>>222-223
>>210-211š10ńĒŻ¼µÄݽēǤH
225:ftHg̼³µ³ń
10/03/27 14:49:53
>>222
čÉßtÆéČę
226:ftHg̼³µ³ń
10/03/27 14:54:43
mé©¢
“Ķ ÜÅąplacement newĢzńÅÉĀ¢ÄbšµÄéń¾
227:ftHg̼³µ³ń
10/03/27 15:15:00
¾©ēAÄß[ĶuÅĮ©ēø[[ĮĘvY½±Ęµ©¾ĮÄĖ[ń¾ęB
Äß[u¾ÆvŖYÄń¾ęB
½Ŗu“Ķ ÜÅąv¾B
>>199yŃ>>202-203ÉØ¢ÄA
uoperator new[]()ŖPODĶvfĢĢęšm۵ȢŖńPODĶmŪ·évbŖoÄé
Å>>203Ŗu¶į fXgN^̳¢ńPODČē(operator new[]Ģ®ģĶ)ǤČĮÄ¢éĢ©v
Ę¢¤^āšoµÄ¢éB
ČĢÉ>>204-205¾Ģ>>207¾ĢA®ąųÉ__Ŗķ©ĮÄČ¢«ŻšµÄ¢éB
>>206Åu»¤¶įČÄvĘwE³źÄ¢éÉą©©ķēøAYÜčB
(¾ĮĘŖA>>197-206̬źĢÉ͓̫ŻĶźĀą³¢)
µ©ąAu¢č`®ģÅ évĘĶuvfšL^µČ¢±ĘÅ évĘ¢¤
¼lÉĶšs\ČüÜÅæoµÄB
>>203ĶØ»ēu(KiÅͽąßēźÄ¢Č¢¾ė¤Ŗ)
ĀXĢnÅĶǤČń¾ė¤HvĘ¢¤^āšoµ½¾ÆČĢÉ
čÉuvfšL^·é±ĘŖKiÅßēźÄ¢évĘ¢¤±ĘɵÄB
228:ftHg̼³µ³ń
10/03/27 15:17:21
AŖĢuoperator new[]()Ģ®ģvĘ¢¤ĢĶᤩB
new[]ZqŖuvfŖĢĢęš½ßÉoperator new()Év·évŖ³µ¢©ČB
229:ftHg̼³µ³ń
10/03/27 15:19:50
>>226
”ĒŻŌµÄŻ½ŖA>>206Ŗu»¤¶įČÄvƾĮÄ¢éąeĢ
uzńnewvščÉuzunewvĘĒŻÖ¦ÄČ¢©H
230:ftHg̼³µ³ń
10/03/27 17:01:50
ftHgÅĶǤČĮÄń¾ėAĮÄń¾©ē
¾ē©Éplacement newÅĶČ¢¾ė
231:ftHg̼³µ³ń
10/03/27 20:53:10
ą¾\Ķ̳¢lŌŖĀ¢¤Į©č©Č]æ©Į½č·éĘA
»±ēĢlŌšnn¾ĮÄéē³Č«į¢ÆČ¢©ē½¢Öń¾B
232:ftHg̼³µ³ń
10/03/27 22:35:11
š\ĶŖ«čČ¢zĢūŖnɦȢÆĒ
233:ftHg̼³µ³ń
10/03/27 22:38:41
ĒĮæąĒĮæ¾
234:ftHg̼³µ³ń
10/03/27 22:48:53
³ŹÉvCh¾Æ¢©ē{É×
235:ftHg̼³µ³ń
10/03/27 22:57:20
lšĻ¦ę¤ĘvĮ½ēÜø©ŖŖĻķēÉįČēńę
©ŖŖĻķēøÉ¼lšĻ¦ę¤ĘvĮÄąASN|ÆÄą1~ąĻķēČ¢Ęv¦
236:ftHg̼³µ³ń
10/03/27 23:33:49
Čń©·°[KÉ£čt¢ÄézŖéĖB
237:ftHg̼³µ³ń
10/03/27 23:48:13
Ę¢¤©Ŗ©ĮÄČ¢zPl¾Æ¾ė
l̹¢É·éOÉüčšę©ėĘ
238:ftHg̼³µ³ń
10/03/27 23:52:39
>>229ŖYojSšĖ¢ÄéČ
239:ftHg̼³µ³ń
10/03/28 01:47:39
·ŻÜ¹ńD«˶̿āČĢÅ·Ŗ
longāintĢTCYŖ64bitā32bitÅĻķéįĶę©éĢÅ·Ŗ
shortālong longŖĻķéĄįĮÄ éĢŵ天H
ę뵨袵ܷ
240:ftHg̼³µ³ń
10/03/28 02:21:23
>>239
short Ķ -32,767 ` +32,767 š\»Å«é±ĘŖŪŲ³źÄ¢é Ø 16bit Čć
long long Ķ -9,223,372,036,854,775,807 ` +9,223,372,036,854,775,807 š\»Å«é±ĘŖŪŲ³źÄ¢é Ø 64bit Čć
»źČOĶßēźÄ¢Č¢©ēĻķ驹µźČ¢
ĄįĶcc
short Ŗ4oCgČRpCš©ŖÅģźĪ¢¢
241:ftHg̼³µ³ń
10/03/28 03:30:55
>>203
RXgN^ERs[RXgN^EćüZqšč`µ½NXÅµÄŻ½B
ČĘącodepadĢgccĶAfXgN^ĢL³ĢŻ©ÄéŻ½¢B
URLŲŻø(codepad.org)
242:ftHg̼³µ³ń
10/03/28 03:43:49
>>239
charĢTCYŖ9rbgĘ©32rbgĘ¢¤Ā«ĶĄŻ·éĢÅA½Ōń
shortālong longą»źČčÉĻČTCYÉČéĘv¤B
źŹIČWindows/Linux/MacĢJĀ«ÅĶA64rbg^[QbgÅ ė
¤Ę 16bit shortA64bit long long µ©©½±ĘČ¢ĖB
243:ftHg̼³µ³ń
10/03/28 04:29:53
>>240
>>242
±źĶ¢čܵ½EEE
Ęą źQlÉČčܵ½
čŖĘ¤²“¢Ü·D
244:ftHg̼³µ³ń
10/03/28 08:30:09
¢éEEEĢ©H
stdint.h Ģ int16_t, int64_t šg¦Ī¢¢Ę¢¤bÅĶȢ̩
245:ftHg̼³µ³ń
10/03/28 15:29:14
C++ÅĢmŪÉ¢ij¦Äŗ³¢B
vfŖĻ®·ézńĢņĢ×ĢĢęšcåČmŪ·éʵܷB
f[^1[70]
f[^2[1]
f[^3[36]
f[^4[12]
E
E
E
»µÄ»źēšĒ·éAhXĢzńšģčÜ·B
f[^1ĢJnAhX
f[^2ĢJnAhX
f[^3ĢJnAhX
f[^4ĢJnAhX
E
E
E
±ĢĘ«AĢęmŪĶŠĘĀøĀnewĘ©ÅmŪµ½Ł¤Ŗ¢¢Ģŵ天H
»źĘąåČĢęš©ŖÅmŪµA»ĢÉŌšlßéę¤Éf[^šlßńÅ¢
ĒNXš©ģ·é٤Ŗ¢¢Ģŵ天H
OŅĢŁ¤ŖČP»¤ÅĶ éńÅ·ŖAC++Ģ®ģĢmÆŖ ÜčČÄČŗĢsĄŖ čÜ·B
EcåȱܲÜĘĢęmŪ·é±ĘŽē©Ģ×Ŗ¶µČ¢©H
EąµąKÉmŪoéó«Ģę©ĀÆÄmŪ·éźAŌŖÜĪēÉČĮÄ
@ŖfŠ»³źA{Ā\ČmŪŹęčąmŪoéeŹŖČČĮĵÜķČ¢©H
f[^ĢęĶ©ēÅ«SĀPŹÅmŪµApÉÉĮµ½čAĒĮ·éʵܷB
XµØč¢µÜ·B
246:245
10/03/28 15:32:43
ČØAvectorČĒ̶ŻĶmĮÄ¢éĢÅ·ŖA»ĢźAõµÄ¢éeŹš“¦½źA
ĢęĢÄmŪÉęĮÄf[^ĢAhXŖĻķĮĵܢܷB
vOĶf[^ĢAhXšLƵÄīńšāčęč·éŖŖ½¢ĢÅvectorĶl¦Ä¢Ü¹ńB
247:ftHg̼³µ³ń
10/03/28 15:38:42
>>245
f[^ĶPĘÅnew·źĪ©ÜķČ¢BęĮŪǽ¢źĶv[ČĒšg¤ŖA½¢Ä¢ĢźĶnewÅ«čéB
»±ÖĢ|C^švectorÉŪ·źĪ¢¢B|C^¾ÆšŪ·éČēxN^[ĢL£¶ĢāčĶÖWČČéB
vectorɼŚ|C^šüźéĘdeleteŖŹ|ČĢÅshared_ptršg¤ĢŖy¾B
248:ftHg̼³µ³ń
10/03/28 15:43:19
int main() {
int *p = new int;
cout << p << endl;
p = new int;
cout << p << endl;
delete p;
return 0;
}
ĶŌįĮÄÜ·©H
ÅĢpĶ[NÉČéH
249:ftHg̼³µ³ń
10/03/28 15:46:00
>>248
[N·éB
QńnewÅdeletePń¾©ēmĄB
250:ftHg̼³µ³ń
10/03/28 15:49:13
>>245
f[^ĢvfÉÖ·évīńŖČ¢±ĘÉĶA
newÅ\ŖĘµ©¾¦Č¢B
½¾Avfęč]ŖÉmŪµÄAÜĮ½TCYĢ{ɵ¦é±ĘÅA
źŹIÉĶfŠ»šøē·±ĘĶÅ«éĘv¤B
251:ftHg̼³µ³ń
10/03/28 15:49:15
>>249
¦X čŖĘ¤²“¢Ü·B
ƶĻĶg¢ÜķµµČ¢ĢŖī{Å·©H
252:ftHg̼³µ³ń
10/03/28 15:58:57
>>251
¤ńB
g¢ÜķµÄąźŲbgŖČ¢Ī©č©AĒŻÉ¢µÅK»ĢWQÉČéB
253:245
10/03/28 16:10:23
>>247
L爐“¢Ü·B½¾āĶčsĄČĢĶAOS©ē©ÄvOŖĢ±±©ē±±ÜÅšgpµ½¢Ę\ńinewÅmŪj·éĘv¤ĢÅ·ŖA
»Ģ\ńµ½ĢęĢf[^i±±©ē±±ÜÅjšŪµČ¢Ę¢ÆČ¢Ęv¤ĢÅ·ŖAÅ«SĀĢf[^šmŪ·éźA
OŅÅĶJniAhX{I¹AhXjSĀŖĢščLµÄµÜ¢AćҾĘiJnAhX{I¹AhXjĢźĀĢŻÅĻŻ
OҾƻ꾯ÅKPŹĢĮļµÄµÜķČ¢Ģŵ天H
>>250
L爐“¢Ü·BČéŁĒAį¦ĪvfšPOęŲčÅ»čµÄ»ĢęŲčÅmŪ·é±ĘÉęčA
źxJś³źÄ²ÆÉČĮ½ĢęÉVµ¢f[^Ŗ·ĮŪčĶÜéĀ\«ŖÜéĘ¢¤±ĘÅ·ĖH
QlɵܷB
254:ftHg̼³µ³ń
10/03/28 16:17:03
>>253
q[vĢĒĢę̱ĘHPOOÅąPOK¾µwindowsČēāčČ¢¾ė¤B
»źęčąq[vĢÅåTCYšCɵ½Ł¤ŖĒČ¢©ČB
255:ftHg̼³µ³ń
10/03/28 16:22:51
>>253
ęøĶš¼ÉģĮÄŻ½ē?
»źš®©µÄŻźĪāč_ąęč»čÕ¢¾ė¤µfobKÅǤČǵÄm©š¾ēźé`Xą¦éB
nß©ē«\šŚwµ½ēAfobOĢiKÅńiąOiࢩČČé¼B
256:ftHg̼³µ³ń
10/03/28 16:34:33
f[^ĶćėÉĒĮ·é¾ÆČķÆH
»źČēdequešg¤Ę¢¢ęB
dequeĶćėÉĒĮ·é¾ÆČēĢÄzuĶN±ēČ¢B
257:245
10/03/28 16:48:23
>>256
L爐“¢Ü·B
f[^QĢŌ©ē²¢½čąs¢Ü·ŖAŹĢÓÅĶg¦é©ąmźÜ¹ńB
>>254
>>255
L爐“¢Ü·B
Ą±IĘ¢¤©©ŖĢvOZpĢüćĢ×Ģg[jOšĖÄČŗĢdlɵę¤ĘØą¢Ü·B
Ev[Åå«ČĢęšmŪ·éB
@±ĢĢęš“¦éźĶiKIÉĒĮmŪ·éB
EvfĶTĀAPOĀAPTĀČĒĢPŹÅmŪ·éB
@±źĶJśÉę貯ÉČĮ½Ę±ėÉ·ĮŪčĶÜčā··é½ßB
@ܽv[gpÉęč¼ĢAvP[VÉęéWQŖČČč
@ęčĶÜčā·ČéB
258:ftHg̼³µ³ń
10/03/28 17:05:40
vector<T*> data;
deque<T> pool;
queue<T*> recycle;
špÓµÄA
Ef[^Ķī{IÉpool©ēęĮÄ«ÄdataÉAhXšüźÄg¤
Eg¢IķĮ½f[^Ķdata©ēķµÄrecycleÉAhXšüźé
ErecycleÉf[^ŖcĮÄéźĶpoolš³µÄrecycle©ēdataÉAhXšŚ·
±ńČ“¶Å¢¢ń¶įČ¢
259:ftHg̼³µ³ń
10/03/28 17:14:24
v[ĮÄÄp»·éęčŚIŹÉŖŠĖĮÄ»ĢĀĒÅK»µ½ūŖĒĖH
260:ftHg̼³µ³ń
10/03/28 17:15:09
>>257
Zpšüć³¹½¢Ęv¤ČēęɱźšĒńÅØÆB
WikipediaŚŲŻø
sĄāzšąĘÉR[hš”G»³¹éĢĶDź½ZpŅĢ·é±ĘÅĶČ¢B
261:ftHg̼³µ³ń
10/03/28 17:18:00
Lļ¤Ę¾¢ČŖēA>255š³µÄÄΦéB
262:ftHg̼³µ³ń
10/03/28 17:18:46
SPŹÅnew/deleteŖpÉÉsķź½ē»čį·ÜÅąČptH[}Xæéķ
263:ftHg̼³µ³ń
10/03/28 23:09:23
¾¢½¢A½šwKµ½Ä»ńČąńģė¤ĘvĮ½Ģ©
SĢI[_[¾ĘA]XęčX|XĢŁ¤ŖāčÉČ軤¾Ŗ
264:ftHg̼³µ³ń
10/03/29 10:22:58
SPŹÅnew/deletešpÉÉs¤vOĮĽH
DZ©ĢlCT[o[ÅąµĮÄńĢ©ČH
265:ftHg̼³µ³ń
10/03/29 13:26:29
vRpCĻŻwb_[šg¤ŪAÉ
defineÅgŖĻ»·éev[gšüźÄą
āčȢŵ天H
āĶčĒŻŻūÉęĮÄĶāč čH
266:ftHg̼³µ³ń
10/03/29 19:04:37
newÉεÄdelete[]͵æį¢ÆČ¢ąĢH
ąµĶ|C^Ģgš½ē©Ģū@ÅPĢ©zń©ęŹ·éū@ͳ¢ąĢÅ·©H
267:ftHg̼³µ³ń
10/03/29 19:10:31
RpCOÉm[}new/deleatešzńnew/deleteÉu·¦éXNvgē¹źĪ¢¢B
268:ftHg̼³µ³ń
10/03/29 19:10:40
>>266
PĢČēX}[g|C^šAzńČēSTLReišg¦Ī»ńČSzĶvčܹńB
Ā[©AJavaScriptĢ«²ĢÄ»ÉČé©ē|CgęŖzń©Ē¤©š»č·éČńıĘĶl¦Č¢ūŖ¢¢B
269:ftHg̼³µ³ń
10/03/29 19:11:21
>>266
> newÉεÄdelete[]͵æį¢ÆČ¢ąĢH
¾ßB¢č`Ģ®ģB@©ē«Ŗo驹B
> ąµĶ|C^Ģgš½ē©Ģū@ÅPĢ©zń©ęŹ·éū@ͳ¢ąĢÅ·©H
Č¢B
T* p = new T;
T* p = new T[10];
T a(0);
T* p = &a;
pŖ±Ģ3ĀĢĒźČĢ©·ē»čsĀ\B
270:ftHg̼³µ³ń
10/03/29 19:14:08
> zńČēSTLReišg¦Ī
boost::shared_arrayĮÄĢą éŗęI
271:ftHg̼³µ³ń
10/03/29 22:05:27
boostĢv[ĮÄZßÄĘ騫čČČĮ½ēܽZßÄĘéØÜĘßÄjüĮĵÄéĢH
ÅćĢÜĘßÄjüšµČ©Į½ēXĘHtµÄ¢Ģ©ČH
272:ftHg̼³µ³ń
10/03/29 22:10:18
make_sieveąĢfree(sieve)ÅŹńÆĒ½Ŗ“öH
URLŲŻø(kansai2channeler.hp.infoseek.co.jp)
Ā«
RpCFVS2008
OSFXP SP3
»Ģ¼FBCC¾ĘG[šf©Č¢
”CĆ¢½ÆĒI¹ÉprimesšJśµÄČ¢ĢĶCɵȢÅEEE
273:ftHg̼³µ³ń
10/03/29 22:40:24
>>272
Error 00001. 0x130610 (Thread 0x0EEC):
Access overrun: Attempt to access 4 byte(s) at 0x00B8F550+4000, that is at
offset 0+4000 in heap block 0x00B8F550 which is only 4001 bytes long.
| sieve1.c line 27:
| if(sieve==NULL) exit(1);
|
|> for(i=0;i<=limit;i++) sieve[i]=0;
| for(i=4;i<=limit;i+=2) sieve[i]=1;
| for(i=3;i<=limit/2;i+=2){
Call Tree:
0x0040123C(=sieve1.exe:0x01:00023C) sieve1.c#27
0x004011A3(=sieve1.exe:0x01:0001A3) sieve1.c#13
0x32AD8D9E(=CC32100MT.DLL:0x01:0D7D9E)
The memory block (0x00B8F550) [size: 4001 bytes] was allocated with malloc
| sieve1.c line 24:
| void make_sieve(int limit){
| int i,j,idx,cnt;
|> int *sieve=(int*)malloc(sizeof(int)*limit+1);
| if(sieve==NULL) exit(1);
|
Call Tree:
0x0040121A(=sieve1.exe:0x01:00021A) sieve1.c#24
0x004011A3(=sieve1.exe:0x01:0001A3) sieve1.c#13
0x32AD8D9E(=CC32100MT.DLL:0x01:0D7D9E)
Čń©źtG[oé
ĶĶOšANZXµÄéŻ½¢¾Ė
274:ftHg̼³µ³ń
10/03/29 22:41:25
Ķ[ń
malloc(sizeof(int)*(limit+1));@ĢŌᢶįĖ[ĢH
275:ftHg̼³µ³ń
10/03/29 22:47:02
int x = 0xXXXXXXXX;
unsigned int y = static_cast<unsigned int>(x);
±ĢLXgÅÅćŹrbgĶWÅKøŪ³źÜ·©H
276:ftHg̼³µ³ń
10/03/29 22:59:13
>>273-274
»ź¾IIwE³źéÜÅCƩȩĮ½“Az·¬é
TNX
277:ftHg̼³µ³ń
10/03/29 23:27:22
>>265
vRpCwb_[šCN[h·éOÉAÓ”Ģ é¶š¢Ä;ßB
¾©ēdefineÉęéĻXĶūȢB
278:ftHg̼³µ³ń
10/03/29 23:49:30
>>265
į¦ĪVCÅͱńȧĄŖ éB
URLŲŻø(msdn.microsoft.com)
definešĻX·é½ŃvRpCšā輹΢¢ń¶įČ¢H
279:ftHg̼³µ³ń
10/03/29 23:55:26
Źl¾Ŗ”XB
ĀÜčvRpCwb_š”pÓµėAĘH
280:ftHg̼³µ³ń
10/03/30 01:14:17
vRpCg¤ĢšāßéĘ¢¤ū@ą é
281:ftHg̼³µ³ń
10/03/30 01:41:18
vWFNgĢtH_\¬Å¢¢āčūČ¢©Č
boostš}lµę¤©ĘvĮ½ÆĒ\[X©ÄąboostŖĒ¤¢¤[ÅāĮÄéĢ©ķ©ēń©Į½EEE
282:ftHg̼³µ³ń
10/03/30 02:11:54
>>281 ”ŖĒńČ\¬ÅA»źĢ½ŖCÉüēȢ̩q×ęB
283:ftHg̼³µ³ń
10/03/30 15:53:11
WindowsÅCPUĢügšę¾·éū@š³¦Ä¾³¢
284:ftHg̼³µ³ń
10/03/30 16:20:33
T& GetT();
T const& GetT()
±Ģę¤ÉŅŻŹŽÖĢŌčlŖconstĘńconstĢI[o[[hĶĀ\ČĢŵ天H
285:ftHg̼³µ³ń
10/03/30 19:31:15
T& GetT();
T const& GetT() const;
±źČēĀ\B
obj.GetT() ʵÄ
objŖconstČēĪćŅŖA
»¤ÅČÆźĪOŅŖÄĪźéB
286:ftHg̼³µ³ń
10/03/30 21:07:04
>>277-278
āĶčāčŖ č»¤Å·ĖB
ĄŪgĮÄéĢĶBCBČńÅAVCš^µÄ
źpĢwb_[ģĮÄÆźÉČéę¤ÉµĘ«Ü·B
čŖĘ¤B
287:ftHg̼³µ³ń
10/03/30 22:07:09
char (*a)[4] = new char[10][4];
ĢdeleteĶdelete(a)A»źĘądelete [] (a)?
©Ŗdelete [] (a)Ęv¤ń¾ÆĒAǤH
delete(a)¾Ę[NÉČēČ¢ĢH@±źÅąSÄJś³źéĢ
288:ftHg̼³µ³ń
10/03/31 00:52:34
>>287
delete[]šg¢Üµå¤
new char[10][4]; Ģ10ĶĻÅąęAchar (*)[4]AĀÜčchar^Ģ
vf4ĢzńÖĢ|C^šzńmŪ·éZqČĢÅAdeleteĶ
[]štÆČ¢Ę[NµÜ·AĘ¢¤ęč¢č`Ģ®ģÅ·
289:ftHg̼³µ³ń
10/03/31 17:26:59
C/C++ÉĀ¢Äī{IČ©ąµźÜ¹ńŖA|C^ĘzńÉ¢Ŀ⳹ĺ³¢B
int[] a;
int* p1 = a;
Ķķ©éĢÅ·ŖA
int* p2, p3;
p2 = a;
*p3 = a;
Ģᢪ¢ÜŠĘĀĶĮ«čšÅ«Ü¹ńB
ܽAĢę¤Éµ½A|C^ĶDZĢAhXšw·Ģ©zŖĀ«Ü¹ńd
p2 = &a;
*p3 = &a;
ęėµäwģĢŁĒØč¢¢½µÜ·B
290:ftHg̼³µ³ń
10/03/31 18:12:46
>>289
aŖint^Ģzń¾ĘµÄA
p2ĶaĢAhXšintĢ|C^©ēANZXÅ«éę¤É
Rs[µÄ¢é³ķČLqB
*p3ĶAmŪą³źÄ¢Č¢Ē±©ĢĢęšw·sčČ|C^ÉAa©ēę¾Å«éAhXlš
«ńÅ¢és³ČLqB
&aĢūĶA½ŖnŖc¬µÄ¢éDZ©ĢAhXš»ź¼źRs[µ½č
s³Č«Żšµę¤ĘµÄ¢éĮÄ¢¤©
291:ftHg̼³µ³ń
10/03/31 18:16:07
int *p2 ,p3
ĮÄint^Īß²ŻĄp2Ęint^Ļp3ĢmŪ¶įČ¢©H
292:ftHg̼³µ³ń
10/03/31 18:20:08
>>289
»ĢR[hĶA¢Ā©RpCŖŹēČ¢Ę±ėŖ éB
> int* p2, p3;
ʱźąp2ŖintÖĢ|C^Ap3ŖintÉČéC/C++Ģć©B
p2 = a;
|C^Ŗw·AhXšĻ¦éĢͱźB
p2 = &a;
±źĶ|C^ÖĢ|C^ݽ¢Č±ĘÉČéB
*p3Ģę¤ÉŌŚQĘZqšĀÆéĘA|C^Ŗw·AhXšQĘ·éB
ĀÜčA*p3=aĢę¤ČćüĶA|C^ĢAhXšĻ¦éĢÅĶČA|C^Ŗw·(Ļ)ĢlšĻ¦éÉČéB
293:ftHg̼³µ³ń
10/03/31 18:50:32
>>289
ī{IČĘOu«Ŗ čA½ÜÉėšµÄo¦ÄélAܽŌįĮ½ą¾š·élŖ¢éĢÅ
O̽ßĀ¢ÅɢĨĘA C/C++ ÉĶAį¦Ī uintĢ|C^["^"v Ģę¤ČØĶ¶ŻµČ¢B±źdvB
ÜÅAuint ʵĵķźéADZ©ĢĢęšw·|C^v Å ĮÄA±źĶ^¶įČ¢B
ĀÜčĒŻūʵÄA»ĢįĶ uint*v Ģ up2v ÅČAuintv Ģ u*p2vB
ĄŪĢp@ÉĀ¢ÄĶ >>292 ĢXšQʵĹē¤ĘµÄAVkS¾ÆĒµÄØĘA
»ą»ąĻĢé¾ĶA
@int x;
Ę Į½Ę«AÅĢ int Ķiį¦Ī®Ŗ32bit¾Ę·éĘjAuintʵĵ¤ASoCgĢĢęv Ę¢¤Ó”ŵ©ČA
ܾ±ĢuŌÉĶØIÉDZ©ĢAhXÉͽąmŪ³źÄ¢Č¢B@»µÄÉ x ĘAϼŖ½Ę«A
DZ©ÉŖSoCgŖmŪ³źA»źš ēķ·¼OĘµÄ x ŖčÄēźÄ¢éAĘ¢¤®«ÉČéB
±źš„ܦÄA
@int *y;
ĶAÅĢ int Å int ʵĵ¤4oCgĢĢęĘ¢¤^Ŗé¾³źA»ĢĢ * ĶAChJ[hĢ * ƽӔÅA
uDZ©ĢAhXv Ę¢¤Óvš\µÄ¢éB ĀÜč int * ¾B
ÅAµ©µ±ź¾Æ¾Ę¬ĪÉ»Ģ㵦ȢĢÅA»Ģűź©ĢɼOšßÄ¢éB±źŖ y B
»ńČóÅA±ĢįĢźA^ʵÄĶ ÜÅ intB@»µÄĻʵÄA»źĶ|C^Ęé¾³źÄ¢éĮÄÓ”ĢLqÉČé©ēA
@int* z; @ÅĶČA@int *z;@ÅČÆźĪČēČ¢B@±ńČībB
294:ftHg̼³µ³ń
10/03/31 18:56:39
ą¤źĀĒLµÄØĘAĀÜč
int x; @ĶADZ©ØIČi[ęŖčÄēź½ąĢÅA»źšw·¼OŖ x Ę¢¤Ó”Å čA
int *y;@ĶADZ¾©ķ©ēČ¢iĒ±Åą¢¢ = *ji[ꚦ·ąĢÅA»źšw·¼OŖ y ĮÄB
»µÄĒæē©ą^ʵÄĶ int B@EEEĮÄA
ÅąĄŪÉĶ int Ģ|C^[^@ݽ¢Éµ¦Č¢ĘsÖČĢÅAÜéÅ^Ģę¤ÉUĮÄĶ¢éń¾ÆĒBLXgĘ©B
295:ftHg̼³µ³ń
10/03/31 18:58:08
dlÉpointer typeĶoīܷŖB
296:ftHg̼³µ³ń
10/03/31 19:02:50
©EµÄé
297:ftHg̼³µ³ń
10/03/31 19:03:07
C++ÅĶ
int[] a;
\LOKÉČĮ½ń¾
±źĶintzńšw·|C^ aš\·ĢH
ܳ©QʶįČ¢ęĖ
298:ftHg̼³µ³ń
10/03/31 19:05:23
JavaL¢Č
299:ftHg̼³µ³ń
10/03/31 19:07:03
DZ©ĢXÅu|C^vĘu|C^Ŗw·ęvšuó Ģn}vĘuó vÅšąµÄ¢éĢšv¢oµ½B
int x; // uint^Ģó v
int* y; // uint^Ģó vĢn}
y = &x; // &ÅxĢn}šę¾µÄyÉćü
*y = 10; // n}Å éyŖw·ó ÖĢćü
300:ftHg̼³µ³ń
10/03/31 19:25:24
>>293 ^Ŗ³¢ĮÄf¾µæį¤ĢĶ ź¾ÆĒAå̾¢½¢±ĘĶĮÄéB
½X^ĢA½X@ĮÄL@ÅA½XϼĢūšCü·éEEEį¦Ī|C^š ēķ·*āzńš\·[5] Ģę¤ČąĢĶA
ČńľĮ½ē¢¢Ģ©ČEEE@^Ģé¾Ŗ2i\¦ÉČĮÄéę¤ČC[WÅØ¦źĪ¢¢ń¶įČ¢©ČB
½¾JavaāC#Ģę¤Č¾źĢźĶA»ĢÓ·Į«čÜĘßÄSƶę¤Č^ʵæį¤XüŖ é©ēA
»ĮæĘ¬Æ·éʬ·éĀ\«Ķ éę¤ČCŖ·é
301:ftHg̼³µ³ń
10/03/31 23:11:53
>>288
čŖĘ¤²“¢Ü·BāĮĻ軤ŷęĖB
>vf4ĢzńÖĢ|C^šzńmŪ·éZqČĢÅ
ZqĶĒźš¾ĮÄ¢éńÅ·©H
302:ftHg̼³µ³ń
10/04/01 00:09:46
>>301
unewvZq
303:ftHg̼³µ³ń
10/04/01 01:26:50
>293
^ÉĀ¢ÄŌįĮÄéęB
C/C++ÅĶA éÆŹqĢ^ĶA»Ģé¾©ēÆŹqšČ¢½ąĢĘč`³źÄ¢éB
¾©ēČŗĢę¤ÉČéB
int i;@@=> iĢ^Ķint
int *p; => pĢ^Ķint*
int a[10]; =>aĢ^Ķint[10]
ĘĻĢé¾(©Āč`)ÉĀ¢ÄĢą¾ąėčBč`³ź½_ÅĶmŪ³źéB
é¾Ģą¾ąoLŚ·¬éBČŗł³Åš°éB
@int x;
uintʵĵ¤Ģęv ŖmŪ³źéBautoĻČēAlĶS~B
@int *y;
uint*ʵĵ¤AĢęv ŖmŪ³źéBautoĻČēAlĶS~BĀÜčoLŚČʱėšwµÄ¢éB
304:ftHg̼³µ³ń
10/04/01 13:25:00
éNXšĄ·é½ß¾ÆÉg¤wpNXŖ Į½ĘµÄAŹÉl¦éĘ
namespace{ class HelperClass {...}; }
šĄµ½¢NXĢ\[XĢŖēÖńÉĘv¤ń¾ÆĒA±źšt@CŖµ½¢źĒ¤·źĪ¢¢¾ė¤©
305:ftHg̼³µ³ń
10/04/01 13:46:09
>>304 namespace detail
306:ftHg̼³µ³ń
10/04/01 14:39:16
WinAPIĢRectangleĮÄright-left<=0ĢźĮÄ¢č`H
307:ftHg̼³µ³ń
10/04/02 07:52:17
Rs
[^¾źš½©o¦½Äįu¤øµĀĀąAźą„Żo¹Ä¢Č¢SŅÅ·B
āĮĻčC©ČĘv¢A±±ÉĢܷB”ĶĮÉģč½¢ąĢŖČ¢ńÅ·ŖA
vOŖÆéę¤ÉČĮ½ēāč½¢±ĘĶņR 軤ŷB
×̽ßÉAPOŖē¢Åo»¤ČūKāčšoµÄźÜ¹ń©H
`x[VŖ Ŗč»¤Å·B
308:ftHg̼³µ³ń
10/04/02 08:09:37
TopCoderÅąāź
é¢ĶICPCĢßāTµoµÄāź
309:ftHg̼³µ³ń
10/04/02 08:17:07
SŅŖ¢«Č軟ĶǤ©Ęv¤
1-nÜÅ«·vO
¶ńštÉ·évO
D«Č٤šĒ¤¼
310:ftHg̼³µ³ń
10/04/02 08:28:27
>>308
URLŲŻø(www.acm-japan.org)
±ńČāĀÅ·ĖB
½µ©ÉŹ»¤Å·ĖB
āĮ½ēYķµÄ¢½¾ÆÜ·©H
311:ftHg̼³µ³ń
10/04/02 12:05:24
class Foo{
Hoge* hoge
}
±ĢhogeɽŌIÉvfš½¹½¢ĢÅ·Ŗ
templatešĀ©¤©ARXgN^ÉvfšµÄ¢³¹é©ĒæēŖę¢Åµå¤©H
312:ftHg̼³µ³ń
10/04/02 12:25:24
>>311
|C^ĶX}|ɵ½Ł¤Ŗ¢¢
template¾Į½ēhogeš|C^É·éKvŖ³¢ČB
313:ftHg̼³µ³ń
10/04/02 15:00:21
·ŻÜ¹ńAl¦ū̮𵽢Ģſ⳹ĺ³¢B
©ŖĶiAJava Ę C# šCÉJµÄ¢éŅČĢÅ·ŖAļ”ĢĶĶÅ C/C++ š^ŹŚÉ
g¢½¢Ęv¢A±±µĪēøĮĘך±ÆÄ¢Ü·B
æāąeĶAuC++ ž¤NX"¼" ĶAC ž¤\¢ĢĢ^O¼ĘƶئūÅ¢¢Ģ©v@Å·B
ļĢIɾ¤ĘAC(/C++) Ģ\¢ĢÉĀ¢ÄA»Ż©ŖĶ±Ģę¤ÉئĢܷB
@struct { ąe } ϼA, ϼBG ĶA»Ģąeš\¢ĘµÄĮ½”ĢĢę¤ČĻʵÄA龵ĢéBæå¤ĒA
@int ϼA, ϼB;@ÅĢA^¼ int ĢŖŖA{ ąe } Ģ`Å\»³źÄ¢éę¤ČóŌB
@»µÄĄŪĢL@ʵÄĶA»źŖ\¢ĢĢé¾Å éš¾¦·é½ßAstruct ĘÅÉ¢ÄRpCÉ`¦Ä¢éB
@³ēÉA Ęű̯¶\¢šÄxpµ½¢iVµ¢Ļšg¢½¢jźÉõ¦A
@±±ÉźÅƶąeš¦·×Ģ u^O¼v@šA±ĘąoéB@»µÄ»źĶA
@struct ^O¼ { ąe } ϼA, ϼB; ĘA éA
@struct ^O¼ ϼC;@Ģę¤ÉµÄČÕÉg¤±ĘŖoéB
@ÅAC++ ÉČĮÄ©ē±ĢÄxé¾·éŪĢ struct Ģź¶ĶČŖÅ«éę¤ÉČĮ½ĢÅA
@ÜéÅ Java ā C# ž¤NX¼Ģę¤É©¦Ä¢éÆĒA@ĄĶ±źĶ³XÄÄŃoµĢ×ĢA^O¼¾Į½B
»µÄAC++ ÉČĮÄ”xĶęčd|ÆĢg£³ź½ class Ŗoźµ½ŖA±ĢĢ
@class ¼O { ąe } ϼ;
É é "¼O" ĢŖĶAćLšÉ é^O¼ĘÆlÉØ¦ÄآĢ¢ńŵ天AĘ¢¤Å·B
ę뵨袢½µÜ·B
314:313
10/04/02 15:02:41
ėššµ«»¤Č\Lšµ½ĢÅł³µÜ·
~ĄĶ±źĶ³XÄÄŃoµĢ×ĢA^O¼¾Į½B
ĄĶ±źĶ³XÄxé¾·éŪÉLqšČŖ·é×ĢA^O¼¾Į½B
315:ftHg̼³µ³ń
10/04/02 15:25:13
>>313
“ą»ńČ“¶ÉšµÄ½B±¤¢¤LqŖoéó¾©ēČ
class Foo {
@public:
@void bar() {
@@class { public: int add(int x, int y) { return x + y; } } calc;
@@int a = 1;
@@int b = 2;
@@printf("%d", calc.add(a, b));
@}
};
µ§ÉƶČĢ©AÉĀ¢ÄĶ šęēȢƩg³¢Ŗ
316:ftHg̼³µ³ń
10/04/02 15:33:35
[l¦·¬BS^¾ęB
int^Afloat^Astruct foo^Aclass bar^
int ĮÄĢĶgŻŻĢ^
class bigintĘÆĪ©ŖÅbigintĘ¢¤^šč`Å«éB
int a = 0;
bigint b = 0;
317:313
10/04/02 15:47:49
>>315-316
X čŖĘ¤²“¢Ü·B»ą»ąCÉČĮ½«Į©ÆŖAC/C++ Å̱Ģ\¶š©½¹¢ČĢÅ·B
@class ¼O {
@@ąe
@} Ļ;
Java ā C# ÅĢ“o¾ĘA±ĢŹuÉ "Ļ" ŖéĢŖšoܹńŵ½B
»µÄ»źÅg¦éĮÄA¢Į½¢RpCͱźšĒ¤šßµÄéĢH@Ę^āÉvĮ½Ŗ«Į©ÆÅµ½B
źA>>316 ³ńŖ¾¤ę¤ÉAu»źĶ»¤¢¤^BS½¾Ģ^¾v Ķķ©éĢÅ·ŖA
ćLĢ_ÅAǤ¾¤Ó}űĢę¤Č\¶ÉČĮÄ¢éĢ©šÅ«øA»Ģ×FX²×½A
C ÅĢ struct Ŗ >>313 É éę¤Čąe¾ĘmčA»źČēĪ C++ Ŧ½ class ÉĀ¢ÄąÆlČĢ©ČĘv¢Üµ½B
ćLĢ\¶©ēAu½¾Ģ^¾v ÅĶBÉvĮĵܤŖ čAæā³¹Äø«Üµ½B·ŻÜ¹ńB
318:ftHg̼³µ³ń
10/04/02 15:57:04
CĘC++Åᢪ é©ē»Ģeæ©ČB
struct@xx@{@@...@}@;
typedef@struct@xx@xx;@//@C++ÅͱźŖČŖÅ«éB
xx@v;
319:ftHg̼³µ³ń
10/04/02 16:06:19
>>317
C++ÅĶstructĘclassĶŁĘńĒÆ¶ĮÄĢĶmĮÄéH
į¢ĶoĢANZXwčš¾¦µČ¢Ę«ĢftHŖstructĶpublicAclassĶprivateĮľÆB
320:313
10/04/02 16:26:55
X čŖĘ¤²“¢Ü·B
>>318
typedef struct { ąe } ¼O;
¼O v;
ČēA»ĢÜܼOĢč`ÉČéĢÅķ©éĢÅ·ŖA
struct Ģ^O¼Ę class ĢNX¼Ę¾ķźÄ¢éźĢ¼OÉĀ¢ÄAƶ©Ē¤©ŖCÉČĮ½ĢÅ·B
>>319
æāÉą©¹Ä¢½¾«Üµ½ŖA޵믶©Ē¤©šm轩Į½ĢÅ·B
ÅĶĻȾ¢ū©ąµźÜ¹ńŖAƶĘvĮÄ¢¢ķÆÅ·ĖB
½¾AC++ ÉĻķĮÄu^O¼vĘ¢¤¾¢\µūĶA½¾ĢCć©ēĢKV[Ęv¦Ī¢¢Ę¢¤“¶Åµå¤©B
321:ftHg̼³µ³ń
10/04/02 16:50:24
½Ŗ^āČĢ©Ŗ©ēČČĮ½ŖAKićĢbšµ½¢Čē»źĶTagĘ¢¤±ĘÅ¢¢ęB
½¾l¦ūʵÄĶ^¼ÅACĘĢŻ·©ēTagʵÄĢ®«šcµÄ¢éĘl¦Äę¢B
322:313
10/04/02 17:00:48
>>321
čŖĘ¤²“¢Ü·I
½¾l¦ūʵÄĶ^¼ÅACĘĢŻ·©ēTagʵÄĢ®«šcµÄ¢é
±Ģź¾Å·Į«čµÜµ½B
Ę >>315 ³ńĢ calc ĢsĘķ¹ÄA>>319 ³ń̾¤ uŁĘńĒÆ¶v ąķ¹ÄA
·Į«čµÜµ½B@ čŖĘ¤²“¢Üµ½B
323:ftHg̼³µ³ń
10/04/02 17:53:27
ČŗboostÉĶ®Iķqt«Ģń¤LX}|ŖČ¢ĢH
324:ftHg̼³µ³ń
10/04/02 22:32:56
>>323 »źĶNŖÜ¾CuĢńÄšoµÄ¢Č¢©ē¶įČ¢©ĖH
325:ftHg̼³µ³ń
10/04/03 15:29:48
X}[g|C^šg¤Éµė©ģ·éɵė
ßĢ~ĻĘĢ®«šŪĀĢŖŹ|¾µźxg¢o·Ę”ćøĮĘēźé±ĘÉČéµČ
WÅĄ³źÄéČēĘą©A
¢ēboostݽ¢ČL¼ČCuĘĶ¢¦ńWÉ˶·éĢĶæåĮĘįa“ éČĘXv¤
326:ftHg̼³µ³ń
10/04/03 16:49:37
>>325
> ńWÉ˶·éĢĶæåĮĘįa“ éČĘXv¤
OCuąAPI·ēgķČ¢Å
WC/C++ĢĶ;ÆÅ©ź½L¼Č\tgEFAĶ
“ĶźĀąµēń̾ŖB
C/C++ĢĄEÅµå»źĶB
327:ftHg̼³µ³ń
10/04/03 19:02:31
>>326
t[[Nݽ¢Čg¢ūÉČĮæį¤ĮıʶįČ¢H
328:ftHg̼³µ³ń
10/04/04 02:34:35
oĻĢČ¢oÖ¾ÆĢNXĢTCYĶ0Åę¢Ģŵ天H
329:ftHg̼³µ³ń
10/04/04 02:37:59
>>328
»¤ĘĶĄēČ¢B
330:ftHg̼³µ³ń
10/04/04 02:48:38
>>328
C++ÅĶ0ÅĶČ¢ŖKiÅŪŲ³źÄ¢é
Rš·ĘAhXšęé½ß¾Ę
331:ftHg̼³µ³ń
10/04/04 10:28:12
½ĢNXĢTCYŖO¾ĘvĮ½Ģ©
332:ftHg̼³µ³ń
10/04/04 12:02:22
CÅĶóĢ\¢ĢĢTCYŖ0ÉČé©ē¾ė
C++ͼzÖČĒ|C^ÉüźÄg¤g¢ūą éĢÅ
(ąĮĘąvtableČĒųX0ÅĶČ¢©ąµźČ¢Ŗ)óĢ
\¢ĢāNXÅą0ÉĶČēČ¢ę¤ÉŻv³źÄ¢é
333:ftHg̼³µ³ń
10/04/04 12:25:49
>>328
> oĻĢČ¢oÖ¾ÆĢNXĢTCYĶ0Åę¢Ģŵ天H
ŽµėŁŚŌį¢Č0ÉĶČēČ¢±ĘŖŪŲ³źéB
įOĶEBOŖ¢½ĢŻ
334:ftHg̼³µ³ń
10/04/04 12:31:20
¶į óĢ\¢ĢĶCĘC++ÅŻ·«Ŗ³¢Ģ©
335:ftHg̼³µ³ń
10/04/04 12:43:37
( „Ķ„)ĀVæ Ö„`ßÄmĮ½
EBO (Empty Base Optimization)
óĢīźNXĢÅK»B
oĻšźĀą½Č¢AóĢNXAĘ¢¤ąĢŖoé±ĘŖ čÜ·B
µ©µóĢNXÅ ĮÄąAAhXĶźÓÉßČÄĶČēČ¢ĢÅA
izeof( EmptyClass ) Ķ 0 ÉĶČčܹńB
EmptyClass arr[100];
assert( &arr[0] != &arr[1] ); // AhXĶįĮÄÄ~µ¢PĘÅg¤ÉĶ
±Ģ³ŹĶdūĢȢƱėÅ·ŖA į¦Ī±ĢóNX©ē¼ĢNXšh¶
·éĘ«ĶAEmptyClass ĢŖĢTCYĶ 0 ɵÄAh¶NXĢoĻĢ
Ŗ¾ÆšmŪ·éAĘ¢¤ÅK»ŖĀ\Å·B C++ĢKiųźÄ¢é±Ģ
ÅK»Ģ±ĘšAEmpty Base Optimization ĘÄŃÜ·B
336:ftHg̼³µ³ń
10/04/04 12:43:45
>>334
sizeof(óĢ\¢Ģ)Ŗ0ÉČé±ĘŖC¾źĢWKiÅŪŲ³źÄ¢½©Ķ
LÆÉČ¢ÆĒAąµ»¤ČēC++ĘŻ·«Ŗ³¢_ÉČé¾ė¤ĖB
Åąsizeof(óĢ\¢Ģ)==0É˶µ½\[XĮÄĒńČń¾H
337:ftHg̼³µ³ń
10/04/04 16:00:36
>>332
ISO C 6.2.6.1 p2
> Except for bit-fields, objects are composed of contiguous sequences of one or more bytes, ...
C ÅąTCYĶ 0 ÉČēČ¢ęB
338:336
10/04/04 16:14:04
>>337
Ł[B
¶į ޵ėEBOŖĮįÅTCYŖ0ĘČčA
»źČOĶWC/C++ÅĶKø1 or more oCgĶ©©éķÆ¾B@
čŖĘ¤B
339:ftHg̼³µ³ń
10/04/05 00:47:17
struct hoge {};
struct hoge fuga[42];
Å&fuga[0] < &fuga[1]ÅČ¢ĘFXļēĖB
340:ftHg̼³µ³ń
10/04/05 14:34:38
class iface {...};
class impl_a : public iface {...};
impl_a a1, a2, a3(a1); // ok
a1 = a2; // ok
iface &i1 = a1, &i2 = a2; // ok
iface i3, i4(i1); // ng
i1 = i2; // ng
iface̶¬Rs[ćüšÖ~µ½ÜÜimpl_a̶¬Rs[ćüšĀ·éAÄp«Ģ éCfBIĶ čÜ·©H
protectedȶ¬Rs[ćüšifaceɽ¹źĪdlͽ·ĢÅ·Ŗ±źĶÄp«ŖČ
boost::noncopyableÅĶimpl_aąRs[ćüsĀÉČĮĵܤĢŚɢܹńŵ½
341:ftHg̼³µ³ń
10/04/05 17:54:44
©ČA[}üĶū®ŖĒæēČ̩澵½¢ĢÅ·ŖÅ«Ü¹ńBƶlŖķÉoͳźÜ·B
Ǥ·źĪ¢¢Åµå¤©H
ŲčÖ¦©ĢĶÅ«ÄÜ·B
2kXPVista7AOSftHg©Officet®ĢIME
Ų©ĢĶwindows 7 office2007IME VC++2008ExpressŵÄÜ·B
URLŲŻø(codepad.org)
342:ftHg̼³µ³ń
10/04/05 20:30:55
>>340
¶¬·ēsĀɵ½¢ČēC^[tF[XNXÉ·éĘ©©ČH
Ǣ̪v¢Ā©Č¢ĢÅŗÅTµÄB
URLŲŻø(ja.wikibooks.org)
343:ftHg̼³µ³ń
10/04/05 23:01:28
Rs[RXgN^ÅoĻ|C^ĢgšfB[vRs[µę¤Ęv¤ĢÅ·Ŗ
oĻ|C^Ģ^ĢćüZqÉ˶µČ¢fB[vRs[Ģū@ĶȢŵ天H
344:ftHg̼³µ³ń
10/04/05 23:04:54
Hoge(const Hoge &other) : fuga(new Fuga(*other.fuga))
{
}
345:ftHg̼³µ³ń
10/04/05 23:05:54
>>343
> oĻ|C^Ģ^ĢćüZqÉ˶µČ¢fB[vRs[Ģū@ĶȢŵ天H
f¼ÉŹÉCopy ConstructoršĘ»¤ČēČ¢H
ev[gųšT^Ę·éĘA
// Copy Constructor
MyClass(const MyClass& other)
{
pointer = new T(*other.pointer); // pointerͶ|C^ or X}[g|C^^Ę·éB
}
¶į_Čń·©H
346:345
10/04/05 23:06:50
ZqĢDęŹŖsĄÉČĮ½©ēXC³B
// Copy Constructor
MyClass(const MyClass& other)
{
pointer = new T( *( other.pointer ) ); // pointerͶ|C^ or X}[g|C^^Ę·éB
}
¶į_Čń·©H
347:ftHg̼³µ³ń
10/04/05 23:37:38
oĻ|C^ĮÄ A B::*p; Ʃ̱ƩH
¢ÆĒ±źÅǤęB
#include <new>
class A { public: A() {} };
class B {
public:
B() : m_a(operator new(sizeof(A))) { }
~B() { operator delete(m_a); }
A* GetA() { return reinterpret_cast<A*>(m_a); }
const A A1;
const A A2;
const A A3;
void Copy(const A B::*p) {
GetA()->~A();
new (GetA()) A(this->*p);
}
private:
void* m_a;
};
int main() {
B b;
b.Copy(&B::A1);
b.Copy(&B::A2);
b.Copy(&B::A3);
}
348:ftHg̼³µ³ń
10/04/06 00:08:37
oĻ|C^¾ĘŹČӔȱĘɢܳēCŖĀ¢½
|C^^oĢ|CgęĘÅą¢¦Ī¢¢Ģ©ČH
>>346
±źą¾t«ēøÅµ½
Rs[RXgN^āćüZqĢę¤ČčūĢĄÉ˶µČ¢Rs[AĘ¢¤±Ęŵ½
349:ftHg̼³µ³ń
10/04/06 00:50:07
>>340 iface ɼzÖšé¾·éB
y[WÅVX\¦XbhĢõŽXźbčĢj
[XØÜ©¹Xg„IvVš\¦ÉĀŌµ2ch
4059śOÉXV/255 KB
S:undef