C/C++のこの機能逝ってよし
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNG個人的には広域ジャンプ使ったこと無し。
0305デフォルトの名無しさん
NGNGC99で標準になったYO!
0306名無しさん@Vim%Chalice
NGNGvirtualってのがわけわからん。
Delphiでも見かけたような気がするが、他の言語にはないよね?
M$が倒れる
↓
VC++も逝く
↓
Wisoでの仕事がなくなる
↓
C++のシェアがガタ落ちになる(予定)
↓
uma-
0307デフォルトの名無しさん
NGNG> Delphiでも見かけたような気がするが、他の言語にはないよね?
いいえ。っつか、むしろ他の OOPL だと virtual がデフォルト。
0308デフォルトの名無しさん
NGNGC++は必要じゃないのん?
VCが逝っても、C++のシェアがガタ落ちにはならんと思ふ。
もしVCが逝ってC++のシェアがガタ落ちなら Cのシェアも同様にガタ落ちでわ?
0309デフォルトの名無しさん
NGNG0310デフォルトの名無しさん
NGNGMSが潰れても、OOPにはCよりもC++のほうが便利だから
同じようなソフトがプラットフォームを変えて出現すると思われ。
0311デフォルトの名無しさん
NGNG組み込み系とかで。
0312デフォルトの名無しさん
NGNGそれって,C が廃れてもアセンブラは残るだろ。組み込み系とかで。
って言っているのと同値。
fortran / cobol が,なんだかんだ言われても生き延びているように
C++ はそうかんたんには滅びなくなりました。
0313デフォルトの名無しさん
NGNGGCCも4が出る頃にはLinuxあたりもC++で書き直されている...わけないか(藁
0314デフォルトの名無しさん
NGNG> いわゆる「左くくり出し」だな。
(略)
> if文 := if ( expr ) stmt E
> E := (空列) | else stmt
これじゃあ、if (expr) [[if (expr) stmt else stmt]],
if (expr) [[if (expr) stmt]] else stmtとどちらでも良くて、『曖昧な文法』のままじゃん。
文法、いわゆる形式言語の話と、
特定のparser generatorの(LL(1)に逸脱した)仕様の話を混同してない?
if (expr) stmt else stmt endif
にするしかないよ。こうしないと、LL(1)解析可能どころか、
『文脈自由言語族に属する曖昧でない文法』じゃないから。
実用上はどうでもいいから、「逝ってよし」とは思わないけど。
0315デフォルトの名無しさん
NGNGとは言ってもkernel部分はCだし、UIというかCOMコンポーネント周りは
どんどんC# & CLRで置き換えられていきそうだし、すぐになくなる事は
ないにせよ、C++で書かれた部分は減っていきそうだな。
0316デフォルトの名無しさん
NGNG> lexだとこのif文の定義でwarningが2個出ますよね。
lexじゃなくて、yaccね。
shift/reduceがconflictうんぬんって。
0317デフォルトの名無しさん
NGNGLinuxじゃないんだからカーネルはCじゃないだろ。NTのマイクロ
カーネルはアセンブリだと思うけど。で、周りのサービスオブジェクト
がC++。ドライバもC++とインラインアセンブラ。
流れ的には、OS/サーバ/データベースみたいなハコ部分はC++、
ハコの中身はC#その他だね。CLRそれ自体も当然C++。
0318デフォルトの名無しさん
NGNGそーなの?
じゃWin32APIはCだけど、どういうこと?
0319デフォルトの名無しさん
NGNGWIN32APIがC++で書かれてたら
Cで使えなくならない?
0320デフォルトの名無しさん
NGNGAPIがCだからどうだと? 意味がわからん。
0322318
NGNG>>317の主張だと、Win32APIはアセンブラかC++のはずじゃない?
これって現状のことを言ってるんだよね?
C++をCでラッピングするってのは変だし、あのAPI群が全部アセンブラっ
てのもちょっと無理がある。だから、
>LinuxじゃないんだからカーネルはCじゃないだろ。NTのマイクロ
ってのは本当かなー、と思ったということ。
0323デフォルトの名無しさん
NGNG0324デフォルトの名無しさん
NGNG0325失貴君
NGNG0326デフォルトの名無しさん
NGNG0327デフォルトの名無しさん
NGNGVBのマニュアルでさえ、外部リンケージの呼出し規約載ってるから読め!
$(GLIBC)/sysdeps/i386/sysdep.hで、system callどうやってるか見るとかさ。
0328デフォルトの名無しさん
NGNGまぁそれが順当だろうな。
0329デフォルトの名無しさん
NGNG>WIN32APIがC++で書かれてたら
>Cで使えなくならない?
実際に一部 C++ 的な部分もあるけど
IShellFolder とか IDropTarget とか、あのへん
えぇ、C から使えなくはないけど、大変に面倒でイヤです
C 使ってる人は諦めて C++ へ移行しませう
0331デフォルトの名無しさん
NGNG0332デフォルトの名無しさん
NGNG速度を見ればわかるでしょ?
0333デフォルトの名無しさん
NGNGNTの最初のバージョンはCだったかもしれんが、VC++6なんてツール
無かった時代の話だし、開発者の人数も(比較的)少なくてチームリーダの
意向がそのまま通った時代。ゲイツがC++を勧める以上、WindowsXPの
カーネルがC++になってない理由は無い。
0334デフォルトの名無しさん
NGNG0335デフォルトの名無しさん
NGNG変更できます。
0336デフォルトの名無しさん
NGNGint strcmpW(const wchar_t *pwc1, const wchar_t *pwc2)
{
int ret = 0;
while ( !(ret = *pwc1 - *pwc2) && *pwc2)
++pwc1, ++pwc2;
return ret;
}
こんなの発見。strcmpと違って返り値は-1,0,1じゃないんだね。
0337デフォルトの名無しさん
NGNGこれってstrlen(pwc1) >= strlen(pwc2)の局面しか使わないのかね?
0338デフォルトの名無しさん
NGNGstrlen(pwc1) < strlen(pwc2)
でも問題ないよ。
*pwc1=='\0' の時点で、(*pwc1 - *pwc2) !=0 になってループを抜けるから。
0339デフォルトの名無しさん
NGNGアセンブラからC++呼ぶのは面倒じゃないのかな。
0340デフォルトの名無しさん
NGNGそれは extern "C" とか使えばいいよ。
0341デフォルトの名無しさん
NGNG>そういう意味では std::string() に sprintf() ライクな書式指定つき文字列作成機能がなかったのが
>残念だ。MFC/WTL の CString にはあるんだけどね。
そういうときは、stringstream だね。激重だけど。
0342336
NGNGアセンブラが必要なところは、ほとんどインラインアセンブラで済ましてるみたいだよ。
さすがに初期化コードは.asmだったが。
元々マルチプラットフォームなOSだから、アセンブラ自体あまり使ってないみたい。
0343デフォルトの名無しさん
NGNGstrcmp って -1, 0, 1 だったか?
たしか strcmp も 負、0、正 だったと思うが、どうよ。
0345デフォルトの名無しさん
NGNG0346デフォルトの名無しさん
NGNG0348デフォルトの名無しさん
NGNG0349デフォルトの名無しさん
NGNG0350デフォルトの名無しさん
NGNG0351デフォルトの名無しさん
NGNG知らないでネスティングして使ってると期待通りに動かない。
せめてハンドルとかでコンテキストを隔離できるようにしてほしい。
0352デフォルトの名無しさん
NGNG「一見便利そうだけど、つかうとドツボにはまる」
Cの罠関数、という罠。
0353デフォルトの名無しさん
NGNGだけど、これらの罠関数に嵌って原因をちゃんと理解できたら半人前と判断できるよね?
でもシステム系のプロの多くは実装方法を教えても原因にはピンとこないらしい。
0354デフォルトの名無しさん
NGNGこのあたりの解決は、Eiffelの仕様がうれしいのだが。
0355デフォルトの名無しさん
NGNG> カーネルがC++になってない理由は無い。
お前の妄想しか根拠はないのかよ
■ このスレッドは過去ログ倉庫に格納されています