by
Anonymous Coward
on 2012年08月18日 21時20分
(#2214448)
Migrating GCC to C++ as implementation language:
C++ is a standardized, well known, popular language. C++ is nearly a superset of C90 used in GCC. The C subset of C++ is just as efficient as C. C++ supports cleaner code in several significant cases. C++ makes it easier to write and enforce cleaner interfaces. C++ never requires uglier code. C++ is not a panacea but it is an improvement.
必要性があったの? (スコア:0)
C++で記述し直すことによりメンテナンスがしやすく成るとか性能が上がるとかいった利点が有ったのでしょうか?
C++コンパイラは実質的にCコンパイラも内包しているので言語の陳腐化等も問題にはならないと思うのですが
C++とCは互換ではないです (スコア:1)
dodongaです。
> C++コンパイラは実質的にCコンパイラも内包しているので
良くある勘違いです。
C++とCは互換ではないです。
閑話休題
Re: (スコア:0)
Cが内包されていない、もしくはほかで置き換えることが出来ない点ってどんな点?
いやまあ、ペダンティックな話じゃなくて、GCCについてなんだけど
Re: (スコア:0)
C99のDesignated Initializer
GCCに限らないです (スコア:0)
dodongaです。
C++とCは互換ではないです。
1) サイズの問題
sizeof('a');
2)スコープの問題
int x[100];
void f()
{
struct x { int a; };
sizeof(x);
}
const の扱い
省略時の扱い int f(void) とint f()
挙げればキリがなくw
閑話休題
Re:GCCに限らないです (スコア:2)
話がずれてますよ。
確かに「C++言語の言語仕様は、C言語と互換性がない部分がある」のは事実です。ですが、元コメは
と書いてます。言語仕様ではなく処理系が論点。
実際のところC++の言語処理系は、C言語モードでのコンパイルが可能なものばかりです。C言語としてのコンパイルができないC++専用コンパイラって見たことありません。
だから、C++で書かれたコードがビルド出来る環境なら、Cで書かれたコードもビルド可能。
そういう点で、コメの疑問であるビルド環境の普及度という点では、CからC++への移行へのメリットはないですね。
最大の利点はソースコードの保守性の問題でしょうな。
Re: (スコア:0)
逆にいえばこの程度という感じですね、Cで書く時に両方で通るようにコードした方が色々便利になりそうだし多分そうするかな
もっとも、もうC++移行済みでさらにC++撤退してC# and Java に行ってしまいましたが(^^;
Re: (スコア:0)
注意して書けば互換になる程度だね
きり無いってほどでない
Re: (スコア:0)
で、そういう違いがあることで一体どんなメリットが生じるのかな?
Re:GCCに限らないです (スコア:1)
答えが求められているものではないようにも思えるけど、一応答えてみた。
そもそも、そんなことよりもvoid*から他のポインタ型への暗黙変換がC++にはないこと(これは安全性の強化という理由)のほうがC→C++での移植では経験上よく引っかかる。あるいは、名前マングルの問題(ようはextern "C")もよくある。
Re: (スコア:0)
C++標準化委員会にでも聞いてろよ
Re: (スコア:0)
GCCは以前からCコンパイラではない
コンパイラを呼び出すドライバだ
Re: (スコア:0)
つまりCなりC++の差は実質問題ないってこと?
Re: (スコア:0)
1.CとC++は全く違う
2.GCCがCで記述されていたのがC++に変わる
3.なんで書いてあっても良い
この3つに要約される
Re:C++とCは互換ではないです (スコア:2, 参考になる)
Migrating GCC to C++ as implementation language:
C++ is a standardized, well known, popular language.
C++ is nearly a superset of C90 used in GCC.
The C subset of C++ is just as efficient as C.
C++ supports cleaner code in several significant cases.
C++ makes it easier to write and enforce cleaner interfaces.
C++ never requires uglier code.
C++ is not a panacea but it is an improvement.
Re: (スコア:0)
大抵のC++コンパイラは、オプション等で明示してやればCコンパイラとして動作する。
これを指して「C++コンパイラはCコンパイラも内包している」と言ってるのだと思われ。
Re: (スコア:0)
ほとんどのコンパイラがC/C++になってる(もちろん専用もある)ので、そういうことかな?
大概はちゃんとオプション指定すべきだが、ソースからオブジェクト生成の時に拡張子で処理わけたりするので、問題が表面化しない?
Re: (スコア:0)
コメントを書く時は、自分の個人情報を晒しても同じことを書けるか考えたほうが良いです。
そうじゃないと、無駄に攻撃的な「匿名の卑怯者」になってしまうので。
Re:C++とCは互換ではないです (スコア:1)
良い意味でも悪い意味でも
「この人は芯が通ってるんだな」
と感じますね。
Re: (スコア:0)
内容が不適切でなくても、芸風というものがあるのでね
ACと本名とペンネームでは書けることが異なる
Re: (スコア:0)
心掛けとして、だね。
決して、自らを明かすならどんな悪質な発言も可、というわけではない。
Re: (スコア:0)
まったくどっかの市長は匿名の卑怯者に言いがかりばかりつけられて大変ですね。
個人情報を晒していれば所属組織や上司経由で圧力をかけられるのに。