祝・GCC 3.0リリースat UNIX
祝・GCC 3.0リリース - 暇つぶし2ch709:名無しさん@お腹いっぱい。
08/08/11 22:29:33
もうこの板のスレ2年過ぎたら強制dat落ちにしようぜ・・・

710:名無しさん@お腹いっぱい。
08/08/12 01:20:16
5年先まで見通してスレ立てればいいだけの話

711:名無しさん@お腹いっぱい。
08/08/12 11:18:38
投票所を作って、反対意見が出ないようなら削除依頼とかな
依頼してもなかなか削除されねーけど

712:名無しさん@お腹いっぱい。
08/08/14 10:05:42
>>701
なつかしいな、それ。KYKだっけ?

713:名無しさん@お腹いっぱい。
08/08/14 21:37:52
>>703
それは冗談で言っているのか。

714:名無しさん@お腹いっぱい。
08/08/16 04:42:49
ぐぐった。
URLリンク(www.atmarkit.co.jp)


715:名無しさん@お腹いっぱい。
08/08/18 03:16:26
>>712
Yじゃねえ。
Nだ。




716:名無しさん@お腹いっぱい。
08/08/18 05:34:08
knkなつかしい.

URLリンク(pc.2ch.net)
URLリンク(pc.2ch.net)
URLリンク(home.jp.freebsd.org)
URLリンク(web.archive.org)

717:名無しさん@お腹いっぱい。
08/08/25 03:29:13
このしらいさんという方も勘違いしてますね。

718:名無しさん@お腹いっぱい。
08/10/05 05:53:48 BE:1345128858-2BP(0)
OpenBSDは未だに、2.95ですね。

719:名無しさん@お腹いっぱい。
09/01/11 15:34:03
gccで関数プロトタイプ宣言を自動的に生成する機能があると聞いたのですが、
ぐぐってみてもそのような機能は見つかりませんでした。
もし本当にそういう機能があれば、どなたか教えていただけないでしょうか。
またgccに限らず、*.cから*.hを自動的に生成するツールについておすすめのものがあれば教えてください。

720:名無しさん@お腹いっぱい。
09/01/11 19:31:36
GCC3スレにようこそw

URLリンク(www.kouno.jp)
> 関数プロトタイプの自動生成ソフトはいくつか存在する。多くはlint に手を
> 入れたものになっている。CPROTOというプログラムが1992年3 月に
> comp.sources.miscにポストされた。他にもcextractというツー ルが存在する。
> コンパイラのベンダーの多くは単純なユーティリティー を用意している。
> 質問18.16も参照のこと。(古いコード用にプロトタ イプを生成するときは"狭い"
> 引数に注意すること。質問11.3も参照の こと。)

gccにそういう機能ってあったかなぁ

721:名無しさん@お腹いっぱい。
11/06/11 00:12:40.83
class A { public: A(){} };

class B : public A
{
B() {A::A();}
};


↑こういうコードで、g++-4.1.2だとエラーなし、
g++-4.6.0だと cannot call constructor 'B::A' directly
というエラーが出ます。どう修正するのが適切ですか?

722:名無しさん@お腹いっぱい。
11/06/11 07:25:12.63
>>721
class A { public: A(){} };

class B : public A
{
B() {}
};

で、暗黙的にAのコンストラクタが呼ばれる。
もしくは、渡す引数があれば、
class A { public: A(int arg){} };

class B : public A
{
B() : A(123) {}
};
とする。

723:名無しさん@お腹いっぱい。
11/06/11 08:59:42.53
>>722
ありがとうございます。それでやってみます。

ところで、逆に Bをコンストラクトする時に、
暗黙にAのコンストラクタを呼ばないようにするにはどうしたらいいですか?

724:名無しさん@お腹いっぱい。
11/06/11 09:04:05.21
>>723
理屈上おかしいし、それは多分できない。

実装上は、Aに何もしないコンストラクタを用意すれば、呼ばれてないのと同じことにはなるかもしれない。

725:名無しさん@お腹いっぱい。
11/06/11 09:20:46.87
>>724
できないんですね。わかりました

ところで、最初の >>721 の質問のように
わざわざ継承元のコンストラクタを呼んでるようなコードが
複数のソフトで見つかるんですが
これ、何か意味があったのではないのでしょうか?
それとも、こういう誤解が広範囲に広まっていたのでしょうか?

726:名無しさん@お腹いっぱい。
11/06/11 12:08:55.06
>>725
実はC++に詳しくないので、そういう書き方があったのは初めて知った。
今の言語規格にはないやり方で、わざわざ利用しているとしたら、理由はわからない。

ただ、今の言語規格ではAのコンストラクタは必ずBのコンストラクタに先立って実行されるので、
継承元のコンストラクタを呼んでるようなコードが、Bのクラスの一番初めの実行文でない場合、
処理の実行に影響がないかどうかは気をつけないといけないと思う。

727:名無しさん@お腹いっぱい。
11/06/11 17:30:51.28
>>725
コンストラクタを呼んでるつもりで、実は一時オブジェクトを作って捨ててるだけ、ってのはたまに見る。
公開されてるソフトにそんなの入ってるとは思わないけどな。
ソフト名を晒してくれると面白いかもしれない。

728:名無しさん@お腹いっぱい。
11/06/11 17:36:41.18
初期化子は結構早い段階で規格に入っているしなあ。
"annotated"の頃には入っていたんじゃない?

729:名無しさん@お腹いっぱい。
11/06/11 17:59:56.17
>>727
kdeaddons-3.5.10の中の kate/tabbarextension/plugin_katetabbarextension.h
というファイルでそういう箇所があります。(本家で公開されてるソースです)

gccのバージョンを上げるとエラーになるため、問題が発覚します。


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch