1 名前:858 [2007/12/24(月) 03:41:59 ] C++標準ライブラリの一つ、STLについて。 前スレ 【C++】STL(Standard Template Library)相談室 7 pc11.2ch.net/test/read.cgi/tech/1185986999/ 過去ログ・リンク・書籍紹介は >>2 以降
441 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 19:15:54 ] ユニコード表みるとハングルが異様なほど文字数が多い 中国だけじゃないぞ
442 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 19:24:34 ] >>441 ハングルは現在全く使用されない組み合わせも全部作るように 韓国が強く要求したんだと それでbatangが異常に膨れている。 韓国死ねよ。
443 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 19:30:25 ] >>442 にほんだって「あ゛」とかいれてるじゃん。
444 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 19:35:52 ] unicode.org/charts/normalization/chart_Hiragana.html ここをみるかぎり、「あ゛」は単一のコードとして存在しないようだが
445 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 19:57:49 ] ごめん、勘違いだったかも。でも日本人だって「あ゛」いれたいしぃ。 可変長で6バイトでもよくなったんだから、なんでもいれていいと思う。
446 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 19:59:46 ] >>443 やあチョーセンジン
447 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 20:06:35 ] >>442 欧米人にしたらCJK死ねよなわけだが。 なんでなかよくできんもんかね。
448 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 20:10:36 ] 仲の良い隣国つーのは歴史上稀なわけだが。 稀つーかあるのか。
449 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 20:13:08 ] 日本だって古代は中国と仲良かったじゃん。 あと、中国と韓国。 どちらも、主従関係だけどw
450 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 20:42:13 ] 「仲良かった古代」、って遣唐使廃止まででそ。1000年も前の話だし。
451 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 21:41:37 ] 当時は海ってのは命がけで渡るもの凄い大きな壁だったわけで、 隣国っつーよりは、日本とアメリカ・・・は言い過ぎかもしれんが、 そんな感じだったと思うぜ。
452 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 21:47:52 ] ♪ ♪ \\ ♪ 僕ら〜はみんな〜 生〜きている〜 ♪.// ♪ ♪ ♪ \\ ♪ 生き〜ているけど チョンは氏ね〜 ♪// ♪ ♪ ∧ ∧ ∧ ∧ ∧ ∧ ∧ ∧ ∧ ∧ ∧∧ ♪ ♪ ∧ ∧(゚0 ゚*)∧ ∧(゚0 ゚*)∧ ∧(゚0 ゚*)∧ ∧(゚0 ゚*)∧ ∧(゚0 ゚*)∧ ∧(゚0 ゚*) ♪ (゚0 ゚*)∧ ∧(゚0 ゚*)∧ ∧(゚0 ゚*)∧ ∧(゚0 ゚*)∧ ∧(゚0 ゚*)∧ ∧(゚0 ゚*)∧ ∧ ♪ ∧ ∧(゚0 ゚*)∧ ∧(゚0 ゚*)∧ ∧(゚0 ゚*)∧ ∧(゚0 ゚*)∧ ∧(゚0 ゚*)∧ ∧(゚0 ゚*)♪ ─♪──(゚0 ゚*)| U(゚0 ゚*)| U(゚0 ゚*)| U(゚0 ゚*)| U(゚0 ゚*)| U(゚0 ゚*)| U | U.| | | U | || U. | || U. | || U. | || U. | |〜♪ ♪ | | U U. | | U U | | U U | | U U | | U U | | U U ♪ U U U U U U U U U U U U
453 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 22:06:43 ] www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2271.html こんなのがあったのね。知らんかった 確かにゲームや組み込みではSTLそのまま使うのはキツイわな
454 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 22:11:55 ] >>447 電脳創世記っていう本にあったんだが、そもそも「CJKその他ヨーロッパの小国死ねよ」 ってやってる連中はアルファベットしかないコードしか使ってなくて、それを日本人が 「文字コード問題は俺たちが解決して業績上げますからメリケン共は口出ししなくても良いよ^^」 って挑発して今の流れになったんだと思う。
455 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 02:36:05 ] >>453 ゲームがメモリをキツキツに使うからって、数バイト〜数十〜数百バイト単位の 標準ライブラリのメモリ確保までキツキツにしても、あんまり関係ないと思うんだ。 どうせ画像やサウンドデータが1個増えればだけでそこらへんの努力は 吹っ飛ぶもんじゃないの?処理負荷にしてもさ。
456 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 02:42:20 ] >>442 漢字使用国がそれだけは言っちゃいかんだろ 「じゃお前ら文字数が多すぎるから統合ね」と言われても何も言い返せない むしろ韓国みたいにもっと初期の段階で分離しろと言い張れば分離できたかも しれないのに日本人おとなしすぎ
457 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 02:55:03 ] 文字、文字コード関係はこっちいけよ
458 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 02:55:33 ] pc11.2ch.net/test/read.cgi/tech/1180250376/
459 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 02:58:15 ] 英語・日本語・中国語間のソフトやマニュアルの翻訳をやってるけど ほぼ同じ意味の文章なら中国語が一番少ないデータサイズで書ける
460 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 03:06:02 ] そんなの中国語知らん俺でも分かるっちゅーの
461 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 03:47:21 ] utf-8で? アニメの中国語のfansubとか見るとかなが入った日本語と 漢字ばっかりの中国語で文字数そんなに変わらんように見えたけど。 だから画数で言えば中国語は不利。
462 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 04:43:57 ] 一文字に線をたくさん詰め込むんだから、字数が少なくならないとおかしい。 ような気もする。
463 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 06:14:49 ] >>455 ゲーム機はメインメモリ領域が結構キツイんでないの
464 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 06:33:10 ] >>440 嘘過ぎる
465 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 06:40:30 ] さすがに>>440 は釣りじゃないのか
466 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 06:41:36 ] >>462 ちょうどいいのがなかったけど、これとか jp.youtube.com/watch?v=BdXniHjh2WM
467 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 07:28:09 ] 詩とか台詞の翻訳はちょっと特殊じゃないか? ってどこへ行こうとしてるんだこのスレは
468 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 15:13:48 ] 標準STLではunicodeをちゃんと扱えるんでしょうか? 処理系依存では(例えばVC++とか)扱えそうですけど。
469 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 16:35:57 ] ちゃんと扱う、の定義次第。 wstring, wchar_t を問題なく扱えればOKなのか?それなら問題ないよ。 ロカール処理やエンコーディング変換のための十分なサポートがあるか?それなりしかない。
470 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 21:06:41 ] >>455 コンテナ(というかアロケータ)のメモリ効率は重要だと思うが。 アラインメントやページ境界にかなり気をつかっているらしい。 演算効率についてはちょっと読みきれていないが... inline展開とか命令キャッシュ効率とか、分岐予測の弱いプロセッサのこととか、 いろいろ書いてある。 でかいボトルネックは取り除いた上でさらにどうがんばるかって話では。 >>463 "Game platform memory metrics"ってところに主要なゲーム機のspecが書いてある。
471 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 21:17:44 ] EAがやたらマルチプラットフォームでゲームを作れるのは この辺がしっかりしてるからかな まぁ無理だろうけど、一部位公開してほしいな
472 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 23:48:57 ] VC9でライブラリを作ろうとするとえらーがでます。 使えないですか?
473 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 23:53:57 ] 主語を書け。
474 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 00:12:34 ] むちゃぶりだな
475 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 00:50:00 ] バージョンは5.1.5です。
476 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 01:43:11 ] わたし にほんご わかりません
477 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 01:59:02 ] ベンチャーキャピタルが図書館の設立に失敗?
478 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 15:09:31 ] STLportじゃないの
479 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 12:03:42 ] マルチスレッドにてqueueを使いたいのですが、 STL等にセマフォを任せることは出来ないでしょうか?
480 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 12:06:11 ] 基本的にSTLはスレッドセーフではない。
481 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 12:31:30 ] >>479 いまどきの実装であれば、たいていドキュメントにマルチスレッドについて書かれている。 そういう記述が無いとか、書かれた保証では不十分だとか、広い移植性が必要だとか、 ドキュメントを読むのがメンドイとか言うんなら自分でなんとかするしかない。
482 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 18:06:11 ] std::stringの配列の連続性は保障されてないそうですが、 実際配列が連続じゃない実装をしてる環境ってあるんですか?
483 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 18:10:37 ] 配列じゃないよ
484 名前:479 mailto:sage [2008/01/31(木) 18:50:24 ] >>480-481 ありがとうございました。 無い事が分かって安心しました。 必死で作って、既に有ったらかなり凹むのでw(勉強にはなるけど) WinAPIのCreateSemaphore()かmutexで検討したいと思います。
485 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 19:52:11 ] まあ実際はc_str()の動作を速くするために連続の場合が多いけどな。 しかもヌルターミネータ文字まで入ってたり。
486 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 19:54:51 ] >>482 ない。というか、次期の規格(C++0x)で連続性が保証されるようになる。 N2461) 21.3.1 basic_string general requirements [string.require] 3 The char-like objects in a basic_string object shall be stored contiguously. That is, for any basic_string object s, the identity &*(s.begin() + n) == &*s.begin() + n shall hold for all values of n such that 0 <= n < s.size().
487 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 19:58:43 ] std::ropeは標準じゃないけど、初めから切れ切れの文字列を つなぎ合わせる事を想定してるな。
488 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 20:01:32 ] だからstd::ropeにはメンバ関数c_str()がない。
489 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 20:02:47 ] でもSTLportのstd::ropeにはc_str()があったりする。変なの。
490 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 20:04:03 ] 標準じゃないのに std を使うのは違和感あるよな。
491 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 20:06:10 ] STLportはSGI-STLに妙なこだわりを持ってるよな。 何か言われてんのかな。
492 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 21:13:41 ] > 基本的にSTLはスレッドセーフではない 例えばどんな場合?
493 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 21:15:33 ] >>492 どんな場合って・・・何するにしてもスレッドセーフを要求する 仕様なんてないはずだけども。
494 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 21:17:02 ] STLportはスレッドセーフだったような
495 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 21:21:14 ] うーん、書いてないとスレッドセーフでないってのも・・ beginthread一回でも呼ぶプロセスではstlは一行も使えないってことに なりそうな。 たぶん皆、同一インスタンスに複数スレッドでアクセスしなければ平気 くらいな解釈で使ってるんだよね
496 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 22:41:35 ] 標準にスレッドセーフという概念がないから語っても意味ないだろ
497 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 23:19:44 ] スレッドの概念自体が無い
498 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 23:26:59 ] ちっ、また自己責任かよ。つかえねーな
499 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 23:30:23 ] 効率のためにintの幅すら決めない言語に向かって何を言ってるのかね
500 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 23:39:35 ] int幅が実装依存なのはちゃんと作ってれば別に問題ないだろ。
501 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 23:41:25 ] 原子力発電所も冷凍餃子もちゃんと作ってれば別に問題無いぞ。
502 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 23:41:37 ] AMD64は自然な長さが64ビットなのにintが32ビットだな
503 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 23:48:23 ] intが64bitな処理系は現存するのか? その場合、32bitを示す型は何だろう?
504 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 23:52:06 ] C言語が設計された時期が古いので64ビットとか考えてなかったんだろ
505 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 23:52:21 ] >>503 ILP64 でググれ。
506 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 00:09:02 ] 32bitといったらlongなんじゃないのか
507 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 00:16:41 ] >506 まさか、int 64bitでlong 32bitと言ってる?
508 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 00:17:56 ] ねたにまじ(ry
509 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 00:24:17 ] LP64のほうが素直だねやっぱり。 I16/LP32はDOSで経験があるし(w
510 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 00:25:16 ] もうビット数気にする処理には stdint.h 使えばいいということで。
511 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 00:29:14 ] _int64とかタイプしたくないよヽ(`Д´)ノウワァァァン 4G超えのファイルなんかザラだろうが。
512 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 00:31:19 ] typedef すれば?
513 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 00:34:47 ] typedef _int64 long long ってできねーだろ
514 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 00:37:09 ] え?
515 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 00:37:34 ] long long とか名前長くしてどうするよ。
516 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 00:42:24 ] long long は既にあるべよ。long_long_long とかにしようべ。
517 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 00:44:20 ] >>515 C99にあるんですよlong long。 >>516 そうします。
518 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 00:47:19 ] long long ago むかーしむかし、あるところに長い長いアゴの男がおりましたとさ
519 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 00:50:58 ] _int64とはVC++くさいが、 VC++ .NET 2003からはlong longも使えるぞ。
520 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 00:51:20 ] 中学の英語の授業中誰もが経験するであろうネタだな
521 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 00:53:43 ] >>516 別に知っとるが、_int64 の方が短くて分かりやすくていいじゃン
522 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 00:55:01 ] i8 u8 i16 u16 i32 u32 i64 u64 これでtypedefしとけば字数的にはint未満だ。何かとぶつかりそうだけどな。
523 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 00:55:52 ] そこで名前空間ですよ。
524 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 00:55:54 ] 以下(8bitのみ未満)の間違い。
525 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 00:56:53 ] my_primitive_type::u64 なげーよ。
526 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 00:59:03 ] だから、自分のプログラム全体を特定の名前空間内に入れて、 そこで i8 とか定義しとけば何も付けなくて大丈夫。
527 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 02:14:27 ] stdintはC++の標準に入ったんだっけか intN_tな連中。
528 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 02:18:41 ] _tてなんかの略?
529 名前:デフォルトの名無しさん [2008/02/01(金) 02:30:24 ] type
530 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 02:47:05 ] >>527 最新のドラフトに cstdint と stdint.h が載ってた。次の改訂 (C++0x) で入るみたいだね。
531 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 06:38:05 ] C++0xはC99の(ほぼ)上位互換になるんですか それともC99で使えてもC++0xではサポートされない機能もあり?
532 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 07:22:07 ] コンパウンドリテラルとか 配列個数に変数使うとか そういうのは C++0x で無視
533 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 07:24:48 ] restricted ポインタとか色々無視されてる。
534 名前:デフォルトの名無しさん [2008/02/01(金) 07:54:32 ] 「配列の要素数に変数」はSTLと相性悪すぎだからな。
535 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 08:29:10 ] >>534 kwsk
536 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 09:01:10 ] コンパイル時に型が決まらない、だっけ?
537 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 13:51:10 ] type* v = new type[n]; ... delete[] v; の糖衣構文にしてくれるだけでいいのに。
538 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 16:33:28 ] stlportsは2008には使えないの?
539 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 16:49:23 ] >>538 STLPort はインストーラ(make)が VS2008 にまだ対応していない。 手動でインストールするなら可能らしい。STLport VS2008 でググレ。俺はまだ試していないので、試したら結果を教えてくれ。
540 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 17:54:00 ] >>538 iostream使うとC2487がいっぱい出るよ
541 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 18:14:05 ] っ _STLP_STATIC_CONST_INIT_BUG