[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 05/27 13:34 / Filesize : 231 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【初心者歓迎】C/C++室 Ver.41【環境依存OK】



1 名前:デフォルトの名無しさん mailto:sage [2007/08/06(月) 23:26:08 ]
エスケープシーケンスやWin32APIなどの環境依存な物でもOK。
ただしその場合、質問者は必ず、環境を書きましょう。
※sage禁止です(と代々スレに書いてありますが自己判断で)。
【前スレ】
【初心者歓迎】C/C++室 Ver.40【環境依存OK】
pc11.2ch.net/test/read.cgi/tech/1184717430/
【アップローダー】(質問が長い時はココ使うと便利)
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm

809 名前:デフォルトの名無しさん mailto:sage [2007/08/29(水) 00:39:32 ]
確認してなかったのか

810 名前:デフォルトの名無しさん mailto:sage [2007/08/29(水) 00:40:17 ]
ウザ〜イ!ウザイよ小沢さん。想像で答えられてもウザ過ぎるよ。

811 名前:デフォルトの名無しさん mailto:sage [2007/08/29(水) 00:49:13 ]
まぁ「初心者歓迎」ってついとるし、初心者はバグの見所もわかんねだろ。

免罪符にゃならんが。
そこら辺分からんと答えよう無いしな。

812 名前:デフォルトの名無しさん mailto:sage [2007/08/29(水) 00:49:15 ]
そこだけ切り出してコンソールアプリにでもしてみれば。

NULLじゃないけど
IsBadReadPtrに引っかかるポインタとか

813 名前:デフォルトの名無しさん mailto:sage [2007/08/29(水) 06:40:31 ]
サービスであっても、デバッガアタッチするといいb

814 名前:デフォルトの名無しさん [2007/08/29(水) 13:31:03 ]
>>805
本当によく読んでるのか?

> _msize は無効なパラメータ ハンドラを呼び出します。
無効なパラメータ ハンドラが何やるかしってるか?

> 無効なパラメータが見つかると、C ランタイムは、
> 現在割り当てられている無効なパラメータ ハンドラを呼び出します。
> 既定により無効とされているパラメータが見つかった場合、
> ワトソン博士のクラッシュ レポートが起動します。
> 実行中のアプリケーションはクラッシュし、分析用のクラッシュ ダンプを
> Microsoft に提供するかどうかをユーザーに求めるメッセージが表示されます。
> デバッグ モードでは、無効なパラメータが見つかるとアサーション エラーになります。



815 名前:デフォルトの名無しさん mailto:sage [2007/08/29(水) 20:48:30 ]
かなり初歩的な質問で申し訳ないんだけど
現在VC++ 2005 Express Editionで開発中で、所謂多重定義の問題にハマっています
Formアプリで、複数のFormをどんどん遷移していくような感じなのですが
イメージとしては、ATMのような、各画面1クリックでどんどん進むようなので、それぞれの画面が
個別のFormとして作られています。
(Form1がForm2を作って、Form2が3を・・のような)

で、聞きたい事は、VC++2005ExpEditでは、Formを作ると、そのclassの定義がすべてForm1.h
のように、ヘッダファイルに書かれてしまいます。
このとき、Form1とForm2で相互にincludeしたい場合、多重includeガードをしても、定義のせいで
リンクがエラーになり、コンパイルが通りません。

いちいちForm1.hの中身を.cppにコピペし、宣言のみを.hに書き直すようなことをしなければいけないのでしょうか

うまい回避方法があれば教えてください。
(長文すみません)

816 名前:デフォルトの名無しさん mailto:sage [2007/08/29(水) 21:58:45 ]
C++/CLI?

817 名前:デフォルトの名無しさん mailto:sage [2007/08/29(水) 22:02:03 ]
API直で叩けばいいんじゃね?



818 名前:デフォルトの名無しさん mailto:sage [2007/08/29(水) 22:25:54 ]
stlのstring使っています。
このstringを1行ごとに読み込んで処理したいのですが、どのようにすればいいでしょうか?
tokenが使えないので、ちょっと苦労しています。一旦とってきたstringをcharに変えるのも、どうかなぁ……って気がしますし、
できれば、stringのままで一行ごとの読み込みがやりたいんですが、やり方を教えてください。

VC++2005 WinXPHomeです。

819 名前:デフォルトの名無しさん mailto:sage [2007/08/29(水) 22:32:43 ]
findとかiteratorで改行しらべる

820 名前:デフォルトの名無しさん mailto:sage [2007/08/29(水) 23:01:37 ]
>>815
#ifndef Form1_H
#define Form1_H
#include "Form2.h"
class Form1 : public Form
{
};
#endif
----------------------
#ifndef Form2_H
#define Form2_H
#include "Form1.h" //Form1.hからincludeされた場合はForm1_Hが定義済みなのでインクルードガードで無視される
class Form2 : public Form
{
};
#endif

こんな感じで書かれてればエラー出ないと思うんだが‥‥

821 名前:デフォルトの名無しさん [2007/08/29(水) 23:48:13 ]
つか、C++を使ってなぜ.NETなのかさっぱり分からん

822 名前:デフォルトの名無しさん mailto:sage [2007/08/29(水) 23:51:54 ]
つか、C++を使ってるのか.NETなのかさっぱり分かってないんだろう

823 名前:デフォルトの名無しさん mailto:sage [2007/08/29(水) 23:52:29 ]
>>818
std::istringstreamとstd::getline(std::stringを引数にとるほう)はだめ?

824 名前:デフォルトの名無しさん mailto:sage [2007/08/29(水) 23:56:08 ]
>>818
意味がイマイチわからんかったが、

istringstream と >>

じゃだめか?

825 名前:デフォルトの名無しさん mailto:sage [2007/08/29(水) 23:58:58 ]
>>823

そっちじゃなきゃだめだわ
(大域のgetline か basic_istream<> の istream)

826 名前:デフォルトの名無しさん mailto:sage [2007/08/29(水) 23:59:07 ]
>>818
boost, boost-sandbox or pstade使ってもいいなら良い方法があるんだけどいいかな? by boost厨

827 名前:デフォルトの名無しさん mailto:sage [2007/08/29(水) 23:59:32 ]
basic_istream<> の istream ×
basic_istream<> の getline ○



828 名前:デフォルトの名無しさん mailto:sage [2007/08/30(木) 00:04:46 ]
聞いてくれよ、おら
C++のunionにメソッドを置おけること、昨日知ったよ、orz
これって常識?

829 名前:デフォルトの名無しさん mailto:sage [2007/08/30(木) 00:12:39 ]
>>828
structはよく見るけどね

830 名前:デフォルトの名無しさん mailto:sage [2007/08/30(木) 00:12:40 ]
unionを使うことが非常識

831 名前:デフォルトの名無しさん mailto:sage [2007/08/30(木) 00:17:44 ]
どちらかというと常識ではないと俺は思う。
自身で使ったことがないし、他人が使っているのを見たこともないし。

832 名前:デフォルトの名無しさん mailto:sage [2007/08/30(木) 00:25:36 ]
なんかクラスWidgetがあって、

Widget();

という文があったら、Widgetのオブジェクトを(デフォルトコンストラクタで)作成して、
次の行に逝く前にすぐ消される(デストラクタが呼ばれる)と思います。
んじゃ、こういう場合はどうだろうと思い、↓を書いてみました。

Widget *w = &Widget();

「Widget() はこの行でデストラクタが呼ばれ消えてしまうので、ポインタwは無効になるだろう」と考え、
考え通り、すぐデストラクタが呼ばれました。
んじゃ、参照はどうだろうと・・・

Widget &w = Widget();

自分の考えとは違ってすぐにデストラクタが呼ばれず、この関数(またはブロック)を抜けるところでデストラクタが呼ばれました。
参照だと何か特殊なんですかね・・・

833 名前:デフォルトの名無しさん mailto:sage [2007/08/30(木) 00:29:15 ]
参照には null が無いから

834 名前:デフォルトの名無しさん [2007/08/30(木) 00:34:16 ]
大きなファイルサイズの読み込みを早めるためにMemoryMappedFile使う場合、
ファイル全てのアドレスを割り当てたらまずいですよね・・?

やはりマッピングアドレスを動的に変化させる仕組みが必要でしょうか?
そうすると編集時に問題になってしまいそうですが、何かセオリーみないなモノはあるのでしょうか?

835 名前:デフォルトの名無しさん mailto:sage [2007/08/30(木) 00:39:33 ]
>>832
const参照なら標準規格でも明文化された規定になっている。
(知っている人は少ないかもしれないが)

けれど、非const参照の初期化に一時インスタンスの使用はできないことになっている。
一時インスタンスは右辺値だが、非const参照の初期化には左辺値が要求されるため。
最近のVC++やg++ではエラーになる。
どうせお前が使っているのはBorand C++だろう。窓から投げ捨てろ。

836 名前:デフォルトの名無しさん mailto:sage [2007/08/30(木) 00:40:16 ]
>>832
参照は一時オブジェクトを捕まえておける
関数の戻り値とかもおっけー

837 名前:836 mailto:sage [2007/08/30(木) 00:40:53 ]
const参照だけだっけか。すまそ。



838 名前:デフォルトの名無しさん mailto:sage [2007/08/30(木) 01:04:15 ]
>>823,824
thx istringstreamでいってみます。

839 名前:デフォルトの名無しさん mailto:sage [2007/08/30(木) 12:51:44 ]
>815
別にForm1の定義がまるまる欲しいわけじゃないでそ。
Form *createForm2();
みたいな生成関数があれば大抵足りるんじゃないの。

840 名前:デフォルトの名無しさん mailto:sage [2007/08/30(木) 13:45:38 ]
>>820
ガードは試してみたんですが、「定義」が.hに書かれているので・・

>>839
まったくそのとおりなんですが
VCを使うと、デフォルトでヘッダファイルに定義が書かれているんですよ
なので、どうしたものだろうかと
やっぱり、いちいち自分でヘッダファイルに書いてある定義をcppに持っていって、ヘッダファイルでの
宣言は改めて書くようにしないとダメなんでしょうか


841 名前:デフォルトの名無しさん mailto:sage [2007/08/30(木) 15:06:39 ]
>>835
BCCタンを悪く言うと痛い目にあうお(#^ω^)ビキビキ

842 名前:デフォルトの名無しさん mailto:sage [2007/08/30(木) 15:56:48 ]
>>835
警告は出るがな

843 名前:デフォルトの名無しさん mailto:sage [2007/08/30(木) 16:09:45 ]
>>840
form2.h では、#include "form1.h"のかわりに、
class Form1;
と書いとけ。
これで、Form1* ほげほげって書けるようになる。
form1.h でも同様にする。

form1.cpp, form2.cpp では、両方のヘッダファイルをincludeする。


844 名前:デフォルトの名無しさん [2007/08/30(木) 21:06:59 ]
BorlandC++5.5.1を使ってコンパイルしているのですが、
このコンパイルをプログラム側からSystem()関数で行った場合に、
プログラム側でコンパイルでエラーが出たかどうかを判断できないのでしょうか?
具体的には System(bcc32 helloworld.c); の返り値とかで判断できないものでしょうか?

845 名前:844 [2007/08/30(木) 21:07:40 ]
すみません、C言語です。

846 名前:デフォルトの名無しさん mailto:sage [2007/08/30(木) 21:30:34 ]
無理。

847 名前:844 [2007/08/30(木) 21:33:22 ]
>>846
そうですか、意外とプログラム側から分かる情報は少ないんですね。。。
どうしようかな・・・



848 名前:デフォルトの名無しさん mailto:sage [2007/08/30(木) 21:38:26 ]
諦めろ
お前には無理
お前のプログラム側から分かる情報なんて皆無

849 名前:デフォルトの名無しさん mailto:sage [2007/08/30(木) 21:42:46 ]
んあ?
コンパイルに失敗したかどうかは分かるんじゃない?
エラーが出たのかどうかは分からんが。

BCCのsystem()は良く知らん。

gccのなら、↓でcommandの終了コード取れたと思うけど。

status = system("command");
if(WIFEXITED(status))
exit_code = WEXITSTATUS(status);


850 名前:844 [2007/08/30(木) 22:02:00 ]
>>849
manpageを見る限りだと、<sys/types.h>と<sys/wait.h>の二つをインクルードするみたいなのですが、
これをコンパイルしたところ、sys/wait.hをオープンできないというエラーがでます。
何故でしょうか・・・;;

ちなみにそのWEITSTATUSの返り値はint型でいいのでしょうか?

851 名前:デフォルトの名無しさん mailto:sage [2007/08/30(木) 22:04:07 ]
お前がアホだから

852 名前:デフォルトの名無しさん [2007/08/30(木) 22:06:34 ]
数千行から1万行程度で書けて、出来たとき達成感のあるような練習課題思いつけば教えてください
テトリスとかどうかなと思ってるんですが

853 名前:デフォルトの名無しさん mailto:sage [2007/08/30(木) 22:33:30 ]
将棋でも作れば?

854 名前:デフォルトの名無しさん mailto:sage [2007/08/30(木) 22:36:06 ]
>>852
テトリス

855 名前:デフォルトの名無しさん mailto:sage [2007/08/30(木) 22:48:33 ]
>>850
いや、ちょっと待ち。
BCCはWindowsの話じゃないのか?
gccはUNIXとかLinuxの話で。
WEXITSTATUSがBCCでも存在するか知らんのだが。

856 名前:デフォルトの名無しさん mailto:sage [2007/08/30(木) 22:49:26 ]
>>850
なぜなら、manpage は bcc じゃないから。

戻り値よりも、obj ファイルや exe ファイルが生成されてるかどうかを見た方が楽なんじゃないか。

857 名前:デフォルトの名無しさん mailto:sage [2007/08/30(木) 22:51:43 ]
>>852
テトリス



858 名前:844 mailto:sage [2007/08/31(金) 00:21:14 ]
>>856
それだとコンパイルするたびに、objファイルを消さないといけないですよね。
コンパイル前にobjファイルとexeファイルを消すプログラムにすれば済む話かもしれないですけど・・・

859 名前:デフォルトの名無しさん mailto:sage [2007/08/31(金) 00:25:28 ]
>>852
2ch専用ブラウザ機能付きテトリス
セルフコンパイル機能付きテトリス
英日翻訳機能付きテトリス
OCR機能付きテトリス
人工無能機能付きテトリス

860 名前:デフォルトの名無しさん mailto:sage [2007/08/31(金) 00:27:18 ]
>>844
エスパーすると君が本当に必要なのは make および makefile に関する知識だ

861 名前:デフォルトの名無しさん mailto:sage [2007/08/31(金) 00:31:02 ]
人工無能機能付きテトリスに期待

862 名前:デフォルトの名無しさん mailto:sage [2007/08/31(金) 00:40:19 ]
今更過ぎる質問なんですがWindows2000にVC++2.0って
インストール不可なんでしょうか?
うまく行ったかなと思ったら、最後の最後でレジストリの
書き込みに失敗しましたとかって出てしまいました。
他のバージョンのVCとかは一切インストールしていない
状態です。


863 名前:デフォルトの名無しさん mailto:sage [2007/08/31(金) 00:42:02 ]
可能ですよ

864 名前:862 mailto:sage [2007/08/31(金) 00:53:42 ]
>>863
レスありがとうございます。
Win2Kのインストールから、もう一度やり直してみます・・・orz
サービスパック(SP4)入れる前にVCをインストールした方が
良かったのかな・・・?

865 名前:デフォルトの名無しさん mailto:sage [2007/08/31(金) 01:05:29 ]
#include <iostream>
//typedef int link;
class link {};

int main(){
  link l;
}

g++4.1.2で怒られました。コンパイラ不信になりそうです。
変数名をNULLにするような常識外れなのかもしれませんが、
こういう名前空間の衝突はどこを見れば予想できますか?

866 名前:デフォルトの名無しさん mailto:sage [2007/08/31(金) 01:08:56 ]
>>g++4.1.2で怒られました。コンパイラ不信になりそうです。
君のレベルではコンパイラのバグなど、コンパイラ側の問題に遭遇することは無い。
コンパイルエラーはすべてコンパイラのせいではなく、自分が悪いのだと認識したほうがいい。

867 名前:デフォルトの名無しさん mailto:sage [2007/08/31(金) 01:13:28 ]
>>865
エラーメッセージを見れば予想できるよ。



868 名前:デフォルトの名無しさん mailto:sage [2007/08/31(金) 01:26:28 ]
__declspec(novtable)は、どういう時に使うものですか?

869 名前:デフォルトの名無しさん mailto:sage [2007/08/31(金) 01:30:10 ]
>>865
自分の作ったクラスとか関数をすべて自分の名前空間に入れれば衝突を気にせずに済むよ

870 名前:デフォルトの名無しさん mailto:sage [2007/08/31(金) 01:31:03 ]
>>866
標準ヘッダをインクルードしたらグローバルにunistd.hがぶちまけられる、
ってのはバグでなくてもショックでした。

>>867
初お目見得のエラーメッセージって初心者キラーなもので…。
class hoge{ link l; };
: error: ‘link’ does not name a type

危なそうな名前は回避するしかないんですかね。気をつけます。

871 名前:デフォルトの名無しさん mailto:sage [2007/08/31(金) 01:36:49 ]
>>869
あなるほど、ちと面倒ですがそうします。皆さんありがとう。

872 名前:デフォルトの名無しさん mailto:sage [2007/08/31(金) 04:29:23 ]
標準入出力等の一部の関数は、
名前空間というものが無いCの関数として公開されたAPIを用いて実装されてるわけで、
たとえ標準Cの関数だけをstd名前空間に入れてもそいつらが使ってるAPI関数はそのままグローバルに残り
そりゃ凄い規模の汚染が発生していることだろう。
VCのIDE上でグローバル名前空間::からの入力予想をかけたらその凄まじさがよくわかる。
ただ大文字で始まるようなものは少ないんで、
「クラスの名前は先頭大文字でキャメル」とかそれなりに一般的な命名規則使ってれば遭遇しにくく
知らずに有効なコーディングルールを使ってるとかえって危ない場合ってあるんだなぁとかそういうことを思った。

873 名前:デフォルトの名無しさん mailto:sage [2007/08/31(金) 09:46:13 ]
前々から気になっていたので、これを機にぐぐった

>>868
msdn.microsoft.com/msdnmag/issues/0300/c/

874 名前:デフォルトの名無しさん mailto:sage [2007/08/31(金) 11:12:27 ]
A を直接作ることが無いのであれば、
A のコンストラクタで仮想関数テーブルを初期化する処理は必要ない、無駄だ、ということか。なるほど。

875 名前:デフォルトの名無しさん mailto:sage [2007/08/31(金) 11:28:51 ]
setcurrentdirectoryを使って、
ネットワーク上のPCのディレクトリを指定したいのですが、
記述の仕方を教えてください。 

876 名前:デフォルトの名無しさん mailto:sage [2007/08/31(金) 11:30:36 ]
novtableはATLのウィザードで作ったクラスで良く見る。

877 名前:デフォルトの名無しさん mailto:sage [2007/08/31(金) 11:50:48 ]
>>845
\\servername\sharename



878 名前:デフォルトの名無しさん mailto:sage [2007/08/31(金) 12:04:14 ]
1万行だなんて身近スg

879 名前:デフォルトの名無しさん mailto:sage [2007/08/31(金) 13:11:18 ]
std::basic_ifstream<wchar_t>で文字を読み込むと日本語が文字化けしちゃうんですか
何故でしょうか?読み込むテキストはUTF-8で書いてあります

880 名前:デフォルトの名無しさん mailto:sage [2007/08/31(金) 13:25:50 ]
UTF-8なlocaleをstreamにimbue()汁
それがサポートされていれば、の話だがな

881 名前:デフォルトの名無しさん mailto:sage [2007/08/31(金) 13:31:46 ]
これimbue(std::locale("japanese"));やstd::locale::global(std::locale("japanese")); これは
試しましたがダメでした

882 名前:デフォルトの名無しさん mailto:sage [2007/08/31(金) 13:36:17 ]
> UTF-8なlocaleを
これが読めなかったのか

janapeseとかいうlocaleを使っているところを見ると、VC++か?
なら、C++localeに任せるのは諦めろ。
VC++はUTF-8なlocaleをサポートしていない。

883 名前:デフォルトの名無しさん mailto:sage [2007/08/31(金) 13:38:14 ]
そうですか・・・じゃあマルチバイトで読み込んで内部で変換するしかないですね
ありがとうございました

884 名前:デフォルトの名無しさん mailto:sage [2007/08/31(金) 13:42:01 ]
ようはコード変換のファセットだけUTF-8のものと差し替えればいいんだ。

BoostにもUTF-8コード変換のファセットがあるんだが、
対象がUCS-4だからWindowsのwchar_tでは使えないだろう。
それならおそらく自作するしかない。誰か作っているかもしれないが。
www.boost.org/libs/serialization/doc/codecvt.html

885 名前:デフォルトの名無しさん mailto:sage [2007/08/31(金) 13:49:05 ]
>>884
汎用的なcodecvt<>のセットがどっかにあるんなら俺も欲しいな
boost::iostreams::codeconverterとかはpublicなデストラクタを備える
codecvt<>実装を要求するんで、VC++標準のcodecvt<>は使えないしな

iconvあたりを使ってデッチあげる手もあると思うが、状態をmbstate_tで
管理しなければならない辺りが悩ましげだし、wchar_tのバイト数が決まってないのも
やっぱ面倒だよな

886 名前:デフォルトの名無しさん mailto:sage [2007/08/31(金) 14:25:44 ]
使ったことないけど
ttp://tricklib.com/cxx/ex/babel/

887 名前:デフォルトの名無しさん mailto:sage [2007/08/31(金) 15:04:43 ]
CSimpleStringクラスのCopyChars()をそのまま使うと、「古い形式で使われています」と
警告がでるんですが、この関数の新しいバージョンってありますか?
探したけど見つかりませんでした



888 名前:デフォルトの名無しさん mailto:sage [2007/08/31(金) 16:52:12 ]
#define _SECURE_ATL

889 名前:デフォルトの名無しさん mailto:sage [2007/08/31(金) 17:30:31 ]
やっぱりないですよね
#pragma warning( disable : 4996 )で消しました

890 名前:デフォルトの名無しさん mailto:sage [2007/08/31(金) 17:38:19 ]
#if (_MSC_VER > 1310)
#pragma warning(push)
#pragma warning(disabel:4996)
#pragma warning(pop)
#endif

891 名前:デフォルトの名無しさん mailto:sage [2007/08/31(金) 23:16:38 ]
template <class Ch,class Tr=std::char_traits<Ch> >

これって何してるのですか?

892 名前:デフォルトの名無しさん mailto:sage [2007/08/31(金) 23:20:32 ]
その気になれば、Trをstd::char_traits<Ch>でない何かにすることもできる、と

893 名前:デフォルトの名無しさん mailto:sage [2007/08/31(金) 23:27:59 ]
テンプレート引数のデフォルト値

894 名前:デフォルトの名無しさん mailto:sage [2007/08/31(金) 23:32:10 ]
template <class Ch,class Tr=std::char_traits<Ch> > class basic_string;
があるときに
basic_string<char>
ってするだけで
basic_string<char, std::char_traits<char> >
ってするのと一緒になるという手抜きができますよってこと?

895 名前:デフォルトの名無しさん mailto:sage [2007/08/31(金) 23:59:19 ]
そう

896 名前:デフォルトの名無しさん mailto:sage [2007/09/01(土) 00:05:08 ]
basic_ofstreamを拡張して
EUC出力したいのですけど何か参考になる
URLとかないでしょうか?

897 名前:デフォルトの名無しさん mailto:sage [2007/09/01(土) 00:13:15 ]
http://



898 名前:デフォルトの名無しさん mailto:sage [2007/09/01(土) 00:23:06 ]
つ[www.google.co.jp/]

899 名前:デフォルトの名無しさん mailto:sage [2007/09/01(土) 00:28:17 ]
>>896
コード変換はストリームの管轄ではない。>>879-886
でも、basic_ostream<char>だとcodecvtは使われないのか?

locale関係に挫折したら、邪道だけどストリームバッファを
作成して書き込み前の瀬戸際で変換をかけるという手もあると思う。

900 名前:デフォルトの名無しさん mailto:sage [2007/09/01(土) 10:26:32 ]
unsigned char --> charの変換だけが欲しいのに
なんでここまで大がかりになるのかよーわからん。

C++の言語設計ポリシーがきもいのが原因なんだろうけどさー

901 名前:デフォルトの名無しさん mailto:sage [2007/09/01(土) 11:52:33 ]
【自己責任で】あっさり変換しちゃえ。
究極的にそれができるから、C/C++が好きだ

美しくスマートに書くのは確かにめんどいが

902 名前:!omikuji mailto:sage [2007/09/01(土) 12:47:39 ]


903 名前:デフォルトの名無しさん mailto:sage [2007/09/01(土) 14:51:04 ]
興味本位でModern買って、今日届いたけど難しいんだよな?
もっと勉強してから読むか


904 名前:デフォルトの名無しさん mailto:sage [2007/09/01(土) 15:06:26 ]
第三章を読んで(いい意味で)爆笑するといいよ

905 名前:デフォルトの名無しさん mailto:sage [2007/09/01(土) 16:33:13 ]
ttp://www.scl.kyoto-u.ac.jp/scl/appli/appli_manual/SUNWspro/WS6U2/ja/manuals/stdlib/user_guide/loc_io/19_4.htm
に、JIS<->Unicodeのcodecvtファセット実装例が載っているんだが、
mbstate_tを使わない場合(この実装例では使ってない。つか、mbstate_tなんて
処理系毎の実装詳細に属する代物だから、事実上使えないだろう)、
結局独自のストリーム型を定義するハメになるようだな。
無論wcout等の既存のストリームをimbue()することなんて出来やしない。
これじゃわざわざcodecvtとしてコード変換層を実装する意味はありはしない。

無駄とも思える複雑さを導入していながらこのていたらく。
C++のlocale, streamまわりの設計は本当に糞だな(実装の質も糞だが)。

906 名前:デフォルトの名無しさん mailto:sage [2007/09/01(土) 18:38:25 ]
クラスのメンバにfstreamを持たせるのってよくない?
コピーコンストラクタをちゃんと書いてないとコピーできないよね。
なんかもっといい方法ってあるんだろうか。。

907 名前:デフォルトの名無しさん mailto:sage [2007/09/01(土) 22:00:09 ]
fstream を局所的に使う設計に変更するとか



908 名前:デフォルトの名無しさん mailto:sage [2007/09/01(土) 22:58:17 ]
refcount付きのfstream*入りクラスつくってメンバにいれるとか

909 名前:デフォルトの名無しさん mailto:sage [2007/09/01(土) 22:59:49 ]
unicode_iteratorの最強さは異常
組み込みでも使えるな






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<231KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef