■過去ログ置き場に戻る■ 1- 前250 次250 最新50


[memo] "9999999999_00.html#R20" という感じで、URLの最後に "#RレスNo" を追加すると幸せになれます。

C++相談室 part53
751 名前:デフォルトの名無しさん :2006/10/25(水) 09:34:07
例外コードの記述
ttp://www.microsoft.com/japan/msdn/columns/csharp/csharp07192001.aspx


752 名前:デフォルトの名無しさん :2006/10/25(水) 10:05:14
元ネタがそんなにコストを気にしているようなものじゃな無いから、別にいいんでね?

753 名前:デフォルトの名無しさん :2006/10/25(水) 10:13:30
>>743
正常系のパスでコストがかからなければ、巻き戻すときに
コストがかかるのは別にいいだろ。

例外安全性は、べつに言語の例外機能を使わなくても、
まっとうなプログラムなら戻り値なりなんなり使って
確保しないといけないしね。

754 名前:デフォルトの名無しさん :2006/10/25(水) 14:07:12
だから、正常系でも多少コストがかかるから嫌われるんだよ。

どのローカルオブジェクトが構築済みか等を全部記録しなきゃ
正常に巻き戻せないのはわかるよね。

755 名前:デフォルトの名無しさん :2006/10/25(水) 14:17:28
そんなダダっ子は死んでしまえ

756 名前:デフォルトの名無しさん :2006/10/25(水) 14:24:28
巻き戻すって言う古い奴だから、そんな時代遅れほっとけよ。


757 名前:デフォルトの名無しさん :2006/10/25(水) 14:25:41
>>754

その「多少のコスト」がどれくらいなのか説明しろよ
お前の使ってる処理系でいいから。

758 名前:デフォルトの名無しさん :2006/10/25(水) 19:02:45
インライン関数についてです。

.asmファイルを見たときに、
call func
のような記述がある場合、(実際はもっと複雑です)
funcはインライン化されていないのでしょうか?

759 名前:デフォルトの名無しさん :2006/10/25(水) 19:05:44
インライン化でぐぐれ。

760 名前:デフォルトの名無しさん :2006/10/25(水) 19:31:17
各種のRDBMSに対応するために、DB製品ごとの違いを
ラップしてくれるライブラリというのはありますか?

761 名前:758 :2006/10/25(水) 19:34:33
>>759
ぐぐったりはしてみたのですが、情報が見つけられないです。
何かインライン化されたかどうかを確認する手段はないのでしょうか?

762 名前:デフォルトの名無しさん :2006/10/25(水) 19:52:08
>>761
「インライン関数」を何だと思ってる?

763 名前:デフォルトの名無しさん :2006/10/25(水) 21:19:53
call funcってinline化されてるんですか?(*><)
call funcってinline化されてるんですか?(*><)
call funcってinline化されてるんですか?(*><)

764 名前:デフォルトの名無しさん :2006/10/25(水) 22:18:14
>>760
Windowsで動く奴ならADO・OLE DB・ODBCから好きなもの選べば?

765 名前:758 :2006/10/25(水) 22:30:16
call funcは関数呼び出しっぽいなあということは感じていたのですが、アセンブラを調べてみてわかりました。
やっぱりcallは関数呼び出しのときに使われるんですね。

そもそも何故このようなことを言い出したかというと

inline int func(int a) {
return a+5;
}

http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/vccore/html/_core_.2f.ob.asp
これによると「/O1、/O2、または /Ox を使用するときに、/Ob2 は有効になっています」と書いてあり、
これくらい単純な関数ならインライン展開されるだろうと期待して/O2でコンパイルしたにも関わらず、
call funcが見つかりました。
VCTK付属のコンパイラで試した限り、/O2だけではダメで/Ob2をオプションに含める必要があることがわかりました。

766 名前:デフォルトの名無しさん :2006/10/25(水) 22:41:19
そんなくだらない話よりも例外の話の続きが気になるんだが。

767 名前:デフォルトの名無しさん :2006/10/25(水) 22:41:34
で、それを気にしてどうする?

768 名前:デフォルトの名無しさん :2006/10/25(水) 22:49:14
[]演算子は継承しても、派生クラスから呼び出せるんですが、
=演算子は継承すると、派生クラスから呼び出されていなようです。

仕様ですか?


769 名前:デフォルトの名無しさん :2006/10/25(水) 23:09:15
コンパイラが生成するデフォルトのoperator=が、基本クラスのoperator=を隠蔽する
と思った。

770 名前:デフォルトの名無しさん :2006/10/25(水) 23:10:07
仕様。
規則上の理由は、暗黙的に定義されるoperator =()が基底クラスのそれを上書きするため。
根本的な理由は、スライシング防止のため。基底クラスのoperator =()が派生クラスの分まで面倒を見れるはずが無いから。

771 名前:デフォルトの名無しさん :2006/10/25(水) 23:10:58
つ コピーコンストラクタ

772 名前:デフォルトの名無しさん :2006/10/25(水) 23:13:37
>>754
> どのローカルオブジェクトが構築済みか等を全部記録しなきゃ
> 正常に巻き戻せないのはわかるよね。

デストラクタにまかせちゃいけないの?

773 名前:デフォルトの名無しさん :2006/10/25(水) 23:14:47
>>770
ありがとうございます!


774 名前:769 :2006/10/25(水) 23:18:42
(・-;)

775 名前:デフォルトの名無しさん :2006/10/26(木) 00:06:39
>>754
時代遅れ。
今は(けっこう前から)正常系ではコスト(命令サイクル)がまったく不要な
テーブルアプローチによる実装が主流。ただし Windows 以外。

このアプローチでは、テーブルのぶんコードサイズが少し多めになる。
キャッシュへの影響が気になるところだが、きっちり正常系のコードと
わけて配置されていれば、そこも問題ないと思う。

776 名前:デフォルトの名無しさん :2006/10/26(木) 00:25:05
>>775
テーブルアプローチとかその辺の設計手法載ってる本ってあります?
あとテーブルアプローチって俗称で正式な名前じゃないですよね?
本当はなんて名前なのですか?

777 名前:デフォルトの名無しさん :2006/10/26(木) 00:35:42
Windowsは構造化例外がfsセグメントとか使ってるからね。

778 名前:デフォルトの名無しさん :2006/10/26(木) 00:48:46
>>776
本じゃないけど。
http://www.open-std.org/jtc1/sc22/wg21/
"ISO/IEC TR 18015:2006 C++ Performance - draft TR"

「テーブルアプローチ」はここに載ってる言葉。
これに対して try ブロックに出入りするたびに追加のコードが
挿入される方法は「コードアプローチ」と呼ばれている。

779 名前:デフォルトの名無しさん :2006/10/26(木) 01:00:59
>>778
"Table" ApproachはIEEEの論文にいろいろ乗ってねオレが無知だったよすまね
でもさ、オレ最近昇進して下のやつらのコード見るんだけどforのネストからtryで抜けたり
してるやついるんだけど、こういうやつらにどんなふうに言うのが正しいんだろうか

780 名前:デフォルトの名無しさん :2006/10/26(木) 01:02:24
gotoの正しい使い方を教えろ

781 名前:デフォルトの名無しさん :2006/10/26(木) 01:04:42
何も言わない
もはや達観と諦めの境地

782 名前:デフォルトの名無しさん :2006/10/26(木) 01:30:51
>>779
こいつそろそろウザイな。誰かキャッチしてやれよ。

783 名前:デフォルトの名無しさん :2006/10/26(木) 01:42:28
構造化プログラムちゃんと仕込んどけ

784 名前:デフォルトの名無しさん :2006/10/26(木) 02:36:36
>>779
>昇進して下のやつらのコード見るんだけど
ダウト。会社から見れば単に押し付ける仕事が増えただけで掃き溜め要員であることには変わりがない。

785 名前:デフォルトの名無しさん :2006/10/26(木) 02:51:12
キャッチしちゃってね。

786 名前:デフォルトの名無しさん :2006/10/26(木) 03:00:29
>>1


787 名前:デフォルトの名無しさん :2006/10/26(木) 04:05:49
>>784
誰も何も言ってない切り口を持ち出して
ダウトもなにも無いと思うが

788 名前:デフォルトの名無しさん :2006/10/26(木) 05:38:29
「ダウト」 って、「間違い」 じゃなくて 「疑惑」 って意味だよね?

789 名前:デフォルトの名無しさん :2006/10/26(木) 06:15:13
そう。あとに続く断定口調から考えて、>>784は間違って覚えてる可能性大。

ついでにいえばこのダウトっての、ずいぶん前にちょっと流行ったやつだよね。
世間の世知辛さを、勝ち組の傲慢さではなく、負け組の湿気をたっぷり含んだ言い方で
妙に偉そうに語るオーラと合わせて考えるに、ちょっと可哀相な感じのオッサンが想像できる。

790 名前:デフォルトの名無しさん :2006/10/26(木) 06:21:54
普通にトランプゲームから来てるんじゃないの>ダウト

791 名前:デフォルトの名無しさん :2006/10/26(木) 09:22:31
つまり、「掃き溜め要員であることには変わりがない」のだから、「昇進して」というのは「疑惑」だってことか。

792 名前:デフォルトの名無しさん :2006/10/26(木) 09:49:05





















お前ら随分暇そうだな

793 名前:デフォルトの名無しさん :2006/10/26(木) 12:29:33
だから、キャッチするなよ。
例外なんだからさ、スルー、スルー

794 名前:デフォルトの名無しさん :2006/10/26(木) 13:34:19
>775
>このアプローチでは、テーブルのぶんコードサイズが少し多めになる。
>キャッシュへの影響が気になるところだが、きっちり正常系のコードと
>わけて配置されていれば、そこも問題ないと思う。
少なくとも Itanium に関しては, table 自体と table のルックアップに関する
コードについてこの仕様が明文化されてますね.
http://www.codesourcery.com/cxx-abi/abi.html#unwind
ICC, g++ がすでにこれを実装済みだったと記憶しています.

あと, catch ブロックのコードですら正常系のプログラムテキストとは別の
"coldな" 場所に配置して,正常系のコードサイズを圧迫しないようにする
実装のコンパイラもあったはずです
(ICC が実装していたはずですが今手元に spec. が無いので確認できない).

795 名前:デフォルトの名無しさん :2006/10/26(木) 13:42:53
>>790
ページワンだっけ?


796 名前:デフォルトの名無しさん :2006/10/26(木) 17:51:25
二次元配列のクラスを動的に確保するために3重ポインタを使って
for(int x = 0;x < X;x++)
p[x] = new Class*[Y];
for(int x = 0;x < X;x++)
for(int y = 0;y < Y;y++)
p[x][y] = new SubClass();
としました
これを解放するために
for(int n = 0;n < X;n++)
for(int m = 0;m < Y;m++)
delete p[n][m];
for(int n = 0;n < X;n++)
delete [] p[n];
delete [] p;
としたらエラーが出ました

何が問題なのでしょうか?教えてください
コンパイラはVC++.NET 2002を使ってます

797 名前:デフォルトの名無しさん :2006/10/26(木) 17:59:06
エラーの詳細書いてないのはスルー

798 名前:デフォルトの名無しさん :2006/10/26(木) 18:04:26
>>796
ソース全部貼れ
コンパイルエラーなのか実行時エラーなのかくらい書け

799 名前:デフォルトの名無しさん :2006/10/26(木) 18:09:10
多次元配列なんぞ使うな。以上。

800 名前:デフォルトの名無しさん :2006/10/26(木) 18:29:21
じゃあ何を使えばいいんだよ!

801 名前:デフォルトの名無しさん :2006/10/26(木) 18:59:26
p[x + y * x_size]

802 名前:デフォルトの名無しさん :2006/10/26(木) 21:13:06
>>790
http://ja.wikipedia.org/wiki/%E3%83%80%E3%82%A6%E3%83%88%E3%82%92%E3%81%95%E3%81%8C%E3%81%9B!


803 名前:デフォルトの名無しさん :2006/10/26(木) 22:13:45
っ boost::multi_array

804 名前:デフォルトの名無しさん :2006/10/26(木) 22:35:39
C++効率的最速学習徹底入門
この本て詐欺っぽい?

805 名前:デフォルトの名無しさん :2006/10/26(木) 22:55:32
>>804 どういう詐欺?

806 名前:デフォルトの名無しさん :2006/10/26(木) 22:59:08
>>805
効率的最速学習とかよく
英会話○日で習得できるとか類の怪しい本ですか?

807 名前:デフォルトの名無しさん :2006/10/26(木) 23:48:41
スレ違い

808 名前:デフォルトの名無しさん :2006/10/27(金) 01:07:42
タイトルが中国の本っぽい

809 名前:デフォルトの名無しさん :2006/10/27(金) 01:15:00
http://www.amazon.co.jp/exec/obidos/ASIN/4774115142

ネタじゃないのかw

810 名前:デフォルトの名無しさん :2006/10/27(金) 03:50:07
publicであり、
クラス外部からのアクセスにはconstとして振る舞い、
クラス内部からのアクセスには非constとして振る舞う、
といったメンバ変数を作りたいのですが、どのような方法があるでしょうか。


811 名前:デフォルトの名無しさん :2006/10/27(金) 04:16:31
やっぱprivateにしてget()を、、、とかじゃダメだから聞いてるのか(´・ω・`)

812 名前:デフォルトの名無しさん :2006/10/27(金) 04:21:32
>>810
真面目に答える気はない。
こういうことができるというだけで……。

class Foo
{
public :
  Foo(int x) : value_(x), value(value_) {}

private :
  int value_ ;
public :
  int const & value ;
} ;

Foo::valueは、クラス外部からはconstとして振る舞う。
クラス内部からは、Foo::value_でアクセスすること。

813 名前:デフォルトの名無しさん :2006/10/27(金) 09:21:53
メンバ変数を全部mutableにすればいいとかそんな話?

814 名前:デフォルトの名無しさん :2006/10/28(土) 00:44:48
>810
何言ってるのかわからん……
メンバ変数を外部からアクセスするって、一体何のこと?


815 名前:デフォルトの名無しさん :2006/10/28(土) 02:36:15
あるオブジェクト A &aがあったとき参照オブジェクトの渡し方として
以下の方法があった場合コピーコンストラクタが行われるのは両方それともどちから片方だけですか?

なぜか自分の環境ではクラスのコンストラクタに渡すと中のオブジェクトが空になってしまいます。

クラスメソッドtestに渡す
void test(A +a)

別クラスhogeのコンストラクタに渡す
hoge(A &a):hogeA(a){}

816 名前:デフォルトの名無しさん :2006/10/28(土) 03:24:03
&ついてなけりゃ値渡しだから、テンポラリにオブジェクトが生成される。
その際にコピーコンストラクタは呼ばれるだろう。

中のオブジェクトが空になるのは、単にコードがバグってるだけ。
コピーコンストラクタ云々は関係ない。

817 名前:デフォルトの名無しさん :2006/10/28(土) 08:37:46
>>812
ありがとうございます。
参考になりましたが、その方法はメモリ使用量が増加してしまいました。

>>813
クラス実体がconstという訳ではないのでどうにも……

いろいろ考えましたが、
とりあえずconst_castで強引にやってみます。

818 名前:デフォルトの名無しさん :2006/10/28(土) 08:44:57
何故メンバ変数をpublicにするの?

819 名前:デフォルトの名無しさん :2006/10/28(土) 08:47:04
外からのアクセスはメンバ関数を通せばいいだろ。

820 名前:デフォルトの名無しさん :2006/10/28(土) 09:57:47
C++の良書教えて

821 名前:デフォルトの名無しさん :2006/10/28(土) 10:23:02
>>820
テンプレにある本でも買っとけ。

822 名前:デフォルトの名無しさん :2006/10/28(土) 11:22:10
const *char
const unsigned *charに変換したいけどどうやってするの?

823 名前:デフォルトの名無しさん :2006/10/28(土) 12:15:13
まず文法の載っている本を読む。

824 名前:デフォルトの名無しさん :2006/10/28(土) 15:05:51
char*からunsigned char*の変換は非常に難しい
やめたほうがいい。

825 名前:デフォルトの名無しさん :2006/10/28(土) 15:12:17
すいません、質問させてください。
共用体型の意味って何でしょうか?
同時に値を格納できないのならば、意味が無いような気がするのですが・・・
共用体型を宣言する時にint a; int b;とした場合、結局格納できる値が一つなら、単にint a;で書いてしまえばいいだけではないのですか?


826 名前:デフォルトの名無しさん :2006/10/28(土) 15:25:26
>>825
その発想で行くと全部void*でおkになるね

827 名前:デフォルトの名無しさん :2006/10/28(土) 15:30:47
unionはあまり使わないほうが……
カリカリにチューンしているのなら別だけど。

boost::anyの方が便利だよ。


828 名前:デフォルトの名無しさん :2006/10/28(土) 15:31:32
>>826
えっと、どういう意味でしょうか?

829 名前:デフォルトの名無しさん :2006/10/28(土) 15:46:47
>>828
違う型を共用するところに意義がある共用体の存在意義を否定するなら、
違う型へのポインタなんぞを使わずに全てvoid*で済ませばいいだろ、という話。

830 名前:デフォルトの名無しさん :2006/10/28(土) 15:53:03
>>824
char がsigned char なのか unsigned charなのかは
環境依存だからとかそういう話?

831 名前:デフォルトの名無しさん :2006/10/28(土) 16:03:04
一応、unionは確保したメモリを共用できるというvoid*にはない
特長もあるけど、型安全が犠牲になるんだよね。
C++には合わないよ。

832 名前:デフォルトの名無しさん :2006/10/28(土) 16:05:20
union
{
    float f;
    unsigned int n;
}; // sizeof (float) == sizeof (unsigned int)だと仮定して

f = 123.456e7;
するとnからはfのメモリ上のビットパターンが読み取れてウマーなこともあった。
まあunionがなくてもreinterpret_cast使えばいいだろと言う程度のことではあるが。

833 名前:デフォルトの名無しさん :2006/10/28(土) 16:08:29
有名っちゃ有名なのは、sockaddr_in構造体とか、windowsのビットマップを表すような構造体とか(バージョンごとに後半のメンバが違う)いうのがある


はず

834 名前:デフォルトの名無しさん :2006/10/28(土) 16:09:05
sockaddr_in は sock_addrinだたね

835 名前:デフォルトの名無しさん :2006/10/28(土) 16:09:25
SDLのイベントもunionだね

836 名前:デフォルトの名無しさん :2006/10/28(土) 16:16:08
もしもし?

837 名前:デフォルトの名無しさん :2006/10/28(土) 16:40:08
きりんさんがすきです。

838 名前:825 :2006/10/28(土) 17:21:42
みなさんレスありがとうございます。
何となく意味がわかりました。
とりあえず今はunionを使うのは控えておきます
まだあやふやな所もありますし。

839 名前:デフォルトの名無しさん :2006/10/28(土) 17:22:12
>>829
両方ともint型じゃん

840 名前:デフォルトの名無しさん :2006/10/28(土) 17:24:29
で?

841 名前:デフォルトの名無しさん :2006/10/28(土) 17:33:33
char *からunsigned char *に変換できませんn。
どうやってやるの?

842 名前:デフォルトの名無しさん :2006/10/28(土) 17:38:58
union使ったことない。
int型とdouble型共有したら2.54とか小数点だったらdouble型、2とかだったらint型で事実上格納されるの?
教えて

843 名前:デフォルトの名無しさん :2006/10/28(土) 17:48:28
>>841
static_cast<unsigned char *>(static_cast<void*>(x))

844 名前:デフォルトの名無しさん :2006/10/28(土) 17:55:39
reinterpret_cast1回でいいだろ。

845 名前:デフォルトの名無しさん :2006/10/28(土) 17:59:37
>>842
そういう理解の仕方の人にはお勧めできません。
つーか、>832の意味が理解できていない?

そう言えばXLibのイベント構造体もunion使ってたなぁ。
あちらはイベントの種類ごとに違う構造なのを吸収するのが目的だが。

846 名前:デフォルトの名無しさん :2006/10/28(土) 18:43:47
>>844
reinterpret_cast は実装依存。 void* 経由の static_cast は動作について規定されている。
そんなことはないですか?

847 名前:デフォルトの名無しさん :2006/10/28(土) 18:49:38
union ARGB {
  unsigned long argb;
  unsigned char alpha, red, green, blue;
};

ARGB color;

color.alpha = 0xFF;
color.red = 0;
color.green = 0xEE;
color.blue = 0xAA;

cout << "ARGB = " << color.argb; // "ARGB = 0xFF00EEAA"

848 名前:デフォルトの名無しさん :2006/10/28(土) 18:52:53
>>846
そんなことはないだろう。

俺の記憶では、何かポインタ型のオブジェクトをvoid*へ変換したものを、
元のポインタ型(か互換な型)以外へ変換すると、未定義だか処理系依存だかで、
結局reinterpret_castと変わらないだろということになるはず。

849 名前:デフォルトの名無しさん :2006/10/28(土) 19:22:50
人生相談室はこちらで宜しいでしょうか??

850 名前:デフォルトの名無しさん :2006/10/28(土) 19:26:11
VC++のstd::basic_stringの実装が短文字列最適化のためにunion使ってる

851 名前:デフォルトの名無しさん :2006/10/28(土) 19:27:18
>>846
5.2.10 Reinterpret cast の 7 によると、 char* から unsigned char* に
reinterpret_cast で変換した値は unspecified (なんて訳すんだっけ?)となる。

4.10 Pointer conversion の 2 によると、 char* から void* への変換結果は
char 型オブジェクトの記憶域の開始位置を指すと決められている。そして
5.2.9 Static cast の 6 にこれとは「逆」の変換が可能だとされている。

記憶域を指す void* からオブジェクトを指すポインタへの変換は malloc() の
戻り値に対して必要になる変換なので問題ないと思うけど、規格中に明示的な
記述を見つけることはできなかった。記憶域の開始位置からオブジェクトへの
ポインタを作るということで、 5.2.9 の 6 にある「逆」の変換にあたるのだろうか?

どっちかというと後者のほうが移植性が高いと言えなくもない、というぐらいの違いかな。

852 名前:デフォルトの名無しさん :2006/10/28(土) 22:39:09
>>851
任意の型Tについて T* p があったとき、static_cast は
static_cast<T*>(static_cast<void*>(p)) == p を保証するんじゃなかったっけか。

正当な変換が定義されていない別の型に変換するのは、
規格上はどうやっても未定義だと思うが。


853 名前:デフォルトの名無しさん :2006/10/28(土) 23:03:45
>>852
元に戻すことができるのは 5.2.9 の最後に書いてある。

「定義されていない」のが「未定義」なのはあたりまえ。
今は正当な変換が定義されているかどうかを論じているんだろ?

854 名前:初心者 :2006/10/28(土) 23:39:43
どちら様教えて、VC++プログラミングするときにひとつのボタン押して
他の.exeファイル実行できるようにどうすればいいですか??

855 名前:デフォルトの名無しさん :2006/10/28(土) 23:42:06
>>854
日本語でおk

856 名前:初心者 :2006/10/28(土) 23:45:48
>>855
意味わからないですけど、詳しく


857 名前:デフォルトの名無しさん :2006/10/28(土) 23:51:25
>>854
マルチは氏ね

858 名前:デフォルトの名無しさん :2006/10/28(土) 23:51:53
>>857
マルチだったのかw

859 名前:デフォルトの名無しさん :2006/10/28(土) 23:55:01
どりゃ〜〜〜

860 名前:デフォルトの名無しさん :2006/10/28(土) 23:59:40
文字数を知る方法を教えてほしいのですが
例えば

char a[20];
cin << "abcd";

とするとき 文字数が4であることを知るにはどうすれば
よいのでしょうか?

861 名前:デフォルトの名無しさん :2006/10/29(日) 00:03:22
シュールだ

862 名前:デフォルトの名無しさん :2006/10/29(日) 00:19:49
>>860
strchr(a,'\0')-a
memchr(a,'\0',UINT_MAX)-a
strrchr(a,'\0')-a
strlen(a)


863 名前:デフォルトの名無しさん :2006/10/29(日) 00:19:52
ちょww

864 名前:デフォルトの名無しさん :2006/10/29(日) 00:20:42
>>860
とりあえずコンパイル通そうぜ?

865 名前:デフォルトの名無しさん :2006/10/29(日) 00:21:24
>>862
お前全然問題がわかってないw

866 名前:860 :2006/10/29(日) 00:22:19
すいません。訂正

char a[20];
cin << a;

aにabcdと文字が入っているとすると文字数が4であること
知る方法について教えていただけないでしょうか? 

867 名前:デフォルトの名無しさん :2006/10/29(日) 00:22:39
もうどこからつっこんでいいやら・・・

868 名前:デフォルトの名無しさん :2006/10/29(日) 00:23:15
>>866
とりあえずコンパイル通そうぜ?

869 名前:866 :2006/10/29(日) 00:25:01
cin >> a; でした すいません

870 名前:デフォルトの名無しさん :2006/10/29(日) 00:26:09
えへ、えへへへ

871 名前:デフォルトの名無しさん :2006/10/29(日) 00:26:34
>>869
一文字ずつ終端文字がくるまで数えればいいんじゃない?

872 名前:デフォルトの名無しさん :2006/10/29(日) 00:29:51
悪いことは言わんからとりあえず std::string を使うことを覚えろ。

873 名前:デフォルトの名無しさん :2006/10/29(日) 00:39:58
#include <iostream>
#include <string>

int main()
{
    std::string s;
    std::cin >> s;
    std::cout << s.size() << ' ' << s << std::endl;
}

874 名前:側近中の側近 ◆0351148456 :2006/10/29(日) 00:51:51
>>866
(っ´▽`)っ
もし、charでいきたいなら
strlen(a)でOK。
ただ、C++なんだからstringクラスがお勧め。>>873の通り。
charは危険がいっぱいだからね☆
>>866で、20字以上入力されたらアウトだよ。

875 名前:デフォルトの名無しさん :2006/10/29(日) 01:02:58
アウトってなんですか?

876 名前:デフォルトの名無しさん :2006/10/29(日) 01:08:14
>>875
よよいのよいっってやつだよ

877 名前:側近中の側近 ◆0351148456 :2006/10/29(日) 01:09:22
>>875
(っ´▽`)っ
どんな動きをするかわからないってことだよ。
プログラムが異常終了する、結果が不正になる。とかね。
20文字目以降が、メモリ上の予想していないところに書き込まれるから。
char a[20];と宣言しているように、aには20字(\0含む)しか入れちゃダメ。

878 名前:860 :2006/10/29(日) 01:15:57
int e = 0;
int mozisu = 0;
a[20];

cin >> a;

while (a[e] != '\0'){
e++;
mozisu++;
}


一応 文字数はわかることができました。

879 名前:デフォルトの名無しさん :2006/10/29(日) 01:20:00
>>878
とりあえずコンパイル通そうぜ?

880 名前:デフォルトの名無しさん :2006/10/29(日) 01:24:50
>>878
わざわざライブラリ使わんのもあれだがeとmozisuを分ける意味がわからん。
どっちも同じ値じゃん。

881 名前:デフォルトの名無しさん :2006/10/29(日) 01:25:54
>>878
strlenを使うようにすると、こうなる。
#include <iostream>
#include <cstring>

int main()
{
    a[20];
    std::cin >> a;
    int mozisu = std::strlen(a);
    std::cout << mozisu << ' ' << a << std::endl;
}

882 名前:デフォルトの名無しさん :2006/10/29(日) 01:29:14
>>880
察するにプログラミング自体が、初めてなんじゃね? 細かいことは大目に見てやろうぜ。
俺的には「初心者です」とかって言わないところがとっても好印象だ。

883 名前:デフォルトの名無しさん :2006/10/29(日) 01:35:07
俺的には、とっととAccelerated C++読めと言いたいけどな。
std::stringクラス使わん理由がわからん。

マズい設計とは言え、char[]使うより100万倍マシだからな。


884 名前:878 :2006/10/29(日) 02:08:01
すいませんでした。
知識がないのでstd::stringクラス
というものを知りませんでした。
もっと勉強します。

885 名前:デフォルトの名無しさん :2006/10/29(日) 03:02:27
つーか寧ろ、初心者スレに行ってくれ。

886 名前:デフォルトの名無しさん :2006/10/29(日) 03:17:09
ツリー構造をC++的に作りたいのですが
参考になるページ教えていただけないでしょうか?
やはりCのようにポインタを繋いで
AddとかDelとそんな関数をたくさん作るイメージでOKなのでしょうか?

887 名前:デフォルトの名無しさん :2006/10/29(日) 03:19:43
compositeパターンでググればいいんでない?

888 名前:デフォルトの名無しさん :2006/10/29(日) 03:35:00
std::list でも応用しれ。

889 名前:デフォルトの名無しさん :2006/10/29(日) 03:35:18
froggerがn-ary木(枝がn本の木)
http://sourceforge.jp/projects/frogger/

ファルシステムみたいにタグの親子関係のツリー作ってる。

890 名前:デフォルトの名無しさん :2006/10/29(日) 04:39:42
VS2003+MSXMLでDOMの取り扱いを試みています。
下記サイトのサンプルを実行したところ、出力は正しく出来ました。

ただ、終了時にcomip.hの_Release()で例外が投げられてしまいます。
CoUninitialize()をコメントアウトしたところ、滞りなく終了する事ができました。
このままで良いのでしょうか。アドバイス頂ければと思います。

http://www7a.biglobe.ne.jp/~forte/xml/xmlread.htm

891 名前:デフォルトの名無しさん :2006/10/29(日) 04:50:09
>>890
こんな感じで実行してみて、例外消えませんか?
(スマートポインタがCoUninitialize呼ぶ前に開放されるようにする)

CoInitialize();
{
処理をブロックで囲む
}
CoUninitialize();


892 名前:デフォルトの名無しさん :2006/10/29(日) 04:51:18
C言語で、あらかじめデータを定義する場合、

char data1[]="aiueokakikukekosasisuseso";

とかって出来るけど、これが、64kバイトとかでかいデータの場合、
どのように書いたらいいですか?
ファイルから読むのではなく。リソースファイルを使うのでもなく。

893 名前:デフォルトの名無しさん :2006/10/29(日) 04:52:39
>>892
まずは自分が思ったとおりに書いてみろ。何か問題があるか?

894 名前:デフォルトの名無しさん :2006/10/29(日) 04:53:08
それがどんな処理をされるのかによる

895 名前:デフォルトの名無しさん :2006/10/29(日) 04:55:41
>>893
自分が思ったとおりだと、データはバイナリなので、

char data1[]={0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,\
0x09,0x10・・・

などと、64kの場合は、0x00 が、65536個続きます。



896 名前:デフォルトの名無しさん :2006/10/29(日) 04:59:52
>>891
ご指摘のようにしたところ無事に終了することができました。
ありがとうございました。

897 名前:デフォルトの名無しさん :2006/10/29(日) 05:00:47
データの埋め込みで調べて見つけたページ。わらた
http://dream.freespace.jp/perl-bin/puma/lng/joyful.cgi?print+200507/05070008.txt

898 名前:デフォルトの名無しさん :2006/10/29(日) 05:15:12
>>897
ワロス。
すげー逸材だw

899 名前:デフォルトの名無しさん :2006/10/29(日) 05:19:22
>>895
だから、それで何の問題がある?

900 名前:デフォルトの名無しさん :2006/10/29(日) 05:21:07
>>899
1.ヘッダファイルサイズが異常にでかくなる。(データファイルと比較して約5倍)
2.コンパイル時間がすげー長くなる
3.仮想メモリを異常に食う


901 名前:デフォルトの名無しさん :2006/10/29(日) 05:27:46
>>900
ヘッダに定義を置くな。

902 名前:デフォルトの名無しさん :2006/10/29(日) 05:32:34
>>900
そんだけデメリットが分かってるならファイルから読めばいいのに。

903 名前:デフォルトの名無しさん :2006/10/29(日) 06:26:21
>>900
別に1行で宣言しなきゃならん理由はないんだから行末の ¥ はいらんぞ。
それとったらコンパイル時間に関しては多分改善されるぞ。
いくらなんでもコンパイラ屋もそんな糞長い(論理)行を処理することは前提としてないだろうからな。

904 名前:デフォルトの名無しさん :2006/10/29(日) 07:06:50
>>903
どゆこと?
まさか、64k個の、0x00を、全部続けて書けといってる?
それやると、テキストエディタでえらいことになるだろ

905 名前:デフォルトの名無しさん :2006/10/29(日) 07:55:57
普通に改行こみでコンパイルできるだろ。

char
data
[
]
=
{
0x00
,
0x00
,
0x00
}
;

906 名前:デフォルトの名無しさん :2006/10/29(日) 07:59:04
単に、
char data1[]={0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,
0x09,0x10・・・
でいいだろ、ってこった。

だがしかし、>895を読む限り全て0と言っている気がするのだが。
それなら更に簡単に、
char data1[65536] = {0,};
でAll0になる。

907 名前:デフォルトの名無しさん :2006/10/29(日) 09:07:17
0x00 を 65536 書いたぐらいでえらいことになるテキストエディタって、あるの?

908 名前:デフォルトの名無しさん :2006/10/29(日) 09:15:56
>>907
メモ帳とか?w

909 名前:デフォルトの名無しさん :2006/10/29(日) 09:31:12
自作クラスに<utility>のoperatorを使おうと思い、
#include <utility>
using namespace std::rel_ops;
を追加しましたが、他の場所で使っているiteratorの演算子と衝突してしまい、
C2593エラー (operator '!='があいましです)
というエラーが出てしまいます。

そのため、自作クラス中だけにutilityのoperatorを使えるようにしたいのですが、
class A
{
public :
operator == () {}
operator < () {}
using namespace std::rel_ops;
}

とすると、今度は
C2059 構文エラー
となってしまいます。

このような場合、どういう風に記述すればよいでしょうか?

ちなみに環境はVC8です


910 名前:デフォルトの名無しさん :2006/10/29(日) 09:51:40
>>909
ほほう、そんなものがあるのか。初めて見たが・・・

http://gcc.gnu.org/ml/libstdc++/2001-01/msg00247.html
"The rel_ops operators are not useful. They were a mistake."

・・・これはひどい。

911 名前:デフォルトの名無しさん :2006/10/29(日) 09:57:31
>>909 貴様かな打ちだな。

912 名前:デフォルトの名無しさん :2006/10/29(日) 09:59:57
>910

>The rel_ops operators are not useful. They were a mistake. If you
>insist on using them, you will have trouble. Nobody will care, because
>you asked for it.

わかりやすく噛み砕いて訳すと「使うな」ということでFA?


913 名前:デフォルトの名無しさん :2006/10/29(日) 10:06:59
valarray, vector<bool> みたいなもんか。他にもなんかあったっけ?

914 名前:デフォルトの名無しさん :2006/10/29(日) 10:35:30
>>909
boost::operators使え。

915 名前:デフォルトの名無しさん :2006/10/29(日) 11:22:57
>>914
おぉ!boostにもoperatorが!
さっそく調べてみます。

ありがとうございます

916 名前:デフォルトの名無しさん :2006/10/29(日) 12:43:33
1 template <class I, class O>
2 O Foo<I, O>::bar(I i1, I i2, O o, bool b) {
3 return o;
4 }

上記コードで

c:\Foo.cpp(2): error C2143: 構文エラー : ';' が '<' の前にありません。

とエラーが出ます。

お詳しい方、教えていただけないでしょうか。

917 名前:デフォルトの名無しさん :2006/10/29(日) 12:48:50
コンパイラとバージョンを言え

918 名前:デフォルトの名無しさん :2006/10/29(日) 12:59:41
>>779
「tryで抜ける」ってどうよ?

919 名前:デフォルトの名無しさん :2006/10/29(日) 13:25:27
すみません。

VC++ 2003 ProとVC++ 2005 Expで試しましたが、どちらも同じ結果でした。

920 名前:デフォルトの名無しさん :2006/10/29(日) 13:34:54
struct Foo{
  template <class I, class O> O bar(I,I,O,bool);
};
template <class I, class O> O Foo::bar(I i1, I i2, O o, bool b) {
  return o;
}
ってことか?それとも、
template <class I, class O> struct Foo
{
  O bar(I,I,O,bool);
};
template <class I, class O> O Foo<I,O>::bar(I i1, I i2, O o, bool b) {
  return o;
}
ってことか?

921 名前:デフォルトの名無しさん :2006/10/29(日) 13:41:53
スレッド間でint形の変数をフラグとして共有したのですが、
volatileをつけとけばOKでしょうか?
排他機構をつけたintラッパとか書かないとだめでしょうか?

922 名前:デフォルトの名無しさん :2006/10/29(日) 14:01:09
>>921 環境による。

923 名前:デフォルトの名無しさん :2006/10/29(日) 14:06:43
template <class InputIterator, class OutputIterator>
class MimeCoder {
public:
  virtual OutputIterator filter(InputIterator first, InputIterator last, OutputIterator result, bool fin = false) = 0;
  virtual OutputIterator finish(OutputIterator& result) = 0;
};
template <class InputIterator, class OutputIterator>
class Base64Encoder : public MimeCoder<InputIterator, OutputIterator> {
public:
  Base64Encoder() : len(0), linepos(0) {}
  virtual OutputIterator filter(InputIterator first, InputIterator last, OutputIterator result, bool fin = false);
  virtual OutputIterator finish(OutputIterator& result);
private:
  int linepos;
  unsigned char curr[3];
  int len;
  void encodeCurr(OutputIterator& result);
};
template <class InputIterator, class OutputIterator>
OutputIterator Base64Encoder<InputIterator, OutputIterator>::filter(InputIterator first, InputIterator last, OutputIterator result, bool fin) {
  return result;
}

ということです。


以下サイトのソースを理解してテンプレートの勉強をしようと思ってコンパイルしてみようと考えましたが、
できない理由がわからなくて質問させてもらいました。

ttp://www.s34.co.jp/cpptechdoc/misc/b2a/index.html



924 名前:デフォルトの名無しさん :2006/10/29(日) 14:13:03
>>923
それ全体をコンパイルするとエラーにならないぞ。

925 名前:デフォルトの名無しさん :2006/10/29(日) 14:13:03
>>923
コピペしたソースは gcc/VC8 で何事もなく通ったぜ?

926 名前:デフォルトの名無しさん :2006/10/29(日) 14:34:14
解決しました。

クラスの定義を.hに、実装を.cppに行なっていたのですが、エラーの原因はヘッダをインクルードしていないからでした。

お騒がせしました。

927 名前:デフォルトの名無しさん :2006/10/29(日) 14:38:38
馬鹿か

928 名前:デフォルトの名無しさん :2006/10/29(日) 14:46:16
>>921
sizeof(int)以下ならvolatileでオッケー。
排他するのは無駄。

929 名前:デフォルトの名無しさん :2006/10/29(日) 14:49:07
そうか?mutex使わないとまずいんでないかい?

930 名前:デフォルトの名無しさん :2006/10/29(日) 15:07:22
WindowsのInterlocked関数のようにアトミックに実行できることが保証されていれば、
それに関してmutexは要らない。

931 名前:デフォルトの名無しさん :2006/10/29(日) 15:19:32
>>928 とか言ってる馬鹿がいたな。

932 名前:デフォルトの名無しさん :2006/10/29(日) 17:14:06
任意のクラスのデフォルトコンストラクタを使えなくしたいんですが、
どうすれば良いんでしょうか。

933 名前:デフォルトの名無しさん :2006/10/29(日) 17:19:39
>>932
自前でコンストラクタを定義したらいいと思う。
(それも使われたくなければprivateでいいから。)

任煮のクラスというのが既存の改変できないクラスというなら知らぬ。

934 名前:デフォルトの名無しさん :2006/10/29(日) 17:22:32
デフォルトコンストラクタをprivateにすればよろし。
singleton, multitonの実装で使われるテクニックなので、
詳しくはそのあたりを調査してちょうだい。

935 名前:デフォルトの名無しさん :2006/10/29(日) 17:27:03
>>933
>>934
どうもありがとうございまっすす。

936 名前:デフォルトの名無しさん :2006/10/29(日) 17:33:13
>>874
19じゃね?

937 名前:デフォルトの名無しさん :2006/10/29(日) 17:57:58
20だろ。

938 名前:デフォルトの名無しさん :2006/10/29(日) 18:14:43
20だな。

939 名前:933 :2006/10/29(日) 18:18:33
どうでもいいが、任煮ってなんだw ぱっと見は似ているけど。
誤字にはそれなりに気を使ってたつもりだから、ちょっとへこんだorz

940 名前:デフォルトの名無しさん :2006/10/29(日) 18:21:54
任意:にんい
任煮:にんに?

941 名前:デフォルトの名無しさん :2006/10/29(日) 21:23:22
CのプログラムをC++に書き換えてもらえませんか??

942 名前:デフォルトの名無しさん :2006/10/29(日) 21:25:09
>>941 断る。

943 名前:デフォルトの名無しさん :2006/10/29(日) 21:27:52
>>942
難しいですかね??

944 名前:デフォルトの名無しさん :2006/10/29(日) 21:28:33
だがOK

945 名前:デフォルトの名無しさん :2006/10/29(日) 21:29:48
>>941
どう書き換えるかによっていろんな答えがあるわけなんだが。

946 名前:デフォルトの名無しさん :2006/10/29(日) 21:35:52
・Cは文字定数は自動的に整数とみなされるが、C++はそうではない。
・Cはグローバル変数を何度宣言してもOKだが、C++はそうではない。
・C++はmain関数を直接的にも間接的にも再帰できない。
・C++はCで6ヶ月かかる計画に比べ、1〜2年かかる。

947 名前:デフォルトの名無しさん :2006/10/29(日) 21:36:46
・C++ではNULLは0である。
・C++が使える奴は大抵ウザくてキモい。

948 名前:デフォルトの名無しさん :2006/10/29(日) 21:39:00
構造化プログラミングされたものをオブジェクト指向のクラス構成にすると妄想。
表向き書き換えるだけと言いながら事実上の再設計だったりと、
人をだまくらかすにもやりようはあるもんだ。

949 名前:デフォルトの名無しさん :2006/10/29(日) 21:41:40
>>942
どぉしたらいいでしょうか・・・

950 名前:デフォルトの名無しさん :2006/10/29(日) 21:42:25
そのCコードを機械語にしてasmすればOK

951 名前:デフォルトの名無しさん :2006/10/29(日) 22:22:57
>>949
とりあえずunko.cをunko.cppにすれば?

952 名前:デフォルトの名無しさん :2006/10/29(日) 22:39:43
>・C++が使える奴は大抵ウザくてキモい。

あるあるwwww

953 名前:デフォルトの名無しさん :2006/10/29(日) 22:42:40
まあ、C++は完全なる変態言語だからなwww

954 名前:デフォルトの名無しさん :2006/10/29(日) 22:50:07
>>953
普通に同意できるから困る。

955 名前:デフォルトの名無しさん :2006/10/29(日) 23:14:11
普通の思考回路の人には理解できそうに無い気はするな。

956 名前:デフォルトの名無しさん :2006/10/29(日) 23:17:24
Template用いて、コンパイル時にスレッドのデッドロックを検出する方法
ってありますか?

957 名前:デフォルトの名無しさん :2006/10/29(日) 23:26:41
なぜTemplateを使えばデッドロックが検出できると思ったのか82回くらい聞きたい。

958 名前:デフォルトの名無しさん :2006/10/29(日) 23:28:57
>>956
あなたの思考が読めません。
なぜそんなことが出来ると考えるに至ったのか…

959 名前:デフォルトの名無しさん :2006/10/29(日) 23:31:45
Lokiを考えた天才もいるんだから、もしかしたらtemplateで
デッドロックを検出できるかも・・・・?と考えたのかもしれんね。

960 名前:デフォルトの名無しさん :2006/10/30(月) 00:00:31
デッドロックってぇのは資源獲得の順番に一貫性がないってぇことだから、
それを template でチェックしてコンパイル時に洗い出すってぇことも、
あながち不可能ではないかもしれん。やり方は皆目見当がつかないけどね。

961 名前:デフォルトの名無しさん :2006/10/30(月) 00:21:41
C++が変態言語だと?

962 名前:デフォルトの名無しさん :2006/10/30(月) 00:34:53
しょうがないだろ、作ったやつがSM目的(お前らがM)だったんだから。

963 名前:デフォルトの名無しさん :2006/10/30(月) 00:39:36
>>949
まずは、何がしたいのかを相手に分かるように質問する。

C++に書き換えるとはどういう意味か。
Cでコンパイルできるソースは多くの場合そのままC++のコンパイラでも
コンパイルできて、正しく動く。
一部の互換性が無い部分については(大抵)ちょっとした修正をすれば対応できる。

もし上記のようなことをしようとしていて駄目だったなら、とりあえずどんなソースを使って、
どう不具合があったか(コンパイル時のエラーとか、実行時の振る舞いがおかしいとか)を
具体的に書けば、答えが貰えるかもしれない。

そうではなく、C++らしいオブジェクト指向的なソースに書き直してほしいという話なら、
自分で基礎から勉強するか、金払って人でも雇え。


964 名前:デフォルトの名無しさん :2006/10/30(月) 00:42:49
実は何年も前に書かれたものをC++として再度作り直すことになったんですが・・・

(中略)

最初にこれ作った人はもう死んじゃってて・・・。

965 名前:デフォルトの名無しさん :2006/10/30(月) 00:58:56
あっそ。
帰れ

966 名前:デフォルトの名無しさん :2006/10/30(月) 05:11:25
>>964
実はCで書かれたものをC++として再度作り直すときの考え方として3つの

(中略)

帰れ・・・。

967 名前:デフォルトの名無しさん :2006/10/30(月) 05:52:25
>>962
S は Stroustrup の S かぁぁぁぁぁぁアッー!!

968 名前:デフォルトの名無しさん :2006/10/30(月) 07:25:13
SutterのSかもよ
StepanovのSかもよ

969 名前:デフォルトの名無しさん :2006/10/30(月) 08:32:31
>>964
例えば、(学校で習うような)古語を現代語に書き換える方法を教えてください!
って漠然とした問いに答えられる人が世の中にいると思うか?


970 名前:デフォルトの名無しさん :2006/10/30(月) 09:33:50
 


971 名前:デフォルトの名無しさん :2006/10/30(月) 09:37:13
typedef typename vector<int>::iterator vint_itor;
typedef typename list<int>::iterator lint_itor;

この2箇所でエラーが発生します。エラー文は、error C2899: 型名はテンプレート宣言の外側で使用できません。

使用ソフトはVC++EEです

どうしたら良いか、教えていただけないでしょうか?

972 名前:デフォルトの名無しさん :2006/10/30(月) 09:41:17
>>971
typenameの目的を理解している?

973 名前:デフォルトの名無しさん :2006/10/30(月) 10:36:26
>>971
答えが無いので、一応「どうしたら良いか、教えて」おく。
typenameを書かないこと。以上。

そのエラーメッセージは、
typename cannot be used outside a template declaration
というもので、
typename はテンプレート宣言の外側で使用できません。
とでも訳すべきだと思う。

template < typename T >
void f()
{
typedef typename std::vector<T>::iterator TIter ; //OK

//型か値かは、すでに分かる。
typedef typename std::vector<int>::iterator IntIter ; //ERROR
}

974 名前:デフォルトの名無しさん :2006/10/30(月) 11:46:12
>>971
まぁ自然な発想だとは思うが、現行の規格を恨んで >>973 に従い、次を待て。
http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#382

975 名前:デフォルトの名無しさん :2006/10/30(月) 12:15:01
>>818
申し遅れましたが、structを部分的にカプセル化したかったということです。
メンバに直接アクセスできる気軽さと軽さを求めていましたので……
structの延長線上にあるのでメモリ使用量が変わるのもちょっと気分のいいものではなかったんで。

976 名前:デフォルトの名無しさん :2006/10/30(月) 14:35:46
templateでデッドロック検知は流石に無理じゃね?

977 名前:デフォルトの名無しさん :2006/10/30(月) 15:19:55
>>976
だな。デッドロック発生条件が静的に決まっているなら不可能とは断言できないが、
まあ無理だろ。

>>956
ttp://en.wikipedia.org/wiki/Deadlock
ttp://ja.wikipedia.org/wiki/%E3%83%87%E3%83%83%E3%83%89%E3%83%AD%E3%83%83%E3%82%AF
英語の方はよくまとまっていて秀逸。
日本語の方はかなーりいまいちだな…


978 名前:デフォルトの名無しさん :2006/10/30(月) 17:08:03
オブジェクトの同期を取ってくれるようなTCPライブラリってないでしょうか。

979 名前:デフォルトの名無しさん :2006/10/30(月) 17:10:57
なんか来たな

980 名前:デフォルトの名無しさん :2006/10/30(月) 18:26:56
こういう場合は「標準には無い」と答えてあげよう。

981 名前:デフォルトの名無しさん :2006/10/30(月) 19:48:58
>>953

わけを教えて〜


982 名前:デフォルトの名無しさん :2006/10/30(月) 19:50:53
C++がHaskellを取り込むのはいつですか?

983 名前:デフォルトの名無しさん :2006/10/30(月) 19:53:02
>>981
http://www.kh.rim.or.jp/~nagamura/misc/stroustrup-interview.html

984 名前:デフォルトの名無しさん :2006/10/30(月) 19:58:10
>>978
探せばある
ググれ

985 名前:デフォルトの名無しさん :2006/10/30(月) 20:49:06
VC2003でプロジェクトをビルドする際に
--enable-utf8 を追加したいのですが、IDEのどこに設定すれば良いのでしょう?

986 名前:デフォルトの名無しさん :2006/10/30(月) 20:54:03
設定すべき場所に設定すればいいんじゃないでしょうか

987 名前:デフォルトの名無しさん :2006/10/30(月) 20:57:28
つーかそれautoconfのオプションだったりしないのか?

988 名前:デフォルトの名無しさん :2006/10/30(月) 21:02:23
次はまだ?

989 名前:デフォルトの名無しさん :2006/10/30(月) 21:03:35
>>972 >>973 >>974

返事が遅れるすみませんでした。
本の通りに打ってみたのですが、本が間違ってるんですね。
typenameを消すと通りました。
ありがとうございました☆

990 名前:デフォルトの名無しさん :2006/10/30(月) 21:05:07
路線バスがすれ違う時に運転士同士が挙手して挨拶するんだけど
あれ見てると危なくて仕方ない。
ここに行って
「挙手反対」

って書き込んであげて。
http://hobby7.2ch.net/test/read.cgi/bus/1161304534/

2ちゃんで世の中動かせると思ってる挙手賛成派が、必死になってレスするから面白いよ

991 名前:デフォルトの名無しさん :2006/10/30(月) 21:15:22
>>987
pcre をUnicode 対応にしてビルドしたいのです。

ソースはVC2003用の物です。
http://www.renatomancuso.com/downloads/dpcre61_dll_src.zip

992 名前:991 :2006/10/30(月) 21:42:38
低レベルですみません。
configure コマンドやautoconf はVC には無いという事でOKでしょうか?

993 名前:デフォルトの名無しさん :2006/10/30(月) 21:56:35
低レベルですみません。
次スレってまだでしょうか?

994 名前:デフォルトの名無しさん :2006/10/30(月) 22:23:39
なぜ自分で立てない?

995 名前:デフォルトの名無しさん :2006/10/30(月) 22:32:46
立ててくる.しばし待たれよ.

996 名前:デフォルトの名無しさん :2006/10/30(月) 22:37:50
立てました.

C++相談室 part54
http://pc8.2ch.net/test/read.cgi/tech/1162215248/

997 名前:デフォルトの名無しさん :2006/10/30(月) 22:42:20


998 名前:デフォルトの名無しさん :2006/10/30(月) 22:57:08
文句があるならD言語やれよ

999 名前:デフォルトの名無しさん :2006/10/30(月) 23:05:46
さあ>>1000よ俺を超えていけ

1000 名前:デフォルトの名無しさん :2006/10/30(月) 23:07:48
任せろ!


■過去ログ置き場に戻る■ 1- 前250 次250 最新50
DAT2HTML 0.33f Converted.