C++相談室 part149

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2020/02/18(火) 06:19:41.54ID:xvjipUWj
C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。

前スレ
C++相談室 part148
https://mevius.5ch.net/test/read.cgi/tech/1580471646/
このスレもよろしくね。
【初心者歓迎】C/C++室 Ver.105【環境依存OK】
http://mevius.5ch.net/test/read.cgi/tech/1556142878/

■長いソースを貼るときはここへ。■
 http://codepad.org/
 https://ideone.com/

[C++ FAQ]
https://isocpp.org/wiki/faq/
http://www.bohyoh.com/CandCPP/FAQ/ (日本語)
2020/03/04(水) 08:18:37.27ID:wOgWtFGu
それに基づいて作られた製品があればの話だな
2020/03/04(水) 09:01:59.59ID:obnoKtcJ
まあc++の仕様を完全に守ってる実装なんて一つもないしな。
それ確かめるのに工数かかるってどうなん?とは思う。
2020/03/04(水) 09:56:46.98ID:0Mjry1zX
>>523
それは解説書
2020/03/04(水) 10:55:23.42ID:wOgWtFGu
仕様を説明していても仕様書かどうかとは別な話だな
2020/03/04(水) 12:41:56.62ID:tHLmVZnX
>>526
実際には、あれは普通の解説書ではなく、コンパイラを実装する人が重宝するようなバッカス記法や決定性オートマトンなどを使って仕様がかなり厳密に書かれた特殊な本。
2020/03/04(水) 13:50:02.87ID:BrIasXcf
>>515
古い C では違ったのかもしれないと思って
念のために C89 も確認してみたけどそのときから >>506 と同じ文言になってるぞ。
C (の公式な仕様) では最初からバイトとは char の大きさのことと結論していい。

K&R 第二版の日本語訳の付録Bだとバイトとは書いていない。
あくまでも要約だから省略したのかもしれないし、
前書きには「予備版 (ドラフトのこと?) が出ていたので早く出せた」という意味のことが書いてあるので、
仕様の決定稿が出る前の一時期にはバイトとは記述してなかった (それを元に本にした) 可能性はあるのかもね。
2020/03/04(水) 13:54:01.41ID:BrIasXcf
C/C++ の仕様が信用ならんなと思うのは欠陥報告 (Defect Report) の存在だな。
仕様書に書いてないことの確認がとれていても仕様にないとは言い切れない。
把握できるわけないだろ!
2020/03/04(水) 14:10:16.09ID:wOgWtFGu
公文書だかんな
はい発表しましたよ、周知義務よろしく

こういう体質なのは今さら驚いても始まらん
2020/03/04(水) 14:57:19.24ID:BrIasXcf
公文書なら著作権法による保護が及ばないのでそれはそれで利点があるんだけどな。

実際には ISO は民間組織だし、正式な規格票はクソ高価すぎる。
私はドラフトと cpprefjp しか見てないんだけど、買った人いる?
2020/03/04(水) 16:25:27.01ID:tHLmVZnX
VS2019 の limits.h のコメントはこうなっている :
#define CHAR_BIT 8 // number of bits in a char
2020/03/04(水) 16:43:02.53ID:BrIasXcf
そうか。
2020/03/04(水) 16:43:03.91ID:CqUkRGBA
VSの想定環境では正しいし何の問題もないな
2020/03/04(水) 16:58:40.94ID:tHLmVZnX
CHAR_BIT なのに本当に「number of bits in a byte」が厳密定義なら、何らかの説明が欲しい所ではある。

ただ、C言語では、charは言語が扱える整数の「最小単位(?)」などと書かれている文書を見たことがある。
だとすれば、Cに高級アセンブラの地位を期待する需要が有る以上、charのbit数がbyteと一致する必要は必ずあるとは思う。
総合的に考えれば、C言語においては、char=byte でなくてはならず、もはやbyteも絶対に8BITでなければならないので
char、byteがいずれも8bit
であることは事実上、必須である。
537デフォルトの名無しさん
垢版 |
2020/03/04(水) 17:05:12.53ID:tHLmVZnX
Wikipediaの「整数型」のところで、C言語では、何があろうとsizeof(char)は必ず1になると決められており、たとえ16BITワード単位のアーキテクチャでも、CHAR_BIT は 16になるが、sizeof(char)は必ず1になるのだそうだ。
一方、sizeof(X)は、Xの「バイト数」だとされているわけだけど、はっきりいってこんな状況では総合的に考えて、charを8BIT以外には出来ない。
2020/03/04(水) 17:14:44.63ID:BrIasXcf
>>536
Rationale の 6.5.3.4 に記述がある。
http://www.open-std.org/jtc1/sc22/wg14/www/C99RationaleV5.10.pdf

sizeof(char) は 1 を返す。
たとえこの単位が 36bit 幅であっても。
C 用語の「バイト」はストレージの最小単位であることを意味する。
2020/03/04(水) 17:16:32.37ID:tHLmVZnX
>>536
>C言語では、charは言語が扱える整数の「最小単位(?)」
は、>>506 の以下の部分にも書いてあるようだ。
CHAR_BIT とは、
「bit-field以外で最小のオブジェクトのbit数(byte)」
だと:

>C11 だと 5.2.4.2.1 の CHAR_BIT の説明のところに
>> - number of bits for smallest object that is not a bit-field (byte)
2020/03/04(水) 17:18:06.36ID:BrIasXcf
ポインタを作れる単位を最小単位にするのは理に適ってるんじゃないの。
2020/03/04(水) 17:20:06.24ID:tHLmVZnX
「bit-field以外のオブジェクトの最小単位」
なわけだから、ポインタが指しうるアドレスの最小単位でもあるわけだ。
言葉が変かも知れないが。
2020/03/04(水) 17:35:08.28ID:obnoKtcJ
気にするような環境にない奴に限ってこういうこと気にするのな。
2020/03/04(水) 17:39:54.09ID:tHLmVZnX
個人的には、ソース配布してダウンロードした人が各自勝手にコンパイルするようにするようなプログラムを書いたことが無い。
必ずバイナリレベルでテストして十分デバッグ済みだと思ってからバイナリを配布してきたから。
ソース配布文化は別世界。
2020/03/04(水) 18:59:40.00ID:Py0/41jA
だから何だ
結局何が言いたいんだ
規格が間違ってるって言うならISOのWGに意見書出せよ
情報は歓迎だぞ
2020/03/04(水) 20:23:54.51ID:3yz+4Wbb
>>537
byteは16bitになる可能性を自分で示しているじゃないか。
一体何と矛盾してるんだ?
2020/03/04(水) 20:40:21.43ID:+mh63BBw
まず一生触ることのない環境のことはどうでもいい
2020/03/04(水) 20:47:19.33ID:wOgWtFGu
お、江添きたか
2020/03/04(水) 21:36:25.82ID:9NgWGcWV
>>536
C,C++ はそれぞれずっと前から "byte" を独自定義していて、 2008 年発行の IEC 80000-13 の定義は関係ないんだよ。
(・・・って >507 に書いてあったわ。なんでまだこんなこと言ってるのこの人?)
2020/03/04(水) 22:55:14.08ID:InlLUMV0
byteが何者かわからんから、オクテットとか言う呼び方があるのだろう
2020/03/04(水) 22:56:33.25ID:wOgWtFGu
nibble != 4bits ということはあるのかね
2020/03/04(水) 23:02:36.78ID:BrIasXcf
>>550
どこかに正式な定義があるかはわからんけど、
Byte の語源は Bite (噛みつく) らしいし、
それよりは控えめってニュアンスは感じるよね。
2020/03/05(木) 08:23:20.57ID:Hv5fT+Tn
c++初心者です
実際現場でよく使われる関数はどんなものがありますか?
2020/03/05(木) 08:31:27.44ID:eBZoUINk
begin, end, operator ++, operator !=
2020/03/05(木) 08:48:57.01ID:maJEmc7K
>>553はSTLしか使ったことないアマチュアの発言
2020/03/05(木) 09:32:08.09ID:eBZoUINk
STLだと? 俺はrange-based-forを想定して書いたんだが、気が付かなかったのか?
2020/03/05(木) 09:35:26.73ID:oibZ2+F1
一緒だよ
557デフォルトの名無しさん
垢版 |
2020/03/05(木) 09:44:32.03ID:tzyiEzvg
c++11でregexの正規表現で\sと\Sがエラーになるけど、
全部自分で記述で[ \t\r\n]とかしないといけないですかね?
2020/03/05(木) 10:06:12.56ID:HyVcGvBE
>>552
関数セットとしては、やはり伝統的なCのものを使うことが多いんではなかろうか。
ソートや乱数、最大最小値計算、正規表現なんかはC++風のものが好まれる傾向が出始めてるかもしれない。
文字列の一致テストなども、個人的にはCのstrcmp()、_strcmpi()、strncmp()、memcmp() なども結構使ってるけど、若い人の間では std::string の比較機能が好まれているかもしれない。
というかC++から勉強した場合、それしか知らないだけかも知れないが。
文字列表示は、ネットではなぜか cout 系で、cout << "Hello"; のようなものを良くかけるが、
表示する際の16進数と10進数の区別や、表示桁数の指定、float/double値の有効数字桁数の指定、先頭に0を付けるかどうかなどを指定し易いので、古いと言われようが個人的には昔ながらのprintf()が好きだ。
559デフォルトの名無しさん
垢版 |
2020/03/05(木) 10:22:38.04ID:TYdcXopQ
マニピュレータを作ることが出来るのでストリームを使ってるだけでは。
560デフォルトの名無しさん
垢版 |
2020/03/05(木) 10:23:41.63ID:TYdcXopQ
若い子は馬鹿なのでストリームを好むキリッって風に見えるのだろか。
2020/03/05(木) 10:59:35.38ID:HyVcGvBE
C++の文字列比較で比較開始位置や最大長さを指定したい場合、
if ( str1.compare(0, 5, "abcdefghijklmn") == 0 )
のように書く必要があるが、Cのstrncmp()だと
if ( strncmp(pszText1, pszText2, 5) == 0 )
と書ける。
後者の方が、比較する2つの文字列1, 文字列2の間にみごとな「対称性」があってとても美しい。
さらに、
C :
if ( strcmp(pszText1, pszText2) == 0 )  // 長さ指定なしの全体比較
if ( strncmp(pszText1, pszText2, 5) == 0 ) // 最大長さ指定有り。
C++のstd::string :
if ( str1 == str2 )            // 長さ指定なしの全体比較
if ( str1.compare(0, 5, str2) == 0 )    // 最大長さ指定有り。
のように、長さ指定が無い場合と有る場合の「対称性」もCの方が高い。

さらに、開始位置と長さを指定する引数の位置が、コンストラクタに置いては
std::string str2("Hello World");
std::string str1(str2, 長さ);
std::string str1(str2, 開始位置, 長さ);
なのに、比較においては
str1.compare(開始位置, 長さ, str2)
のように前後が逆転していて、ここでもまた、STLの文字列操作には「対称性」が無い。

なお、MFCのCStringの場合は、
CString str1, str2;
に対し、以下のように strcmp(), strncmp() に簡単に指定できる :
if ( str1 == str2 )        // 長さ指定なしの全体比較
if ( strcmp(str1, str2) == 0 )   // 長さ指定なしの全体比較
if ( strncmp(str1, str2, 5) == 0 ) // 最大長さ指定有り。
一方、std::string の場合、const char* 型への暗黙変換が出来ず、str.c_str() のように書かないといけないという困った問題がある「かも」知れない。
今のC++でどうなったかは知らない。
2020/03/05(木) 11:41:02.48ID:wTyki8t2
>>552
人による。
そして上のやり取りでもわかる通り玄人ぶったバカが変な思想を押し付けてくるが
気にしなくてもよい。
2020/03/05(木) 12:19:38.92ID:2gUuzrSw
>>561
そんなん好きなようにラッパー関数を書けばええがな。
2020/03/05(木) 13:09:53.92ID:HyVcGvBE
>>563
ラッパー関数とは関係ない話。
2020/03/05(木) 13:22:25.57ID:0hm1XC5v
>>558
ストリームよりprintfがましってのは同意だがprintfよりfmt使え
C++20から標準になる
2020/03/05(木) 13:31:47.82ID:HyVcGvBE
>>565
気になるので言っておく。
stream 入出力とは、古くから FILE, fopen, fclose, fgetc, fread などに対して使われていた言葉で、cout/cin 系専用の言葉ではない。
なんでもそうだが、言葉は有名なところで先に使っていた方が優先されるべきだ。
2020/03/05(木) 13:35:39.19ID:HyVcGvBE
>>566
1. Cのstdin, stdout, FILE, fopen, fclose, fgetc, fread 系の関数群のことは、
非常に古くから「Stream I/O」と呼ばれていた。
2. C++ では、「iostream」というような名称で cout/cin 系のクラスが定義された。
後者の事を単に「ストリーム」と言っても1とは区別が付かないのでやめて欲しい。
2020/03/05(木) 13:38:39.89ID:eBZoUINk
>>556
おい554、range-based-forはコア言語だぞ、断じてSTLではない
そもそも規格票に一言も出てこない用語でイキッてんなよ
俺がアマチュアかどうかも証拠持ってるわけねえよな

寝言は寝て言えタコ助
569デフォルトの名無しさん
垢版 |
2020/03/05(木) 13:39:59.47ID:TYdcXopQ
>>567
C++スレなので。
コンテキストで十分判別がつきます。
2020/03/05(木) 13:41:04.88ID:2gUuzrSw
何を使ってもいいけど、レイヤは切り分けた方がいいと思う。
string を使ってるときは char の配列と混同させて使うべきではないし、
char 配列を使っているなら string のことは忘れた方がいい。
どこがレイヤの境界なのかはっきりさせて。
2020/03/05(木) 13:41:08.45ID:HyVcGvBE
>>565
初めて聞いたが、書式で{1}{2}など C#に似た使い方が出来るが、
逆に、{ や } の記号を簡単にはかけなくなり printf より使いにくくなってしまう。
しかも、{1}{2}が使い易いとは思わない。むしろ%sや%dより混乱する気がする。
しかも標準ライブラリではない。
2020/03/05(木) 13:41:55.46ID:HyVcGvBE
>>569
付かない。
C++はCを前提にしているのだから、両者を混在して使うのが普通だし。
2020/03/05(木) 13:46:28.70ID:HyVcGvBE
>>570
仕組みを深く理解していれば混在させても問題もない。
文字列程度でレイヤー訳が必要になるんなら、Cの上位互換の名を外すべきだ。
別の言語としてやり直せ。
574デフォルトの名無しさん
垢版 |
2020/03/05(木) 13:46:40.22ID:TYdcXopQ
>>572
もうそんな時代じゃないので。
いまは、CがC++に依存する時代。
C++で書かれたAPIをCから呼び出す。
C++がスクリプト言語のような柔軟性を持ちつつ、しかしシステム言語として使われるのは、Cから呼び出せるからでは。
2020/03/05(木) 13:52:08.63ID:wTyki8t2
c++がスクリプト言語のような柔軟性をもつ?何言ってんの?病気か?
2020/03/05(木) 13:55:30.86ID:maJEmc7K
>>568
言い返すとこはそこでいいのか?w
ちなrange-based forはまだC++に慣れてない初心者に押し付けるほどのものではないし
ましてrange-basedに合わせるためにoperatorの実装を押し付けるのは論外
ドヤりたいだけの初心者は黙ってろマジ迷惑だから
2020/03/05(木) 13:59:58.25ID:HyVcGvBE
>>574
coutやstd::stringが使い易いなら誰もCでやろうとは思わないが、現実にはCの方が便利だから
あくまでも使いにくいそれらを使おうとするとのは、今のネットは新しい情報だけが上に来てしまうため、C++しか知らない人が多いためだ。
2020/03/05(木) 14:00:13.40ID:0hm1XC5v
>>571
好きにどうぞ
時代に取り残されないようにな
2020/03/05(木) 14:00:44.50ID:HyVcGvBE
>>577
一行目の「だから」の直後に「。」が抜けていた。
2020/03/05(木) 14:01:43.36ID:HyVcGvBE
>>578
古いものを知らないで勝手に変な仕様を入れてしまう人が増えているんだ。
C#やcppfmtのそれは、PerlやRubyよりも遥かに使いにくい。
581デフォルトの名無しさん
垢版 |
2020/03/05(木) 14:10:16.89ID:TYdcXopQ
>>580
好きにどうぞ
時代に取り残されないようにな
2020/03/05(木) 14:11:08.23ID:eBZoUINk
>>576
現場でよく使われる関数は何かと尋ねられて
すぐ思い当たるものを正直に述べたのが
初心者に押しつけたように見えるのは
おまえの目か頭のどちらかがおかしいからだ
いや両方か?

C++11に付いていけず置いてかれ
C++03でドヤりたいだけなアウトカーストこそ
マトモな初心者に触るなアホが伝染るから
2020/03/05(木) 14:12:52.64ID:maJEmc7K
マジでプロでもフリーソフト開発してるアマチュアでもいいから実際の開発に使ってる人(と初心者)専用の相談スレがあった方がいいかもな
開発全くしてない人間でも別に好きにすればいいが、ここはプロや経験長い人にマウント取りたいだけのクソバカが多過ぎる(しかもそれに初心者が騙されて右往左往する)

まぁその役割は初心者スレがすでにある程度担ってんだろうけど
2020/03/05(木) 14:13:34.58ID:maJEmc7K
>>582
アマチュアで初心者でドヤりたいだけ、ってのは否定しないのかwwww
585デフォルトの名無しさん
垢版 |
2020/03/05(木) 14:16:27.96ID:TYdcXopQ
乱数とかCライブラリでは辛すぎる。
2020/03/05(木) 14:16:37.51ID:eBZoUINk
>>584
はあ? 俺がアマチュアという事実無根の誹謗中傷をしたことを否定しないのはおまえだろ
2020/03/05(木) 14:17:44.84ID:eBZoUINk
嘘つき野郎と日本語で言っても非難の度合いが弱すぎるので英語でLIAR!!
588デフォルトの名無しさん
垢版 |
2020/03/05(木) 14:17:54.10ID:TYdcXopQ
仕様に「任意の」とついたら、もうCでは拷問になる。
CIA真っ青級の。
589デフォルトの名無しさん
垢版 |
2020/03/05(木) 14:18:57.32ID:TYdcXopQ
めんどくさいからそろそろ天才がどうたらいういつもの結論行って。
590デフォルトの名無しさん
垢版 |
2020/03/05(木) 14:20:20.54ID:TYdcXopQ
Networking TSが入れば追いついてこれるものなど居ない。
2020/03/05(木) 14:21:04.08ID:wTyki8t2
江添に影響されたバカが増えたよな。
ああいうまともにコード書いてないで知ったかするカス態度はほんと害悪だわ。
2020/03/05(木) 14:23:28.86ID:eBZoUINk
生データからノイズを除去し有益な情報だけを抽出できないやつに江添の文面は無理
2020/03/05(木) 14:26:52.95ID:maJEmc7K
まぁC++専門のライター自身がC++に変な幻想抱いてるしね
スクリプト言語の代わりになったって仕方ないのに
むしろC++にそのように振る舞わせるためにユーザーがアホほどコスト掛けなきゃいけなくなるという
594デフォルトの名無しさん
垢版 |
2020/03/05(木) 14:32:04.59ID:TYdcXopQ
>>593
https://root.cern.ch/cint
2020/03/05(木) 14:32:11.09ID:wTyki8t2
ただ新しい言語をなぜやるかの理由の一つとして
年上にマウントとるためってのは実際大きいんだろうなと思う。
これは他言語でもそうだし、昔からそう。
この点についてこの業界は50年以上全く解決されてない。
596デフォルトの名無しさん
垢版 |
2020/03/05(木) 14:33:02.32ID:TYdcXopQ
C++でワンライナー書けるようになったら、初心者脱出。
2020/03/05(木) 14:37:10.41ID:LYrzkUWd
>>574
cがc++に依存するって何のこと言ってる?
2020/03/05(木) 14:41:02.50ID:eBZoUINk
俺が6800のマシン語やり始めた頃
ジジイたちはPCなんてオモチャとバカにしてたから
マウント取りたきゃいつでも取れてたが
そんなパンピーが考えそうなくだらねえことには興味なかった
599デフォルトの名無しさん
垢版 |
2020/03/05(木) 14:45:43.10ID:TYdcXopQ
C++を使いこなせないと老害の始まり。
2020/03/05(木) 15:16:05.18ID:maJEmc7K
>>594
時代がどうこう言ってたのに03までやんけ(´・ω・`)

>>598
老g(ry
601デフォルトの名無しさん
垢版 |
2020/03/05(木) 15:17:50.50ID:TYdcXopQ
URL見て気が付いてほしかったが。
2020/03/05(木) 15:21:51.85ID:maJEmc7K
君そのマウント癖やめた方がいいよ
しょっちゅう恥かいてるだろ?
しかも自爆でw
603デフォルトの名無しさん
垢版 |
2020/03/05(木) 15:28:42.90ID:TYdcXopQ
いや、CINTなんていにしえの遺物で、話題になることも無いし。
そこで気づいてほしかったのだが。
604デフォルトの名無しさん
垢版 |
2020/03/05(木) 15:30:00.52ID:TYdcXopQ
まさに老害にぴったりと。
2020/03/05(木) 15:35:14.30ID:LYrzkUWd
>>604
でcがc++に依存するって何のこと?
2020/03/05(木) 15:51:28.16ID:eBZoUINk
俺もぜひ拝聴したいねえ
2020/03/05(木) 16:27:00.86ID:0JAmDFqx
このスレって伸びてるときほど中身が薄くなるなw
608デフォルトの名無しさん
垢版 |
2020/03/05(木) 16:33:56.89ID:TYdcXopQ
もはやCだけで完結しない。
Cは歴史の遺物。
609デフォルトの名無しさん
垢版 |
2020/03/05(木) 16:35:18.30ID:TYdcXopQ
API呼び出したら、中身はC++で書かれてるだろ?
2020/03/05(木) 16:39:10.51ID:4O4IELXe
>>557
エラーってのがコンパイルエラーなら"\\s"とかR"(\s)"にする、実行時ならコンパイラのバージョンを上げる、でどうかな
2020/03/05(木) 16:55:10.20ID:DpzQwxFi
その理論だとc++もcでかかれたコード呼ぶだろ
ライブラリがc++のしか用意されてないとかそういう話かと思った
2020/03/05(木) 16:58:12.34ID:eBZoUINk
>>609
Cから呼び出されるC++関数を書くにはC++側でCに合わせる必要がある
そういうのをCがC++に依存したというのはちょっと無理あるだろ
2020/03/05(木) 17:08:17.82ID:LYrzkUWd
>>609
時代とか大口叩いたくせに後で矮小化すんなよ、くそださい

その例でいうと中の実装言語が何かはc側は関知してないだろ
それはcがc++に依存とは言わない
その関数が提供する機能に依存してるという特定の事例にすぎない
だいたいABIは事実上cベースしかない
c++がcのふりしてるんだよ
2020/03/05(木) 17:11:40.19ID:2VKfb2ir
名前修飾の法則は規格化されないんかね
2020/03/05(木) 17:16:22.18ID:HyVcGvBE
>>609
・Windowsの場合、C++のプログラムは最終的には、Win32を呼び出しているが、 Win32は、記述言語もインターフェースもC。
・Linuxでも同様。LinuxのKernel本体はCで書かれている。
 GTKやKDE, Qt は原則 C++ だが、最終的には Cで書かれ、かつ、Cのインターフェース を持つ System Call が呼び出される。

どちらも
C++ ---> C
の流れ。基礎部分やバックエンド部分は C になることが多い。
逆に C から C++ を呼び出すことは稀。
だから、事実とは逆。
2020/03/05(木) 17:19:27.49ID:HyVcGvBE
>>614
gccのマングリング化法は資料がある。
vc++も解析資料がある。
clangはgccのマングリング化法を使っている。
しかし、gccのマングリング化法を使うと、gnu/FSF/GPL 信者から
「真似をした、ずるい」と文句を言われたり、証拠もないのに
「勝手にソースを使った」などと風評被害があるに決まってるから
使いづらい。
2020/03/05(木) 17:19:36.10ID:2VKfb2ir
windowsはc++と混在してたはずよ
win32だけは違うとかあるかも試練が
2020/03/05(木) 17:21:34.22ID:HyVcGvBE
>>617
・GDI+ は C++ インターフェースだが、内部では Cの API を呼び出す仕組みになっている。
・DirectXも C++ インターフェースではあるが、COMだから Cからも呼び出せる。
2020/03/05(木) 17:23:03.34ID:HyVcGvBE
>>617
Win32は、GDI+以外はほぼ全て Cのはず。
MFCは、Win32をラッピングしているから、
C++(フロントエンド) ---> C(バックエンド)
の流れ。
2020/03/05(木) 17:24:33.30ID:wTyki8t2
こいつらextern "C"についてさえまともに理解してなさげ。。
2020/03/05(木) 17:37:41.82ID:HyVcGvBE
>>608
Cだけだと、少し不便なだけで完結する。
むしろ、C++ だけではスクリプト言語的なことしかできないので、完結とはいいがたい。

このスレは新しい言語である C++ をネットで学んだだけで、基礎となる C の部分が学べてない人が多いようだ。
ネットだと新しく入った機能や新しい記事だけが上位に来てしまうから、新しいことしか知らない人が書いたページだけしか見る機会がなくなってしまうが、それだと悪循環になり、古くてももっと良いものがあっても学べない。
622デフォルトの名無しさん
垢版 |
2020/03/05(木) 17:47:46.22ID:TYdcXopQ
C++を使いこなせない老害がCに固執してると見た。
2020/03/05(木) 17:48:19.67ID:maJEmc7K
このスレに限らず、検索してても初心者が過去の遺物だのオワコンだの死すべしだの
口の悪い厨二病発言するだけで上級者になったつもりのクソブログばっかり上に出るからなぁ
ABIというかマングリングとかバイナリ周りの統一に関しては、C++はいつまで経ってもCの後塵を拝する形になってるんだが、何年かC++やっててもその程度の欠点にも気付かない奴ってのは
要するにそういうことだろ・・・
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況