C++相談室 part147
レス数が950を超えています。1000を超えると書き込みができなくなります。
C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。
前スレ
C++相談室 part146
https://mevius.5ch.net/test/read.cgi/tech/1573094136/
このスレもよろしくね。
【初心者歓迎】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/ (日本語)
STLつかうと一気に実行ファイルサイズが10倍に?!
環境によるだろ。
俺はBorland-C++5.6.2に -D_RTLDLL オプションを指定して、極力
ランタイムを使用するようにして使っているが、例えばstd::vectorを
使っても使わない時と比べ10Kほどしか増えない
すげえ。ダイナミックリンクしといてファイルサイズが増えないとかいってるよ。この人。
↑え?だってお前、普通ダイナミックリンクするだろ?
"ダイナミックリンク"す・れ・ば、ファイルサイズ**増えないです** でもまあヘッダファイルを C と C++ の両方で (マクロで少し切り分けて) 使いたいってことはあるから、
そういうときは typedef にしといた方が共用できる部分が多くて楽ってことはある。 >>849
そこだけだと構文糖衣以上のメリットはないよね >>849
ポインタまわりはテンプレートの記法で書けば統一的でわかりやすい気がするが、
たぶん他の名前とかぶらないようにするためか長めの名前なのがちょっとなぁ……。
using funcp = std::add_pointer_t<int(void)>; >>842
PL/1はいいぞ
制御構文としてif程度しか使えないしょぼいC/C++マクロと違ってプリプロセッサでDOループやGOTOとかも使えるしサブルーチンの定義すらできるぞw
https://en.m.wikipedia.org/wiki/PL/I_preprocessor そういえば最近Boost.Preprocessorを使った楽しい黒魔術の話題を聞かない気がする
あれってまだ開発継続してるの? >>849
typedefの方が簡単じゃん
コピペして*付けて()付けるだけ >>852
おまえさ、usingはテンプレートにできること、まさか知らないの? CPPってもうメンテされていないようで怖い
#define FOO 123 // comment
とはとうてい恐ろしくてどうしても書けず、
#define FOO 123 /* comment */
と書いてしまうま N4713
5.2 Phases of translation
3
Each comment is replaced by one space character. New-line characters are retained. >>860
そこだけって書いてあるのに脳内で読み飛ばずのは
国語の成績悪かったやつの特徴 >>864
おい852本人、「構文糖衣以上のメリットはない」という自分の言葉から逃げるのに
そういう言い訳は見苦しいぞ
今さら吐いた唾を飲むなよ 俺は争いは好まないが、
平和的な話し方をしないやつには
場合にもよるが嫌悪感を露にすることもある 平和を愛するという点で共感が得られず
こちらが下手に出ることのベネフィットがない相手には容赦は無用ということだ 戦士と戦士が巡り合ってしまうと、バトル・フィールドが形成されるシステムってことか。 >>870=ID:VrR0aqw1
マウント取りたいだけの初心者だから相手しない方がいい >>867
多くのC++民が喧嘩腰なのでなく、一部の喧嘩好きの戦闘民族のレスが目立ってるだけじゃね。このスレから相手に勝つことだけが目的の無意味なレスの応酬を取り除いたら、1/10も残らないと思うぞ。 いや最近のC++に対するちょっと否定的な意見が出ただけで
過剰反応する住民のせいでもあると思うぞ
で、そういう奴に限って間違いを素直に認めたりなどしないからな(代理戦争で議論するやつ特有のパターン >>872
正直に言えよ、「gotoの何が悪いのか詰問されると困るから」相手しないと
マウント取られそうでヤバいんだろw 俺ID:loc7kxiYだからgotoの話はしてないよ
で、前にも聞いたけど反論まだ? ああ、そのIDのときはSTLの話だったな
そこでマクロの話も出てきていたが
隠すべきものと隠してはならないものの区別がつかない点で
gotoの何が悪いのかわかってないやつとプロファイリングが一致するんだよ
俺の正直な気持ちを教えといてやる
マウント取りたいんじゃなく、頭からアホにしてんだよ
こんなやつをマウントできたからって偉くも何ともねえ いやSTLじゃなくてテンプレートを持て囃しすぎって話だったんだが
まぁいいや なんかおかしなのがいるよね
圧倒的にこっちが勝っている状態で意味不明な反論?してきて意味不明だから返せないと逃げたとか言う奴 明日早いから失礼するとは言ったが
それを謎変換せにゃならん切羽詰まったやつがいるのかw gotoは初期化を飛び越えることが出来ないと聞きました。 初期化を飛び越えることができるバーストモードgotoないでしょうか。 465のlongj【u】mp野郎まだいたのかwww バカほど多くの機能を使いたがるってのがプログラマーが解決しなければならん問題だな。 使いどころが悪いって指摘ならまだしも、ある機能を使い所で使うなとか言うのは結局俺が分からんからってだけだよね 使いどころが本当に正しいか頭使って考えてりゃね。
バカは流行りだから、なんかカッケーから以上に何も考えてないから
レガシー化するわけだ。
んでまた新しいものに飛びついていく。 仕事ならそのコードがメンテできる人が他にどれだけいるかで考える メンテできるやつが「オレ」以外の全員でもか? アホwバカwww C++03しか知らないんだけど
C++17まで修めるにはつるピカ先生の御本を読めばいいですか? つるぴか先生の本は聖典だ
お守りのようなものなので読まなくても買って横においときなさい cppreferenceは循環参照みたいになってて使い辛い 実際にお互いに連携するからそう綺麗に木構造にはならんのやで。 1つの情報源しか見てないとサイトから脳へバグが伝染るぞ cppreferenceは調べるためのサイトじゃなくて
忘れてたことを思い出すためのサイトって意味なら
まあまあ同意 ネットじゃなく、ローカルに俺メモを作るのは基本だね 作らなくてもcppreferenceをcloneすればいいじゃないか 脳内の理解を、きちんと清書してみると
自分の言ってることがおかしいのに気付くことがよくあるんだよ 最近の俺はそう言われても仕方ないアホなことをよくやらかすが
まだ若く元気だった頃から、俺メモでセルフチェックはやってるよ 女子社員のメモを集めたら最強マニュアルができたなんてエピソード昔聞いたことある ビャーネ・ストラウストラップ の第四版は、C++11までですよね? そら当たり前でんがな
承知の上で読む分には何も問題ないけどな 質問者は、C++17まで収めたいと思っているようですが。 C++11 までわかってればあとは cpprefjp で差分を見れば充分でしょ。 03→11の乖離は大きいが14、17はそれほどでもない
20、23でまた大きく変わるが しかしメジャー2連くるかねえ
段階的変更という大人の配慮を忘れたら
C++終わると思うが コンセプトとモジュールの導入は C++er の悲願だと思っていたがそうでもないの?
クソみたいなマクロを殺すのがだいぶん上手くいったから次はクソみたいな SFINAE を殺そうという動きだと理解してる。 > ポインタライクなオブジェクトからアドレスを取得する std::to_address() 関数 (P0653R2)
> ポインタライクなオブジェクトを引数にとり、それが表すのと同じアドレスを生ポインタで返す関数
> std::to_address(p) が追加されます。オブジェクトがポインタ型の場合はその値を返し、それ以外の場合、
> std::pointer_traits<Ptr>::to_address(p) の特殊化が定義されていて使えればその戻り値を、
> そうでない場合は std::to_address(p.operator->()) の戻り値を返します。
ついにポインタのことをアドレスって言っても良くなったんだな
俺の学生時代にはポインタの事をアドレスと言って良く怒られたものだ
懐かしい思い出 変数は実は二つの値から出来ている
一つは変数の中に入っている値
もう一つは変数のアドレスの値
この二つだ
変数の二重性がC言語の理解を無駄に難しくしてる
アドレスの値が入ってるのは機械語から言えば当然だが
変数なる計算機科学の概念がそこに中途半端にドッキングすると複雑になる
ポインタで躓くヤツが多いのは機械語と高水準言語、その中間に位置するC言語の変数がもつ二重性のせいだ ID:Z7o7STkD
このスレはこういう精神病みたいなやつ多くない? 皆さん情報ありがとう
ひとまず先生のWeb版「C++入門」をやってみることにしました operatorの暗黒面を知れという実習問題
ここでみんなでやってみないか? 単純なキーワード検索できないことぐらいでしょ。暗黒面。 operatorは自明な場合しか使わない
構造体代入のように見えて変数の逐次代入してあって、
後で追加された変数が処理されていなかったりして気づかないとかこわい 演算子の多重定義とテンプレートの組み合わせはチョー便利
gotoと同じで手放せない便利さ…! 同じといや同じだし違うといやぁちがう
普通の脳味噌のやつには適当に「こまけぇことはいいから同じようなもんだ」と
いっとけば通じるが、このスレにウヨウヨいるような偏執狂タイプの連中に
うかつに「同じ」なんていうとポインタをアドレスと同じように整数を足すと
そのぶんアドレス値が進むと思いこむやつがでてくるからうかつに言えないだけ >std::to_address()
^^^^^^^
>それが表すのと同じ「アドレス」を「生ポインタ」で返す関数
となってるので公式で
ポインタ=アドレス >>941
アドレスの値を生ポインタの型として返す、ということだから、
この文脈では明確に別の意味だろ いや、to_address() という名前の関数が生ポインタを返すから
ポインタ=アドレスで問題ない
そうじゃないんなら、to_pointer() っていう関数名にするだろ、普通
そこが to_address() となってる オプションだし。
アドレスを返せないファンシーポインタもあるということでは。 俺は古いタイプの人間だから俺の感覚で言うと
to_address() って言えば、生のアドレス値が整数型で帰ってくるという低レベルなイメージ
それが生ポインタが帰ってくるというなら to_pointer() としたいところ
ところが生ポインタが帰ってくるのに to_address() となってるわけだから
ああなるほど、時代は変わったなぁ、と
その辺 C++ の人たちはうるさいと思っていたんだがねぇ
もう公式で ポインタ = アドレス なのね pointer指すもの
address指す先
じゃね ファンシーポインタからポインタをとるときに使うもののような気がする。
それが不可能なこともあるからオプションなのでは。 ポインタ→ポインタあるいはファンシーポインタ・・・pointer_to。
ポインタあるいはファンシーポインタ→ポインタ・・・to_address。
ってことで、ポインタの意味は変わっていないんじゃないのかな。 簡単に考えれば、生ポインタとスマートポインタetcを区別するために
生ポインタの事をアドレスと言ってるわけだよ
スマートポインタetc -> ポインタ
生ポインタ -> アドレス
っていう格上か格下げか知らんが、一つずらした呼び名になってるんだ
俺みたいな古い人間には受け入れがたいものもあるが
「生ポインタなんか使わねーよスマポこそがポインタであり生ポなんかアドレスとでも呼べばよい」
という今の時代に合わせた考え方なんだろう
スマポetc(ポインタ)から生ポ(アドレス)に変換するから to_address()
ちょうど Java のオブジェクトを指す変数は C++ 的には参照だが
Java の人たちはオブジェクトと言うし、そう考えてる、ってのに似てる javaの変数はポインタだろ
代入したら指す先が変わるし
null持てるし
まあ演算できない劣化版だが レス数が950を超えています。1000を超えると書き込みができなくなります。