アカウント名:
パスワード:
C++で記述し直すことによりメンテナンスがしやすく成るとか性能が上がるとかいった利点が有ったのでしょうか?C++コンパイラは実質的にCコンパイラも内包しているので言語の陳腐化等も問題にはならないと思うのですが
dodongaです。
> C++コンパイラは実質的にCコンパイラも内包しているので
良くある勘違いです。 C++とCは互換ではないです。
Cが内包されていない、もしくはほかで置き換えることが出来ない点ってどんな点?いやまあ、ペダンティックな話じゃなくて、GCCについてなんだけど
C++とCは互換ではないです。
1) サイズの問題 sizeof('a');
2)スコープの問題 int x[100];
void f(){ struct x { int a; }; sizeof(x);}
const の扱い 省略時の扱い int f(void) とint f()
挙げればキリがなくw
話がずれてますよ。
確かに「C++言語の言語仕様は、C言語と互換性がない部分がある」のは事実です。ですが、元コメは
C++コンパイラは実質的にCコンパイラも内包
と書いてます。言語仕様ではなく処理系が論点。
実際のところC++の言語処理系は、C言語モードでのコンパイルが可能なものばかりです。C言語としてのコンパイルができないC++専用コンパイラって見たことありません。
だから、C++で書かれたコードがビルド出来る環境なら、Cで書かれたコードもビルド可能。そういう点で、コメの疑問であるビルド環境の普及度という点では、CからC++への移行へのメリットはないですね。最大の利点はソースコードの保守性の問題でしょうな。
逆にいえばこの程度という感じですね、Cで書く時に両方で通るようにコードした方が色々便利になりそうだし多分そうするかなもっとも、もうC++移行済みでさらにC++撤退してC# and Java に行ってしまいましたが(^^;
注意して書けば互換になる程度だねきり無いってほどでない
で、そういう違いがあることで一体どんなメリットが生じるのかな?
そもそも、そんなことよりもvoid*から他のポインタ型への暗黙変換がC++にはないこと(これは安全性の強化という理由)のほうがC→C++での移植では経験上よく引っかかる。あるいは、名前マングルの問題(ようはextern "C")もよくある。
C++標準化委員会にでも聞いてろよ
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
普通のやつらの下を行け -- バッドノウハウ専門家
必要性があったの? (スコア:0)
C++で記述し直すことによりメンテナンスがしやすく成るとか性能が上がるとかいった利点が有ったのでしょうか?
C++コンパイラは実質的にCコンパイラも内包しているので言語の陳腐化等も問題にはならないと思うのですが
C++とCは互換ではないです (スコア:1)
dodongaです。
> C++コンパイラは実質的にCコンパイラも内包しているので
良くある勘違いです。
C++とCは互換ではないです。
閑話休題
Re: (スコア:0)
Cが内包されていない、もしくはほかで置き換えることが出来ない点ってどんな点?
いやまあ、ペダンティックな話じゃなくて、GCCについてなんだけど
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++標準化委員会にでも聞いてろよ