C++相談室 part46
■ このスレッドは過去ログ倉庫に格納されています
0001v(^・^)v
2006/01/08(日) 12:15:07ただし質問の前にはFAQに一通り目を通してください。
IDE(VC++など)などの使い方の質問はその開発環境のスレに
お願いします。
前スレ
C++相談室 part45
http://pc8.2ch.net/test/read.cgi/tech/1133007604/
0002デフォルトの名無しさん
2006/01/08(日) 12:15:462 http://pc.2ch.net/tech/kako/996/996640937.html
3 http://pc.2ch.net/tech/kako/1003/10038/1003832761.html
4 http://pc.2ch.net/tech/kako/1009/10090/1009071535.html
5 http://pc.2ch.net/tech/kako/1014/10142/1014217496.html
6 http://pc.2ch.net/tech/kako/1018/10184/1018454705.html
7 http://pc.2ch.net/tech/kako/1021/10217/1021787032.html
8 http://pc3.2ch.net/tech/kako/1025/10250/1025010364.html
9 http://pc3.2ch.net/tech/kako/1027/10273/1027347982.html
10 http://pc3.2ch.net/tech/kako/1029/10293/1029315669.html
11 http://pc3.2ch.net/tech/kako/1032/10323/1032345774.html
12 http://pc3.2ch.net/tech/kako/1035/10350/1035005882.html
13 http://pc3.2ch.net/tech/kako/1038/10380/1038031395.html
14 http://pc5.2ch.net/tech/kako/1041/10413/1041328679.html
15 http://pc5.2ch.net/tech/kako/1043/10436/1043605481.html
0003v(^・^)v
2006/01/08(日) 12:16:5817 http://pc5.2ch.net/tech/kako/1047/10475/1047560042.html
18 http://pc5.2ch.net/tech/kako/1050/10501/1050177746.html
19 http://pc5.2ch.net/tech/kako/1052/10526/1052625846.html
20 http://pc5.2ch.net/tech/kako/1055/10551/1055162298.html
21 http://pc5.2ch.net/tech/kako/1057/10575/1057580107.html
22 http://pc5.2ch.net/tech/kako/1060/10603/1060361082.html
23 http://pc5.2ch.net/tech/kako/1062/10626/1062690663.html
24 http://pc5.2ch.net/tech/kako/1066/10665/1066546387.html
25 http://pc5.2ch.net/tech/kako/1067/10679/1067949669.html
26 http://pc5.2ch.net/test/read.cgi/tech/1070164402/ (迷子)
27 http://pc5.2ch.net/test/read.cgi/tech/1074454641/ (迷子)
28 http://pc5.2ch.net/test/read.cgi/tech/1077985164/
29 http://pc5.2ch.net/test/read.cgi/tech/1082047479/
30 http://pc5.2ch.net/test/read.cgi/tech/1084030770/
0004v(^・^)v
2006/01/08(日) 12:17:2832 http://pc5.2ch.net/test/read.cgi/tech/1088236078/
33 http://pc5.2ch.net/test/read.cgi/tech/1090180012/
34 http://pc5.2ch.net/test/read.cgi/tech/1092018643/
35 http://pc5.2ch.net/test/read.cgi/tech/1093958200/
36 http://pc5.2ch.net/test/read.cgi/tech/1096304546/
37 http://pc5.2ch.net/test/read.cgi/tech/1098543578/
38 http://pc5.2ch.net/test/read.cgi/tech/1101473340/
39 http://pc5.2ch.net/test/read.cgi/tech/1106466303/
39(実質40) http://pc8.2ch.net/test/read.cgi/tech/1106527792/
40(実質41) http://pc8.2ch.net/test/read.cgi/tech/1113408957/
41(実質42) http://pc8.2ch.net/test/read.cgi/tech/1120190961/
43 http://pc8.2ch.net/test/read.cgi/tech/1124113879/
0005v(^・^)v
2006/01/08(日) 12:18:02[C++ FAQ]
http://www.parashift.com/c++-faq-lite/
http://www.bohyoh.com/CandCPP/FAQ/ (日本語)
Cとその仕様を比較しながらの解説なので分かりやすい。
***** 質問の前に必ずこの二つに目を通してください *****
[禿 Stroustrup]
http://www.research.att.com/~bs/
[C++ International Standard]
http://www.kuzbass.ru/docs/isocpp/
http://www.kuzbass.ru/docs/ansi_iso_iec_14882_1998.pdf
http://www.iso.org/iso/en/CatalogueDetailPage.CatalogueDetail?CSNUMBER=38110&ICS1=35&ICS2=60&ICS3=
[JTC1/SC22/WG21 - C++]
http://www.open-std.org/jtc1/sc22/wg21
[C/C++ Users Journal]
http://www.cuj.com/
[cppll (ML)]
http://www.trickpalace.net/cppll/ (日本語)
0006v(^・^)v
2006/01/08(日) 12:18:29amazon.com C,C++関連書籍
http://www.amazon.com/exec/obidos/tg/browse/-/3956/ref=br_bx_c_1_3/
The C++ Programming Language
http://www.amazon.com/exec/obidos/ASIN/0201700735/
http://www.amazon.co.jp/exec/obidos/ASIN/475611895X/ (翻訳)
C++ Primer (3rd Edition)
http://www.amazon.com/exec/obidos/ASIN/0201824701/
http://www.amazon.co.jp/exec/obidos/ASIN/4756140068/ (翻訳)
The C++ Standard Library
http://www.amazon.com/exec/obidos/ASIN/0201379260/
http://www.amazon.co.jp/exec/obidos/ASIN/4756137156/ (翻訳)
Effective C++
http://www.amazon.com/exec/obidos/ASIN/0201924889/
http://www.amazon.co.jp/exec/obidos/ASIN/4756118089/ (翻訳)
More Effective C++
http://www.amazon.com/exec/obidos/ASIN/020163371X/
http://www.amazon.co.jp/exec/obidos/ASIN/4756118534/ (翻訳)
Exceptional C++
http://www.amazon.com/exec/obidos/ASIN/0201615622/
http://www.amazon.co.jp/exec/obidos/ASIN/4894712709/ (翻訳)
More Exceptional C++
http://www.amazon.com/exec/obidos/ASIN/020170434X/
Exceptional C++ Style
http://www.amazon.com/exec/obidos/ASIN/0201760428/
0007v(^・^)v
2006/01/08(日) 12:19:06http://www.amazon.co.jp/exec/obidos/ASIN/0321113586/
http://www.amazon.co.jp/exec/obidos/ASIN/4894716860/(翻訳)
■Books(Templateまわり)■
Effective STL
http://www.amazon.com/exec/obidos/ASIN/0201749629/
http://www.amazon.co.jp/exec/obidos/ASIN/4894714108/ (翻訳)
Modern C++ Design
http://www.amazon.com/exec/obidos/ASIN/0201704315/
http://www.amazon.co.jp/exec/obidos/ASIN/4894714353/ (翻訳)
C++ Templates
http://www.amazon.com/exec/obidos/ASIN/0201734842/
C++ Template Metaprogramming
http://www.amazon.com/exec/obidos/ASIN/0321227255/
0008v(^・^)v
2006/01/08(日) 12:19:34[Boost]
Boost http://www.boost.org/
(日本語) http://www.kmonos.net/alang/boost/
(日本語) http://shinh.skr.jp/boost/
[STL]
STLport http://www.stlport.org/
SGI-STL http://www.sgi.com/tech/stl/
STLFilt http://www.bdsoft.com/tools/stlfilt.html
(日本語) http://www005.upp.so-net.ne.jp/episteme/html/stlprog/
(日本語) http://www.wakhok.ac.jp/~sumi/stl/
[Loki]
http://www.moderncppdesign.com/
LokiPort-MSVC7 http://www.geocities.com/rani_sharoni/LokiPort.html
LokiPort-MSVC6sp5 http://fara.cs.uni-potsdam.de/~kaufmann/?page=lokiport
0009v(^・^)v
2006/01/08(日) 12:22:03【初心者歓迎】C/C++室 Ver.24【環境依存OK】
http://pc8.2ch.net/test/read.cgi/tech/1131691023/
【C++】STL(Standard Template Library)相談室 4
http://pc8.2ch.net/test/read.cgi/tech/1130680264/
C/C++の宿題を片付けます 56代目
http://pc8.2ch.net/test/read.cgi/tech/1135125328/
C/C++でのWindowsPrograming議論スレ(質問お断り)
http://pc8.2ch.net/test/read.cgi/tech/1049790146/
managed C++ やろうぜ!!
http://pc8.2ch.net/test/read.cgi/tech/1014486422/
【.NET】 C++/CLI について語ろうぜ 【最適】
http://pc8.2ch.net/test/read.cgi/tech/1126450441/
ATL/WTL Part4
http://pc8.2ch.net/test/read.cgi/tech/1134388951/
0010v(^・^)v
2006/01/08(日) 12:25:16環境によるだろ。
俺はBorland-C++5.6.2に -D_RTLDLL オプションを指定して、極力
ランタイムを使用するようにして使っているが、例えばstd::vectorを
使っても使わない時と比べ10Kほどしか増えない。
すげえ。ダイナミックリンクしといてファイルサイズが増えないとかいってるよ。この人。
C1010: プリコンパイル済みヘッダーの検索中に予期しない EOF を検出しました。
とかいうエラーが出るんだけどこれってどうすればいいの?
#include <stdafx.h>
後氏ね。
言葉が悪いな。それで教えているつもりか。
まぁヒントぐらいにはなったな。
うむごくろう。
テンプレは以上です。足りない所、間違っている所がありましたら、追加訂正よろ。
0011デフォルトの名無しさん
2006/01/08(日) 12:44:581レスで一気にやったら面白みがないだろ。
0012デフォルトの名無しさん
2006/01/08(日) 12:46:240013デフォルトの名無しさん
2006/01/08(日) 12:48:00スマソ(´・ω・`)
レスを節約しようとしたんだけど。次回から別レスにするね。
0014デフォルトの名無しさん
2006/01/08(日) 12:48:10ところでBoostの日本語文書といえばcppllの翻訳を抜かしていいのか?
0015デフォルトの名無しさん
2006/01/08(日) 12:49:3444 http://pc8.2ch.net/test/read.cgi/tech/1128512737/
これ抜けてた。
0016デフォルトの名無しさん
2006/01/08(日) 12:51:45STLport http://stlport.sourceforge.net/
0017デフォルトの名無しさん
2006/01/09(月) 05:04:26class B{
public:
void func(void){}
B(void)
{
void (B::*p)(void);
// p=B::func;//エラー メンバー関数は呼び出すかそのアドレスをとらなければならない
}
};
class C{
public:
C(void){
void (B::*p)(void);
p=B::func;
}
};
int main(void){
B b;
C c;
void (B::*p)(void);
p=B::func;
return 0;
}
他のクラスやmain関数では上手くいくのに…納得できません
class Bのコンストラクタ内でBのメンバ関数ポインタの代入はできないのでしょうか
0018デフォルトの名無しさん
2006/01/09(月) 05:13:260019デフォルトの名無しさん
2006/01/09(月) 05:15:28それ、Borlandのコンパイラだろ。多分バグだよ。
gccだとちゃんとエラーが出るぞ。
0020デフォルトの名無しさん
2006/01/09(月) 05:23:59関数ポインタへの代入を全部p = &B::func;にしたらコンパイル通りました。
ありがとうございます。この書き方が正しいのですね。
…ではロベールさんとこの関数ポインタの書き方は、一体???
0021デフォルトの名無しさん
2006/01/09(月) 05:38:47間違ったサイトを見ずに、規格書を読め。
0022デフォルトの名無しさん
2006/01/09(月) 05:46:490023デフォルトの名無しさん
2006/01/09(月) 17:08:340024デフォルトの名無しさん
2006/01/09(月) 17:10:040025デフォルトの名無しさん
2006/01/09(月) 17:56:320026デフォルトの名無しさん
2006/01/10(火) 11:09:16ファイルストリームに変更して、
出力をファイルに落としています。
ofstream ofs("out.txt");
std::cerr.rdbuf(ofs.rdbuf());
場合によってはエラー出力を抑制したいことがあるのですが、
Windows なので /dev/null に出力するということもできません。
ヌルデバイスを表現するストリームというモノは
標準で用意されてるモノなのでしょうか?
0027デフォルトの名無しさん
2006/01/10(火) 12:00:37/dev/nullがあるから、標準では用意されなかったんだろ。
WindowsはNULにでも出すしかないな。
0028デフォルトの名無しさん
2006/01/10(火) 16:10:420029デフォルトの名無しさん
2006/01/10(火) 19:12:27相談です。
VC++でやってるんですけどね
ボタンを押したときはちゃんと別ウインドウに表示されるんです。
しかしエンターキーを押したときに用意した別ウインドウに表示されない。
そうとうこまって降ります。
case WM_KEYDOWN:
switch( wParam )
{
case VK_RETURN:
GetWindowText(hWndEdit2,sBuff,79);
SetWindowText(hWndEdit1,sBuff);
return TRUE;
}
return 0;
case ....以下続く
0030デフォルトの名無しさん
2006/01/10(火) 19:15:070031デフォルトの名無しさん
2006/01/10(火) 19:16:19なんですれ違いなのか理解不能だが
切々と語ってくれ
sageについては正直すまんかった
0032デフォルトの名無しさん
2006/01/10(火) 19:23:200033デフォルトの名無しさん
2006/01/10(火) 19:48:54技術系の板で質問でageるのは普通だろ。
0034デフォルトの名無しさん
2006/01/10(火) 19:51:57VBスレが上がっててもVB知らなきゃ答えられんし
0035デフォルトの名無しさん
2006/01/10(火) 20:01:570036デフォルトの名無しさん
2006/01/10(火) 20:11:36バッファをフラッシュしてくれるマニピュレータですが、
この改行文字は固定なのでしょうか?
CR/LF/CR+LF を何らかのフラグで切り替える
ということは出来ないでしょうか?
0037デフォルトの名無しさん
2006/01/10(火) 20:14:20もうsage強迫観念だよな、精神病の一種だw
なんでそんなになっちゃったんだろう
0038デフォルトの名無しさん
2006/01/10(火) 20:36:03坊主憎けりゃ袈裟まで憎い。
スレ違いに腹をたてたばかりに、ageまで憎く思えてしまいました。
ちなみに、>>31の
「言語と環境の区別くらい付けてくれ」は、いまいちでした。
「もっと適したスレがある」というべきでした。
反省しています。
0039デフォルトの名無しさん
2006/01/10(火) 20:45:12Win32API質問箱 Build39
http://pc8.2ch.net/test/read.cgi/tech/1136673250/
004036
2006/01/10(火) 20:51:34'\x0a' を出力するしかないのかなぁ。
004136
2006/01/10(火) 20:59:25std::endl は結局のところ "\n" を出力している
だけで、それを受けたストリームが
通常の '\n' の解釈にしたがって改行コードを
出力しているだけですね。
0042デフォルトの名無しさん
2006/01/10(火) 21:04:13UNIXだと普通に
\r CR
\n LF
だが
0043デフォルトの名無しさん
2006/01/10(火) 21:29:200044デフォルトの名無しさん
2006/01/10(火) 21:41:37出力文字 unix dos mac
\r \r \r \r
\n \n \r\n \r
\r\n \r\n \r\r\n \r\r
入力文字 unix dos mac
\r \r \r \n
\n \n \n \n
\r\n \r\n \n \n\n
0045デフォルトの名無しさん
2006/01/10(火) 21:59:33Perlなんかだと違ったりしているようなので気になった。
ttp://www.din.or.jp/~ohzaki/perl.htm#CRLF_Unify
0046デフォルトの名無しさん
2006/01/10(火) 22:00:10おおそうなっているのか
Winはdosと変わってないんだよね?
MacもOSXと昔のMacOSで変わってないのかな?
0047デフォルトの名無しさん
2006/01/10(火) 22:10:23UnixもDOSもMacもASCIIを使っているのでそのとおり。
ついでに言えばストリームをバイナリモードにすればどれもUnixと同じくそのままの文字が出力されるはず。
0048デフォルトの名無しさん
2006/01/10(火) 22:55:12なんとかtemplate内部で、そのポインタ型の、ポインタじゃないインスタンスを生成する方法ないすかねぇ。
int main(){
Hoge<int*> hoge;
hoge.create();
}
と、した時
template <class TPTR> class Hoge{
TPTR p;
void create(){
//ここで p = new int; としたいのですが……無理っすかねぇ。
}
}
最初からHoge<int>を前提としてtemplate書けって感じですが、そこをなんとか
0049デフォルトの名無しさん
2006/01/10(火) 22:56:000050デフォルトの名無しさん
2006/01/10(火) 23:02:37Hogeのテンプレート引数は必ずポインタ型であることが必要なら、
初めから元の型をテンプレート引数に取るようにするのが一番楽。
template <class T> class Hoge{
T *p;
void create(){
p = new T;
}
};
それが駄目ならboost::remove_pointer<T>
>>49
mainだけはintを返すように宣言してあり、なおかつreturnがなければ
return 0;が行われるという扱いがなされるから問題ない。
0051デフォルトの名無しさん
2006/01/10(火) 23:20:25レスありがとうございますx2
remove_pointerのソース観てみましたが、いやはやさっぱり分かりません。
もとからない自信が、すっかり無くなってしまいました。
やはりそうですよね…おとなしく書き直すことにします。変更個所オオス!!
0052デフォルトの名無しさん
2006/01/10(火) 23:43:40boost::remove_pointer<int *>::typeはintになっているという具合。
0053デフォルトの名無しさん
2006/01/11(水) 02:12:01{
char *str = new char[100];
char* retstr = str;
delete str;
return retstr;
};
こういう書きかたってマズイんでしょうか。
0054デフォルトの名無しさん
2006/01/11(水) 02:18:54返したretstrを何に使うの?
0055デフォルトの名無しさん
2006/01/11(水) 02:21:35ポインタが指すメモリにアクセスするつもりならマズイ。
deleteした時点でもう使えなくなっている。
ところで48が気になったのでremove_pointerを読んでみた。
それで48の望む動作をするコードが一応出来た。
template<typename T> struct remove_pointer
{
};
template<typename T> struct remove_pointer<T*>
{
     typedef T type;
};
template<typename TPTR> struct Hoge
{
     TPTR p;
     void create()
     {
         p = new remove_pointer<TPTR>::type;
     }
};
テンプレートに慣れていないせいなのかなんかキモイ。
やはり普通に元の型でやるべきだと思った。
005653
2006/01/11(水) 02:46:41コードに意味はなくなんとなく考えてみただけです。
有難うございました。
0057デフォルトの名無しさん
2006/01/11(水) 02:51:180058デフォルトの名無しさん
2006/01/11(水) 06:43:06実際にはコンパイラ(のランタイムライブラリ)によって変わるみたいだよ。
だから例えば同じ dos 環境下でも Microsoft のコンパイラで作成したプログラムと
Borland のコンパイラで作成したプログラムでは結果が違う。 >>4 の表のdosの欄は恐らく
Microsoft のコンパイラで作成したプログラムでの結果だろうけど、Borland のコンパイラで
作成したプログラムの場合、"\r\n" の出力結果は "\r\n" のままになる。
cf. http://www.trickpalace.net/cppll/reference/printf.htm ( このページの一番最後 )
0059デフォルトの名無しさん
2006/01/11(水) 06:50:530060デフォルトの名無しさん
2006/01/11(水) 12:22:58typename 付けないといけないです
template<typename TPTR> struct Hoge
{
TPTR p;
void create()
{
p = new typename remove_pointer<TPTR>::type;
}
};
0062デフォルトの名無しさん
2006/01/11(水) 19:58:30標準ライブラリの解説は、ここが参考になる。
//www.cc.nao.ac.jp/fsunman/japanese/C++/index.html
0063デフォルトの名無しさん
2006/01/11(水) 22:12:42うーん、凄い…ありがとうございます。
ここまで簡単に書いて頂いたのに、理解できない自分に絶望ですが。
何故こうなるんだろ…。奥が深いですねぇ(俺には)。
0064デフォルトの名無しさん
2006/01/12(木) 21:27:48テンプレートがもう少し使いやすい概念になってくれるとありがたいんだけどな。
0065デフォルトの名無しさん
2006/01/13(金) 01:29:52template<template<template<hoge>,hoge>,hoge> とかの
多段テンプレートってのはLispの書式に近いんだそうだが、
そのLispの書式がこれまたわけわからんかったりする。
0066デフォルトの名無しさん
2006/01/13(金) 01:47:240067デフォルトの名無しさん
2006/01/13(金) 02:04:24テンプレートクラスを1つの関数とみなして使う使い方も重要かと.
boost::mpl, boost::type_traits あたりは後者の見方がないと
なかなか使いこなせないように思うのですが.
0068デフォルトの名無しさん
2006/01/14(土) 01:44:4810.1 2.33 4.1 8 9.443
とかってあるとする。
こいつの最小桁は小数点何位かを知りたいんだけど、
簡単にやる方法ってあります?
上の数字列を入れると、
0.1 0.01 0.1 1 0.001
と得られると希望通りの動作。
ただし、1.20とかって数字のときにも、
0.1ではなく0.01が出ないと駄目。
0069デフォルトの名無しさん
2006/01/14(土) 01:53:38実験データひとつを、ひとつの文字列として読み出し、
文字列の後ろから小数点を検索して距離を調べ、
見つかれば距離に応じた値が答え。見つからなければ1。
C++関係無いな。
0070デフォルトの名無しさん
2006/01/14(土) 02:00:26scanf("%s.%[^ ]", null, po)
みたいな感じで読めそうだけどC++核のは面倒くさそうだな
0071デフォルトの名無しさん
2006/01/14(土) 02:01:18+ C++っぽく書く
0073デフォルトの名無しさん
2006/01/14(土) 09:54:190074デフォルトの名無しさん
2006/01/14(土) 10:25:150075デフォルトの名無しさん
2006/01/14(土) 12:08:000076デフォルトの名無しさん
2006/01/14(土) 13:26:20ただし、1.20とかって数字のときにも、
0.1ではなく0.01が出ないと駄目。
よく嫁
007768
2006/01/14(土) 15:21:06double GetPrecision(const string value)
{
int length = value.size();
int dotPos = value.find(".");
if(dotPos>=0) return pow(10., 1+dotPos-length);
else return 1.;
}
0078デフォルトの名無しさん
2006/01/14(土) 16:04:26const string&にしろよ。
0079デフォルトの名無しさん
2006/01/14(土) 16:06:29dotPosがsigned型であることと、return 1だな。
0080デフォルトの名無しさん
2006/01/14(土) 16:26:060081デフォルトの名無しさん
2006/01/14(土) 16:29:240082デフォルトの名無しさん
2006/01/14(土) 16:33:33・引数が値渡しである必要は無いので参照に。
・length は string のメンバ関数を使えばいい。
・find() の引数を長さ1の文字列ではなくひとつの文字に。
・dotPos を fin() の戻り値にあわせて string::size_type に。
・見つからない判定は string::npos で。
double GetPrecision(const string& value)
{
string::size_type const dotPos = value.find('.');
if(dotPos != string::npos) return pow(10, 1+dotPos-value.length());
else return 1;
}
008382
2006/01/14(土) 16:39:170084デフォルトの名無しさん
2006/01/14(土) 16:42:00for(;i>=0; i--)
008582
2006/01/14(土) 16:45:26double GetPrecision(const string& value)
{
string::size_type const dotPos = value.find('.');
if(dotPos != string::npos)
return pow(10,-static_cast<int>((value.length()-1)-dotPos));
else
return 1;
}
0086デフォルトの名無しさん
2006/01/14(土) 17:46:16stringのメンバlengthとsizeは全く同じだよ。好きなほうを選べばいい。
0087デフォルトの名無しさん
2006/01/14(土) 19:27:300088デフォルトの名無しさん
2006/01/14(土) 20:40:18なので不都合がおきてる
class Base {
public:
int x_, y_; //ここが問題
//できればこうしたい
// std::vector<int> xy; int &x_; int &y_;
//Base(int x , int y): xy(2),x_(xy[0]), y_(xy[1]){}
Base(int x , int y): x_(x), y_(y){}
int doSome() { return (x_*y_);}
};
けれど他人のライブラリなので変更できないので
派生クラスで解決しようとした
class Derived :public Base
{
public:
std::vector<int> xy; int &x_; int &y_;
Derived(int x , int y): xy(2),x_(xy[0]), y_(xy[1]){}
};
main()
{
Derived d(1,2)
d.doSome() ;// x_ * y_ = 1*2 が帰ってくるようにしたい。
}
けれどdoSome()はちゃんと動かない当然だけど
Baseを変更しないでメンバー関数doSome()を使う方法ないんでしょうか?
0089デフォルトの名無しさん
2006/01/14(土) 20:46:04Base b(1,2);
b.doSome();
これで不満な理由がわからんことには答えようが無い。
0090デフォルトの名無しさん
2006/01/14(土) 20:54:38func(int *p_xy){ return *p_xy + *(++p_xy) }
とかと同時に使いたい
0091デフォルトの名無しさん
2006/01/14(土) 20:59:24それは Base を使ってる限り無理だな。
ローカルな配列に一旦コピーして、後で戻すことができれば
同じ結果にできるだろうけど。
0092デフォルトの名無しさん
2006/01/14(土) 21:01:28> func(int *p_xy){ return *p_xy + *(++p_xy) }
これは未定義動作だな。メモリー上の連続性とか関係無しに。
0093デフォルトの名無しさん
2006/01/14(土) 21:01:47そういう阿呆なことをしようとするな。
0094デフォルトの名無しさん
2006/01/14(土) 21:02:20Base::x_しかみえんだろうが。
doSomeをオーバーライドしない限りどうしようもなかろうに。
0095デフォルトの名無しさん
2006/01/14(土) 21:14:44直前の副作用完了点から次の副作用完了点までの間で
同一オブジェクトに対して読み取りや変更が行われる回数は
高々1度でなければならないってのだっけ?よく覚えてないが。
0096デフォルトの名無しさん
2006/01/14(土) 21:20:11具体的に言ってしまえば*p_xyと*(++p_xy)のどちらが
先に評価されるか未定義になってる。
0097デフォルトの名無しさん
2006/01/14(土) 23:41:160098デフォルトの名無しさん
2006/01/14(土) 23:53:580099デフォルトの名無しさん
2006/01/14(土) 23:58:020100デフォルトの名無しさん
2006/01/15(日) 04:46:16ICU?iconv?std::codecvt?
オレはICUで落ち着きそうなんだが
いい方法、ナイスライブラリがあったら教えて
0101デフォルトの名無しさん
2006/01/15(日) 11:13:08std::string s1,s2;
std::cin >> s1 >> s2;
として aiueo を s1 に、12345 を s2 に格納したいのですが、
可能でしょうか?
■ このスレッドは過去ログ倉庫に格納されています