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++相談室 part147
レス数が950を超えています。1000を超えると書き込みができなくなります。
2019/12/18(水) 17:56:53.03ID:uFDqtnkl
893デフォルトの名無しさん
2020/01/29(水) 22:33:49.38ID:vJ6+7lg9 仕事ならそのコードがメンテできる人が他にどれだけいるかで考える
894デフォルトの名無しさん
2020/01/29(水) 22:49:46.87ID:HJZ6WUGV メンテできるやつが「オレ」以外の全員でもか? アホwバカwww
895デフォルトの名無しさん
2020/01/29(水) 22:56:36.84ID:pjwqAxyM うむ、お前以外の全員でもだ。
896デフォルトの名無しさん
2020/01/29(水) 22:57:52.50ID:vJ6+7lg9 もうそろそろ寝る時間じゃないの?
897デフォルトの名無しさん
2020/01/29(水) 22:59:28.19ID:pjwqAxyM かなり眠いです。
898デフォルトの名無しさん
2020/01/29(水) 23:16:21.00ID:gRkDTmNL C++03しか知らないんだけど
C++17まで修めるにはつるピカ先生の御本を読めばいいですか?
C++17まで修めるにはつるピカ先生の御本を読めばいいですか?
899デフォルトの名無しさん
2020/01/30(木) 00:33:56.60ID:x7BjuJ+g cppreferenceで十分
900はちみつ餃子 ◆8X2XSCHEME
2020/01/30(木) 00:49:18.87ID:v/8wm2Cj どれかひとつじゃなきゃいかんてことはないんだ
901デフォルトの名無しさん
2020/01/30(木) 00:52:54.89ID:D1C6nROc つるぴか先生の本は聖典だ
お守りのようなものなので読まなくても買って横においときなさい
お守りのようなものなので読まなくても買って横においときなさい
902デフォルトの名無しさん
2020/01/30(木) 16:01:21.46ID:sB8XzCcn cppreferenceは循環参照みたいになってて使い辛い
903はちみつ餃子 ◆8X2XSCHEME
2020/01/30(木) 16:02:36.57ID:v/8wm2Cj 実際にお互いに連携するからそう綺麗に木構造にはならんのやで。
904デフォルトの名無しさん
2020/01/30(木) 16:09:47.86ID:6JJixhdc 1つの情報源しか見てないとサイトから脳へバグが伝染るぞ
905デフォルトの名無しさん
2020/01/30(木) 16:11:35.43ID:sB8XzCcn cppreferenceは調べるためのサイトじゃなくて
忘れてたことを思い出すためのサイトって意味なら
まあまあ同意
忘れてたことを思い出すためのサイトって意味なら
まあまあ同意
906デフォルトの名無しさん
2020/01/30(木) 17:00:38.03ID:6JJixhdc ネットじゃなく、ローカルに俺メモを作るのは基本だね
907デフォルトの名無しさん
2020/01/30(木) 17:05:52.06ID:CwICoFVZ 作らなくてもcppreferenceをcloneすればいいじゃないか
908デフォルトの名無しさん
2020/01/30(木) 17:15:03.76ID:6JJixhdc 脳内の理解を、きちんと清書してみると
自分の言ってることがおかしいのに気付くことがよくあるんだよ
自分の言ってることがおかしいのに気付くことがよくあるんだよ
909デフォルトの名無しさん
2020/01/30(木) 17:26:38.98ID:Z7o7STkD 認知症の可能性が。
910デフォルトの名無しさん
2020/01/30(木) 17:51:33.22ID:6JJixhdc 最近の俺はそう言われても仕方ないアホなことをよくやらかすが
まだ若く元気だった頃から、俺メモでセルフチェックはやってるよ
まだ若く元気だった頃から、俺メモでセルフチェックはやってるよ
911デフォルトの名無しさん
2020/01/30(木) 18:12:36.69ID:Z7o7STkD みんなのメモを集めれば・・・
912デフォルトの名無しさん
2020/01/30(木) 18:36:17.39ID:6JJixhdc 女子社員のメモを集めたら最強マニュアルができたなんてエピソード昔聞いたことある
913はちみつ餃子 ◆8X2XSCHEME
2020/01/30(木) 18:38:54.14ID:v/8wm2Cj cpprefjp にコミットしてくれ。
914デフォルトの名無しさん
2020/01/30(木) 19:00:51.60ID:AVLJabA/ ビャーネ・ストラウストラップ の第四版は、C++11までですよね?
915デフォルトの名無しさん
2020/01/30(木) 19:06:12.13ID:6JJixhdc そら当たり前でんがな
承知の上で読む分には何も問題ないけどな
承知の上で読む分には何も問題ないけどな
916デフォルトの名無しさん
2020/01/30(木) 19:27:51.04ID:AVLJabA/ 質問者は、C++17まで収めたいと思っているようですが。
917はちみつ餃子 ◆8X2XSCHEME
2020/01/30(木) 19:31:35.00ID:v/8wm2Cj C++11 までわかってればあとは cpprefjp で差分を見れば充分でしょ。
918デフォルトの名無しさん
2020/01/30(木) 19:32:19.73ID:x7BjuJ+g 03→11の乖離は大きいが14、17はそれほどでもない
20、23でまた大きく変わるが
20、23でまた大きく変わるが
919デフォルトの名無しさん
2020/01/30(木) 19:36:37.08ID:6JJixhdc >>918
御意
御意
920デフォルトの名無しさん
2020/01/30(木) 19:51:01.92ID:6JJixhdc しかしメジャー2連くるかねえ
段階的変更という大人の配慮を忘れたら
C++終わると思うが
段階的変更という大人の配慮を忘れたら
C++終わると思うが
921デフォルトの名無しさん
2020/01/30(木) 19:54:30.05ID:R974cSCc もう変える必要なんかないだろうに
922デフォルトの名無しさん
2020/01/30(木) 19:54:36.77ID:Z7o7STkD まだ終わってなかったんだ。
923はちみつ餃子 ◆8X2XSCHEME
2020/01/30(木) 19:57:26.16ID:v/8wm2Cj コンセプトとモジュールの導入は C++er の悲願だと思っていたがそうでもないの?
クソみたいなマクロを殺すのがだいぶん上手くいったから次はクソみたいな SFINAE を殺そうという動きだと理解してる。
クソみたいなマクロを殺すのがだいぶん上手くいったから次はクソみたいな SFINAE を殺そうという動きだと理解してる。
924デフォルトの名無しさん
2020/01/30(木) 20:01:14.28ID:Z7o7STkD コンセプトは欲しいです。
925デフォルトの名無しさん
2020/01/30(木) 20:25:47.17ID:/5vTOygk > ポインタライクなオブジェクトからアドレスを取得する std::to_address() 関数 (P0653R2)
> ポインタライクなオブジェクトを引数にとり、それが表すのと同じアドレスを生ポインタで返す関数
> std::to_address(p) が追加されます。オブジェクトがポインタ型の場合はその値を返し、それ以外の場合、
> std::pointer_traits<Ptr>::to_address(p) の特殊化が定義されていて使えればその戻り値を、
> そうでない場合は std::to_address(p.operator->()) の戻り値を返します。
ついにポインタのことをアドレスって言っても良くなったんだな
俺の学生時代にはポインタの事をアドレスと言って良く怒られたものだ
懐かしい思い出
> ポインタライクなオブジェクトを引数にとり、それが表すのと同じアドレスを生ポインタで返す関数
> std::to_address(p) が追加されます。オブジェクトがポインタ型の場合はその値を返し、それ以外の場合、
> std::pointer_traits<Ptr>::to_address(p) の特殊化が定義されていて使えればその戻り値を、
> そうでない場合は std::to_address(p.operator->()) の戻り値を返します。
ついにポインタのことをアドレスって言っても良くなったんだな
俺の学生時代にはポインタの事をアドレスと言って良く怒られたものだ
懐かしい思い出
926デフォルトの名無しさん
2020/01/30(木) 20:36:13.05ID:rpXeID84 変数は実は二つの値から出来ている
一つは変数の中に入っている値
もう一つは変数のアドレスの値
この二つだ
変数の二重性がC言語の理解を無駄に難しくしてる
アドレスの値が入ってるのは機械語から言えば当然だが
変数なる計算機科学の概念がそこに中途半端にドッキングすると複雑になる
ポインタで躓くヤツが多いのは機械語と高水準言語、その中間に位置するC言語の変数がもつ二重性のせいだ
一つは変数の中に入っている値
もう一つは変数のアドレスの値
この二つだ
変数の二重性がC言語の理解を無駄に難しくしてる
アドレスの値が入ってるのは機械語から言えば当然だが
変数なる計算機科学の概念がそこに中途半端にドッキングすると複雑になる
ポインタで躓くヤツが多いのは機械語と高水準言語、その中間に位置するC言語の変数がもつ二重性のせいだ
927デフォルトの名無しさん
2020/01/30(木) 21:07:45.27ID:Z7o7STkD ところでコンセプトって何ですか?
928デフォルトの名無しさん
2020/01/30(木) 21:12:58.09ID:jdq+FHbl ID:Z7o7STkD
このスレはこういう精神病みたいなやつ多くない?
このスレはこういう精神病みたいなやつ多くない?
929デフォルトの名無しさん
2020/01/30(木) 21:22:32.86ID:cFc5UMZy >>923
イキった初心者に影響受けすぎ
イキった初心者に影響受けすぎ
930デフォルトの名無しさん
2020/01/30(木) 21:34:14.92ID:r1oioh07 ハゲの悲願だろ
931898
2020/01/30(木) 21:40:54.77ID:XvvyOq64 皆さん情報ありがとう
ひとまず先生のWeb版「C++入門」をやってみることにしました
ひとまず先生のWeb版「C++入門」をやってみることにしました
932デフォルトの名無しさん
2020/01/30(木) 21:41:00.44ID:Z7o7STkD なんだと!
933デフォルトの名無しさん
2020/01/30(木) 22:11:01.65ID:6JJixhdc operatorの暗黒面を知れという実習問題
ここでみんなでやってみないか?
ここでみんなでやってみないか?
934デフォルトの名無しさん
2020/01/30(木) 22:19:13.93ID:FR6/17T7 単純なキーワード検索できないことぐらいでしょ。暗黒面。
935デフォルトの名無しさん
2020/01/30(木) 22:24:37.20ID:R974cSCc operatorは自明な場合しか使わない
構造体代入のように見えて変数の逐次代入してあって、
後で追加された変数が処理されていなかったりして気づかないとかこわい
構造体代入のように見えて変数の逐次代入してあって、
後で追加された変数が処理されていなかったりして気づかないとかこわい
936デフォルトの名無しさん
2020/01/30(木) 22:26:34.32ID:/1tMjbDQ 暗黙変換と絡んだ地獄を知らんのか
937デフォルトの名無しさん
2020/01/30(木) 22:36:05.95ID:Q1Ec3Ov8 >>933
gotoおじさんに答えさせようぜ
gotoおじさんに答えさせようぜ
938デフォルトの名無しさん
2020/01/30(木) 22:42:34.01ID:o/4wL0K/ 演算子の多重定義とテンプレートの組み合わせはチョー便利
gotoと同じで手放せない便利さ…!
gotoと同じで手放せない便利さ…!
939デフォルトの名無しさん
2020/01/30(木) 23:30:29.18ID:HitChVTH >>925
ポインタとアドレスは別物でしょ
ポインタとアドレスは別物でしょ
940デフォルトの名無しさん
2020/01/31(金) 00:09:44.31ID:3dxm9JOP 同じといや同じだし違うといやぁちがう
普通の脳味噌のやつには適当に「こまけぇことはいいから同じようなもんだ」と
いっとけば通じるが、このスレにウヨウヨいるような偏執狂タイプの連中に
うかつに「同じ」なんていうとポインタをアドレスと同じように整数を足すと
そのぶんアドレス値が進むと思いこむやつがでてくるからうかつに言えないだけ
普通の脳味噌のやつには適当に「こまけぇことはいいから同じようなもんだ」と
いっとけば通じるが、このスレにウヨウヨいるような偏執狂タイプの連中に
うかつに「同じ」なんていうとポインタをアドレスと同じように整数を足すと
そのぶんアドレス値が進むと思いこむやつがでてくるからうかつに言えないだけ
941デフォルトの名無しさん
2020/01/31(金) 00:10:58.09ID:v4E0eL1J >std::to_address()
^^^^^^^
>それが表すのと同じ「アドレス」を「生ポインタ」で返す関数
となってるので公式で
ポインタ=アドレス
^^^^^^^
>それが表すのと同じ「アドレス」を「生ポインタ」で返す関数
となってるので公式で
ポインタ=アドレス
942デフォルトの名無しさん
2020/01/31(金) 00:14:07.32ID:70BTs5bI943デフォルトの名無しさん
2020/01/31(金) 00:15:57.33ID:v4E0eL1J いや、to_address() という名前の関数が生ポインタを返すから
ポインタ=アドレスで問題ない
そうじゃないんなら、to_pointer() っていう関数名にするだろ、普通
そこが to_address() となってる
ポインタ=アドレスで問題ない
そうじゃないんなら、to_pointer() っていう関数名にするだろ、普通
そこが to_address() となってる
944デフォルトの名無しさん
2020/01/31(金) 00:21:59.86ID:88e+X9K2 オプションだし。
アドレスを返せないファンシーポインタもあるということでは。
アドレスを返せないファンシーポインタもあるということでは。
945デフォルトの名無しさん
2020/01/31(金) 00:23:11.07ID:v4E0eL1J 俺は古いタイプの人間だから俺の感覚で言うと
to_address() って言えば、生のアドレス値が整数型で帰ってくるという低レベルなイメージ
それが生ポインタが帰ってくるというなら to_pointer() としたいところ
ところが生ポインタが帰ってくるのに to_address() となってるわけだから
ああなるほど、時代は変わったなぁ、と
その辺 C++ の人たちはうるさいと思っていたんだがねぇ
もう公式で ポインタ = アドレス なのね
to_address() って言えば、生のアドレス値が整数型で帰ってくるという低レベルなイメージ
それが生ポインタが帰ってくるというなら to_pointer() としたいところ
ところが生ポインタが帰ってくるのに to_address() となってるわけだから
ああなるほど、時代は変わったなぁ、と
その辺 C++ の人たちはうるさいと思っていたんだがねぇ
もう公式で ポインタ = アドレス なのね
946デフォルトの名無しさん
2020/01/31(金) 00:24:13.53ID:MjAWY572 pointer指すもの
address指す先
じゃね
address指す先
じゃね
947デフォルトの名無しさん
2020/01/31(金) 00:25:21.16ID:88e+X9K2 addressofで返ってくるのもポインタだし。
948デフォルトの名無しさん
2020/01/31(金) 00:27:00.86ID:88e+X9K2 ファンシーポインタからポインタをとるときに使うもののような気がする。
それが不可能なこともあるからオプションなのでは。
それが不可能なこともあるからオプションなのでは。
949デフォルトの名無しさん
2020/01/31(金) 00:35:50.96ID:88e+X9K2 ポインタ→ポインタあるいはファンシーポインタ・・・pointer_to。
ポインタあるいはファンシーポインタ→ポインタ・・・to_address。
ってことで、ポインタの意味は変わっていないんじゃないのかな。
ポインタあるいはファンシーポインタ→ポインタ・・・to_address。
ってことで、ポインタの意味は変わっていないんじゃないのかな。
950デフォルトの名無しさん
2020/01/31(金) 00:42:12.84ID:v4E0eL1J 簡単に考えれば、生ポインタとスマートポインタetcを区別するために
生ポインタの事をアドレスと言ってるわけだよ
スマートポインタetc -> ポインタ
生ポインタ -> アドレス
っていう格上か格下げか知らんが、一つずらした呼び名になってるんだ
俺みたいな古い人間には受け入れがたいものもあるが
「生ポインタなんか使わねーよスマポこそがポインタであり生ポなんかアドレスとでも呼べばよい」
という今の時代に合わせた考え方なんだろう
スマポetc(ポインタ)から生ポ(アドレス)に変換するから to_address()
ちょうど Java のオブジェクトを指す変数は C++ 的には参照だが
Java の人たちはオブジェクトと言うし、そう考えてる、ってのに似てる
生ポインタの事をアドレスと言ってるわけだよ
スマートポインタetc -> ポインタ
生ポインタ -> アドレス
っていう格上か格下げか知らんが、一つずらした呼び名になってるんだ
俺みたいな古い人間には受け入れがたいものもあるが
「生ポインタなんか使わねーよスマポこそがポインタであり生ポなんかアドレスとでも呼べばよい」
という今の時代に合わせた考え方なんだろう
スマポetc(ポインタ)から生ポ(アドレス)に変換するから to_address()
ちょうど Java のオブジェクトを指す変数は C++ 的には参照だが
Java の人たちはオブジェクトと言うし、そう考えてる、ってのに似てる
951デフォルトの名無しさん
2020/01/31(金) 00:44:40.52ID:MjAWY572 javaの変数はポインタだろ
代入したら指す先が変わるし
null持てるし
まあ演算できない劣化版だが
代入したら指す先が変わるし
null持てるし
まあ演算できない劣化版だが
952デフォルトの名無しさん
2020/01/31(金) 00:46:15.67ID:S0Mdice7 常識なんかどんどん変るからな、とくにC/C++みたいな歴史が長い世界は
ピュアCの時代にはそもそもポインタといえばたしかにその値がアドレス(位置情報)
として機能する値と一致していたがファンシーポインタがある現代では
"ポインタ"の実体とそれが保持したい情報(アドレス情報)は一致すると思わない事が常識になる
"ポインタ"は情報としては何かの位置を差す値を保持はしているがそのオブジェクト
自体は保持しているアドレス情報とはまったく無関係のメモリ空間にある何かである
現代の感覚でいうともし std::to_pointer というネーミングにすると
"は?ポインタをポインタに変換するってどういう意味だよ????"とむしろ混乱の元になるってわけだ
ピュアCの時代にはそもそもポインタといえばたしかにその値がアドレス(位置情報)
として機能する値と一致していたがファンシーポインタがある現代では
"ポインタ"の実体とそれが保持したい情報(アドレス情報)は一致すると思わない事が常識になる
"ポインタ"は情報としては何かの位置を差す値を保持はしているがそのオブジェクト
自体は保持しているアドレス情報とはまったく無関係のメモリ空間にある何かである
現代の感覚でいうともし std::to_pointer というネーミングにすると
"は?ポインタをポインタに変換するってどういう意味だよ????"とむしろ混乱の元になるってわけだ
953デフォルトの名無しさん
2020/01/31(金) 00:46:56.64ID:v4E0eL1J なんか長々書いたが
今の時代、スマポこそがポインタであって、もはや生ポインタはアドレスなんだよ!
人間も父が爺になって子が父に繰り上がっていくものだから
時代と共に名実ともに出世していくのは普通の事なのかもしれない
今の時代、スマポこそがポインタであって、もはや生ポインタはアドレスなんだよ!
人間も父が爺になって子が父に繰り上がっていくものだから
時代と共に名実ともに出世していくのは普通の事なのかもしれない
954デフォルトの名無しさん
2020/01/31(金) 00:47:48.87ID:88e+X9K2 ちょっと江添呼んできて。
電車代出すから。
電車代出すから。
955デフォルトの名無しさん
2020/01/31(金) 00:51:32.98ID:v4E0eL1J ただどうしても言いたいのは
生ポインタは address じゃなくても
別に raw_pointer とか native_pointer で良くね?
address って言ったら、ただの数値のイメージがあるわ
生ポインタは address じゃなくても
別に raw_pointer とか native_pointer で良くね?
address って言ったら、ただの数値のイメージがあるわ
956デフォルトの名無しさん
2020/01/31(金) 00:54:08.51ID:88e+X9K2 アドレスに無料で型情報をつけるアイデアをひらめいたときは、俺って天才かも?って思ったんだろな。
957デフォルトの名無しさん
2020/01/31(金) 00:54:15.91ID:S0Mdice7 >>951
我々の感覚からすると実際その通りなんだが、Java脳の人々にとってはそうではない
彼等はスタックという感覚も非常にうすい
なぜならオブジェクトはスタックにはとれず、常に new (ヒープ)しかないから
我々はクラスのインスタンスがスタックにあるのかヒープにあるのかは無意識に常に
判断する事に慣れているが、これをjava脳の人に説明するのはしばしば困難なときがある
我々の感覚からすると実際その通りなんだが、Java脳の人々にとってはそうではない
彼等はスタックという感覚も非常にうすい
なぜならオブジェクトはスタックにはとれず、常に new (ヒープ)しかないから
我々はクラスのインスタンスがスタックにあるのかヒープにあるのかは無意識に常に
判断する事に慣れているが、これをjava脳の人に説明するのはしばしば困難なときがある
958はちみつ餃子 ◆8X2XSCHEME
2020/01/31(金) 00:54:31.65ID:T8rV4kLc >>929
宣言をヘッダファイルに分割する方式は C++ の意味不明さの根源のひとつじゃない?
それで宣言と定義を分ける運用がキッチリできるのならそれはそれでよかったけど、
テンプレートとインラインの活用でヘッダファイルに書く分量がだいぶん多くなってヘッダファイルってなんだっけって気持ちになる。
このあたりの仕組みは再編すべきでしょ。 モジュールは要るって。
コンセプトもなぁ、型に制約を付けるって普通にやりたいことじゃん?
ちょっとした制約を付けるためにまわりくどいメタプログラミングなんてやりたくないよ。
現代的な静的型付け言語ならあって然るべき機能が順当に入るってだけのこと……
と思ってたら延び延びになっちゃったから待たされてる感じが強い。
宣言をヘッダファイルに分割する方式は C++ の意味不明さの根源のひとつじゃない?
それで宣言と定義を分ける運用がキッチリできるのならそれはそれでよかったけど、
テンプレートとインラインの活用でヘッダファイルに書く分量がだいぶん多くなってヘッダファイルってなんだっけって気持ちになる。
このあたりの仕組みは再編すべきでしょ。 モジュールは要るって。
コンセプトもなぁ、型に制約を付けるって普通にやりたいことじゃん?
ちょっとした制約を付けるためにまわりくどいメタプログラミングなんてやりたくないよ。
現代的な静的型付け言語ならあって然るべき機能が順当に入るってだけのこと……
と思ってたら延び延びになっちゃったから待たされてる感じが強い。
959デフォルトの名無しさん
2020/01/31(金) 00:55:51.11ID:MjAWY572 javaはヌルポ出すくせにポインタじゃないのか
ポはなんの略なんだろう
ポはなんの略なんだろう
960デフォルトの名無しさん
2020/01/31(金) 01:06:28.75ID:/0JfR++J >>941
公式は "A value of a pointer type ... represents the address of the first byte ..."
「ポインタ型の値はアドレスを表す」となってる。
https://timsong-cpp.github.io/cppwp/n4659/basic.compound#3
アドレスに加えて他の情報を持つ可能性は否定されないので、いろんな人が言ってるように
厳密にはイコールではないね。
公式は "A value of a pointer type ... represents the address of the first byte ..."
「ポインタ型の値はアドレスを表す」となってる。
https://timsong-cpp.github.io/cppwp/n4659/basic.compound#3
アドレスに加えて他の情報を持つ可能性は否定されないので、いろんな人が言ってるように
厳密にはイコールではないね。
961デフォルトの名無しさん
2020/01/31(金) 01:08:43.20ID:U1PsHN2Y >>958
要らんなどと一言も言ってないぞ
言い回しがそれっぽいってだけ
だいたいモジュールはまだ20では標準ライブラリには使われないし
「コンセプトはよ来い」とか上級者ぶりたい初心者がよく言うけど、その中に「自分で実際にコンセプトを定義する奴」などほぼ居ないだろ
個人的にはこれまでSFINAEでどうにかしてたメタプログラミング用の要件チェックのコードを
全部コンセプトに直すのクソだるい(便利になるだろうけどエラーメッセージ以外で実感するのはまだまだ先)
だいたい来るのはわかってんだからもう一喜一憂するような話でもない
要らんなどと一言も言ってないぞ
言い回しがそれっぽいってだけ
だいたいモジュールはまだ20では標準ライブラリには使われないし
「コンセプトはよ来い」とか上級者ぶりたい初心者がよく言うけど、その中に「自分で実際にコンセプトを定義する奴」などほぼ居ないだろ
個人的にはこれまでSFINAEでどうにかしてたメタプログラミング用の要件チェックのコードを
全部コンセプトに直すのクソだるい(便利になるだろうけどエラーメッセージ以外で実感するのはまだまだ先)
だいたい来るのはわかってんだからもう一喜一憂するような話でもない
962デフォルトの名無しさん
2020/01/31(金) 01:08:59.37ID:70BTs5bI 今も昔もアドレスとポインタの意味は変わってないんでないの?
「アドレス」=メモリ上のオブジェクトの位置を表す番地(具体的には整数値)
「ポインタ」=
(1)何らかのアドレスを格納したT*型の変数(オブジェクト)。生ポインタ。
(2)「アドレス」と同じ意味で用いる
昔からポインタ(2)の用法でアドレスとポインタを同一視して使われるだけで、ポインタ(1)の用法で「アドレス」とは言わんでしょ。
to_addressの件も、引数として受けとるオブジェクトに対する「アドレス」の値を返すのだからto addressと言う命名で適切だろう。ここでto pointerとしたら直感的に「ポインタ」(1)の意味で解釈されかねず、下手な命名だと思う。
「アドレス」=メモリ上のオブジェクトの位置を表す番地(具体的には整数値)
「ポインタ」=
(1)何らかのアドレスを格納したT*型の変数(オブジェクト)。生ポインタ。
(2)「アドレス」と同じ意味で用いる
昔からポインタ(2)の用法でアドレスとポインタを同一視して使われるだけで、ポインタ(1)の用法で「アドレス」とは言わんでしょ。
to_addressの件も、引数として受けとるオブジェクトに対する「アドレス」の値を返すのだからto addressと言う命名で適切だろう。ここでto pointerとしたら直感的に「ポインタ」(1)の意味で解釈されかねず、下手な命名だと思う。
963デフォルトの名無しさん
2020/01/31(金) 01:50:15.23ID:kN8V6wKW 言葉遊びというか言葉の意味の違いでかみあってないだけじゃろ
こうした文脈でのアドレスという言葉を
アドレス=機械語コードで使うのと同じ表現で指定されてるメモリアドレス
の意味に無自覚に限定してるのか
アドレス=なんらかの形で指定されてるメモリアドレス
のゆるい意味で使っているかの話じゃ
ポインタはアドレスではない、は前者の意味のアドレスに対する話で
今回の話も含めたC/C++の規格レベルでのアドレスは一貫して後者の意味じゃて
こうした文脈でのアドレスという言葉を
アドレス=機械語コードで使うのと同じ表現で指定されてるメモリアドレス
の意味に無自覚に限定してるのか
アドレス=なんらかの形で指定されてるメモリアドレス
のゆるい意味で使っているかの話じゃ
ポインタはアドレスではない、は前者の意味のアドレスに対する話で
今回の話も含めたC/C++の規格レベルでのアドレスは一貫して後者の意味じゃて
964デフォルトの名無しさん
2020/01/31(金) 02:10:23.02ID:X6LytJOH >>913
管理者がアレだから♀
管理者がアレだから♀
965デフォルトの名無しさん
2020/01/31(金) 07:12:22.07ID:CZDp2h8t アドレスはオブジェクトの番地
ポインタはアドレスを格納する変数
ポインタはアドレスを格納する変数
966デフォルトの名無しさん
2020/01/31(金) 08:39:51.12ID:v4E0eL1J しかしアドレスを返すと言いながら
ポインタで返し、型情報が付いてきているわけだが
ポインタで返し、型情報が付いてきているわけだが
967デフォルトの名無しさん
2020/01/31(金) 08:42:38.23ID:v4E0eL1J 緩い意味でのどこかを指し示す意味でのアドレスと言っているなら
スマポもアドレスになるから、to_addressの意味がさらにもう何が何だか
スマポもアドレスになるから、to_addressの意味がさらにもう何が何だか
968デフォルトの名無しさん
2020/01/31(金) 08:50:06.41ID:1ZJZZZs9 ポインタというよりvoid*だね
void以外のポインタは実体の型により訳が変わる点が
単なるアドレスと違うところで
void以外のポインタは実体の型により訳が変わる点が
単なるアドレスと違うところで
969デフォルトの名無しさん
2020/01/31(金) 10:02:33.89ID:v4E0eL1J いやでも、to_address() の戻り値の型は
void* ではなくて、ちゃんとした型情報を持った普通のポインタ型だよ
void* にはならないよ
void* ではなくて、ちゃんとした型情報を持った普通のポインタ型だよ
void* にはならないよ
970デフォルトの名無しさん
2020/01/31(金) 10:06:23.45ID:yrj+fbAX またつまんない話で盛り上がってんのな
971デフォルトの名無しさん
2020/01/31(金) 10:42:46.16ID:70BTs5bI >>966
返されるのはあくまでアドレス(番地)の値だろう。型情報としてT*型を持つが、それはC/C++ではすべての式や値が型を持つから当たり前の話であって、型を持つからアドレスとは呼ばないというのはおかしな話だと思う。
返されるのはあくまでアドレス(番地)の値だろう。型情報としてT*型を持つが、それはC/C++ではすべての式や値が型を持つから当たり前の話であって、型を持つからアドレスとは呼ばないというのはおかしな話だと思う。
972デフォルトの名無しさん
2020/01/31(金) 11:36:09.10ID:v4E0eL1J >型を持つからアドレスとは呼ばないというのはおかしな話だと思う。
つまりは ポインタ=アドレス って事ね
つまりは ポインタ=アドレス って事ね
973デフォルトの名無しさん
2020/01/31(金) 11:45:36.21ID:GGrzMUVS ポインタってのは変数のことでその中身はアドレスって第3版の時点ではっきり書かれてるぞ
型を持ってるのもあくまで変数の方だ
型を持ってるのもあくまで変数の方だ
974デフォルトの名無しさん
2020/01/31(金) 12:34:07.30ID:AatGgooz ヌルポ
975デフォルトの名無しさん
2020/01/31(金) 12:35:25.45ID:v4E0eL1J それは当たり前
そういう話ではなく
う〜ん、どういえばいいか
例えば、年齢を得る関数 int get_age() ってのがあったとして
俺は別にこれに疑問を持たんし、何とも思わない
to_address
それは int に対して age の方が高度で抽象的な概念になってるから
ところが pointer to_address() の場合はこれが逆になってて
pointer の方が address より高度で抽象的な概念になってる
だからこう、本質的に気持ち悪いというか
先の例で言えば
まぁ適切な例かは分からないが
age_t get_int()
ってなってたらキモイだろう
そういう話ではなく
う〜ん、どういえばいいか
例えば、年齢を得る関数 int get_age() ってのがあったとして
俺は別にこれに疑問を持たんし、何とも思わない
to_address
それは int に対して age の方が高度で抽象的な概念になってるから
ところが pointer to_address() の場合はこれが逆になってて
pointer の方が address より高度で抽象的な概念になってる
だからこう、本質的に気持ち悪いというか
先の例で言えば
まぁ適切な例かは分からないが
age_t get_int()
ってなってたらキモイだろう
976デフォルトの名無しさん
2020/01/31(金) 12:37:15.21ID:v4E0eL1J なんか途中で送信してしまった
それは当たり前
そういう話ではなく
う〜ん、どういえばいいか
例えば、年齢を得る関数 int get_age() ってのがあったとして
俺は別にこれに疑問を持たんし、何とも思わない
to_address() と何が違うか
それは int に対して age の方が高度で抽象的な概念になってるから
ところが pointer to_address() の場合はこれが逆になってて
pointer の方が address より高度で抽象的な概念になってる
だからこう、本質的に気持ち悪いというか
先の例で言えば、まぁ適切な例かは分からないが
age_t get_int()
ってなってたらキモイだろう
それは当たり前
そういう話ではなく
う〜ん、どういえばいいか
例えば、年齢を得る関数 int get_age() ってのがあったとして
俺は別にこれに疑問を持たんし、何とも思わない
to_address() と何が違うか
それは int に対して age の方が高度で抽象的な概念になってるから
ところが pointer to_address() の場合はこれが逆になってて
pointer の方が address より高度で抽象的な概念になってる
だからこう、本質的に気持ち悪いというか
先の例で言えば、まぁ適切な例かは分からないが
age_t get_int()
ってなってたらキモイだろう
977デフォルトの名無しさん
2020/01/31(金) 12:45:36.65ID:GGrzMUVS なんか勝手に幻想抱いてるけどポインタに入れるものは常にアドレスだから
何もおかしくない
何もおかしくない
978デフォルトの名無しさん
2020/01/31(金) 12:46:08.71ID:YmbKsQW3 VLTのto_addressは欲しい
979デフォルトの名無しさん
2020/01/31(金) 12:46:37.74ID:v4E0eL1J でさ、
age_t get_int() ってのを見たとき
「age_t の中身は int だし
int を get してそれが age_t に入っているのだから
解釈としては問題ない」
って感じのことを言ってるレスが結構あったけど
俺はなんか違うような気がするって言ってるわけ
age_t get_int() ってのを見たとき
「age_t の中身は int だし
int を get してそれが age_t に入っているのだから
解釈としては問題ない」
って感じのことを言ってるレスが結構あったけど
俺はなんか違うような気がするって言ってるわけ
980デフォルトの名無しさん
2020/01/31(金) 12:48:59.87ID:v4E0eL1J981デフォルトの名無しさん
2020/01/31(金) 13:07:50.38ID:AatGgooz アドレスとポインタってのは
ageとage_tの関係
ageとage_tの関係
982デフォルトの名無しさん
2020/01/31(金) 13:13:53.02ID:GGrzMUVS じゃあint *p = &a;の&もアドレスを取る演算子じゃなくて
ポインタを取る演算子に名前変えてもらうようにお願いしたら?
ポインタを取る演算子に名前変えてもらうようにお願いしたら?
983デフォルトの名無しさん
2020/01/31(金) 17:37:24.29ID:aVH6lH01 アドレスはデコーダに入力するビット列 (ハードウエアの概念)
ポインタはアドレスを扱うことを目的とするデータ型 (プログラム言語の概念)
IEEE754とdoubleのような関係だ
ポインタはアドレスを扱うことを目的とするデータ型 (プログラム言語の概念)
IEEE754とdoubleのような関係だ
984デフォルトの名無しさん
2020/01/31(金) 17:44:13.04ID:MQmpFGUT 通常はポインタが数値であることなんてのは意識せんわな。
リングバッファなんかを取り扱うなら嫌でも意識することになるが。
リングバッファなんかを取り扱うなら嫌でも意識することになるが。
985デフォルトの名無しさん
2020/01/31(金) 18:16:27.29ID:HzrC4w9c ポインタが数値がどうか意識しないと
リングバッファも作れないようなのが
C++を使うのか
リングバッファも作れないようなのが
C++を使うのか
986デフォルトの名無しさん
2020/01/31(金) 18:34:36.50ID:Dscz4LHl 分岐無くす高速化でもしているんじゃね
987デフォルトの名無しさん
2020/01/31(金) 18:37:20.08ID:CZDp2h8t >>976
その例は逆
アドレスとポインタは本質(イデア)とその表現の関係にある
(イデア <-> 表現)
年齢 <-> 整数
色 <-> RGB値
アドレス <-> ポインタ
この関係に照らせば、年齢を取得する場合は
int get_age();
だし、色を取得する場合は
RGB get_color();
だし、アドレスを取得する場合は
T* get_address();
になる
その例は逆
アドレスとポインタは本質(イデア)とその表現の関係にある
(イデア <-> 表現)
年齢 <-> 整数
色 <-> RGB値
アドレス <-> ポインタ
この関係に照らせば、年齢を取得する場合は
int get_age();
だし、色を取得する場合は
RGB get_color();
だし、アドレスを取得する場合は
T* get_address();
になる
988デフォルトの名無しさん
2020/01/31(金) 18:53:37.33ID:Nt0XFA2s その哲学続けるの
989デフォルトの名無しさん
2020/01/31(金) 19:10:20.77ID:xOuBGXY8990デフォルトの名無しさん
2020/01/31(金) 19:13:50.70ID:MjAWY572 ハードウェアとのDMAならポインタにいれるアドレス自体は気にしないだろ
特定の物理メモリを適当な仮想アドレスにマップして使うのだし
特定の物理メモリを適当な仮想アドレスにマップして使うのだし
991デフォルトの名無しさん
2020/01/31(金) 19:35:40.34ID:xOuBGXY8 DMAが扱うのは物理アドレス
992デフォルトの名無しさん
2020/01/31(金) 19:42:13.08ID:xOuBGXY8 じゃないのもあったりするのか?
チープなマイコンのDMAしか直接扱ったことがなくて
チープなマイコンのDMAしか直接扱ったことがなくて
993デフォルトの名無しさん
2020/01/31(金) 19:51:22.09ID:aVH6lH01 仮想アドレスってことはページフォールトがあるってことだろ
OSによってページインされるまで待つことになるが
そこまでペリフェラルで面倒見る必要あるか考えてみそ
OSによってページインされるまで待つことになるが
そこまでペリフェラルで面倒見る必要あるか考えてみそ
レス数が950を超えています。1000を超えると書き込みができなくなります。
ニュース
- 【速報】中国、水産物輸入停止と通達 「処理水」理由、日本政府へ ★5 [おっさん友の会★]
- 【速報】中国、水産物輸入停止と通達 「処理水」理由、日本政府へ ★6 [おっさん友の会★]
- 高市首相答弁を“引き出した”立民・岡田克也氏が改めて説明「なぜ慎重な答弁をされなかったのか。非常に残念に思っている」 [ぐれ★]
- 中国側が首相答弁の撤回要求、日本側拒否★7 [夜のけいちゃん★]
- NHK会長 新語・流行語大賞ノミネート「オールドメディア」に反論「言われる筋合いはない」「新しいメディアだと思っている」 [muffin★]
- 【速報】 米大使「はっきりさせておこう、米国は尖閣諸島含め日本の防衛に全面コミット、中国がどうしようが変わらない」 [お断り★]
- 【速報】高市首相「つい言い過ぎた」 存立危機事態の答弁について [237216734]
- 中国「次に禁止してほしいものを教えて」 [358382861]
- 【総裁選】記者「進次郎メモ見過ぎ」高市早苗「w」小泉進次郎「責任ある者は適切な慎重さを備えるべき」 [175344491]
- 【速報】中国、水産物輸入停止★2 [989870298]
- 【速報】中国、水産物輸入停止★3 [989870298]
- 山上妹「統一信者から安倍自民への投票を求められた」法廷で証言 [947332727]
