[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 04/25 06:12 / Filesize : 214 KB / Number-of Response : 1028
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C++相談室 part147



1 名前:デフォルトの名無しさん mailto:sage [2019/12/18(水) 17:56:53.03 ID:uFDqtnkl.net]
C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。

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

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

[C++ FAQ]
https://isocpp.org/wiki/faq/
www.bohyoh.com/CandCPP/FAQ/ (日本語)

STLつかうと一気に実行ファイルサイズが10倍に?!

環境によるだろ。
俺はBorland-C++5.6.2に -D_RTLDLL オプションを指定して、極力
ランタイムを使用するようにして使っているが、例えばstd::vectorを
使っても使わない時と比べ10Kほどしか増えない

すげえ。ダイナミックリンクしといてファイルサイズが増えないとかいってるよ。この人。

↑え?だってお前、普通ダイナミックリンクするだろ?
"ダイナミックリンク"す・れ・ば、ファイルサイズ**増えないです**

918 名前:デフォルトの名無しさん mailto:sage [2020/01/29(水) 22:33:49 ID:vJ6+7lg9.net]
仕事ならそのコードがメンテできる人が他にどれだけいるかで考える

919 名前:デフォルトの名無しさん mailto:sage [2020/01/29(水) 22:49:46 ID:HJZ6WUGV.net]
メンテできるやつが「オレ」以外の全員でもか? アホwバカwww

920 名前:デフォルトの名無しさん [2020/01/29(水) 22:56:36 ID:pjwqAxyM.net]
うむ、お前以外の全員でもだ。

921 名前:デフォルトの名無しさん mailto:sage [2020/01/29(水) 22:57:52 ID:vJ6+7lg9.net]
もうそろそろ寝る時間じゃないの?

922 名前:デフォルトの名無しさん [2020/01/29(水) 22:59:28 ID:pjwqAxyM.net]
かなり眠いです。

923 名前:デフォルトの名無しさん mailto:sage [2020/01/29(水) 23:16:21 ID:gRkDTmNL.net]
C++03しか知らないんだけど
C++17まで修めるにはつるピカ先生の御本を読めばいいですか?

924 名前:デフォルトの名無しさん mailto:sage [2020/01/30(Thu) 00:33:56 ID:x7BjuJ+g.net]
cppreferenceで十分

925 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2020/01/30(Thu) 00:49:18 ID:v/8wm2Cj.net]
どれかひとつじゃなきゃいかんてことはないんだ

926 名前:デフォルトの名無しさん mailto:sage [2020/01/30(Thu) 00:52:54 ID:D1C6nROc.net]
つるぴか先生の本は聖典だ
お守りのようなものなので読まなくても買って横においときなさい



927 名前:デフォルトの名無しさん [2020/01/30(Thu) 16:01:21 ID:sB8XzCcn.net]
cppreferenceは循環参照みたいになってて使い辛い

928 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2020/01/30(Thu) 16:02:36 ID:v/8wm2Cj.net]
実際にお互いに連携するからそう綺麗に木構造にはならんのやで。

929 名前:デフォルトの名無しさん mailto:sage [2020/01/30(Thu) 16:09:47 ID:6JJixhdc.net]
1つの情報源しか見てないとサイトから脳へバグが伝染るぞ

930 名前:デフォルトの名無しさん [2020/01/30(Thu) 16:11:35 ID:sB8XzCcn.net]
cppreferenceは調べるためのサイトじゃなくて
忘れてたことを思い出すためのサイトって意味なら
まあまあ同意

931 名前:デフォルトの名無しさん mailto:sage [2020/01/30(Thu) 17:00:38 ID:6JJixhdc.net]
ネットじゃなく、ローカルに俺メモを作るのは基本だね

932 名前:デフォルトの名無しさん mailto:sage [2020/01/30(木) 17:05:52.06 ID:CwICoFVZ.net]
作らなくてもcppreferenceをcloneすればいいじゃないか

933 名前:デフォルトの名無しさん mailto:sage [2020/01/30(Thu) 17:15:03 ID:6JJixhdc.net]
脳内の理解を、きちんと清書してみると
自分の言ってることがおかしいのに気付くことがよくあるんだよ

934 名前:デフォルトの名無しさん [2020/01/30(Thu) 17:26:38 ID:Z7o7STkD.net]
認知症の可能性が。

935 名前:デフォルトの名無しさん mailto:sage [2020/01/30(Thu) 17:51:33 ID:6JJixhdc.net]
最近の俺はそう言われても仕方ないアホなことをよくやらかすが
まだ若く元気だった頃から、俺メモでセルフチェックはやってるよ

936 名前:デフォルトの名無しさん [2020/01/30(木) 18:12:36.69 ID:Z7o7STkD.net]
みんなのメモを集めれば・・・



937 名前:デフォルトの名無しさん mailto:sage [2020/01/30(Thu) 18:36:17 ID:6JJixhdc.net]
女子社員のメモを集めたら最強マニュアルができたなんてエピソード昔聞いたことある

938 名前:はちみつ餃子 mailto:sage [2020/01/30(木) 18:38:54.14 ID:v/8wm2Cj.net]
cpprefjp にコミットしてくれ。

939 名前:デフォルトの名無しさん mailto:sage [2020/01/30(木) 19:00:51.60 ID:AVLJabA/.net]
ビャーネ・ストラウストラップ の第四版は、C++11までですよね?

940 名前:デフォルトの名無しさん mailto:sage [2020/01/30(木) 19:06:12.13 ID:6JJixhdc.net]
そら当たり前でんがな
承知の上で読む分には何も問題ないけどな

941 名前:デフォルトの名無しさん mailto:sage [2020/01/30(木) 19:27:51.04 ID:AVLJabA/.net]
質問者は、C++17まで収めたいと思っているようですが。

942 名前:はちみつ餃子 mailto:sage [2020/01/30(木) 19:31:35.00 ID:v/8wm2Cj.net]
C++11 までわかってればあとは cpprefjp で差分を見れば充分でしょ。

943 名前:デフォルトの名無しさん mailto:sage [2020/01/30(木) 19:32:19.73 ID:x7BjuJ+g.net]
03→11の乖離は大きいが14、17はそれほどでもない
20、23でまた大きく変わるが

944 名前:デフォルトの名無しさん mailto:sage [2020/01/30(木) 19:36:37.08 ID:6JJixhdc.net]
>>918
御意

945 名前:デフォルトの名無しさん mailto:sage [2020/01/30(Thu) 19:51:01 ID:6JJixhdc.net]
しかしメジャー2連くるかねえ
段階的変更という大人の配慮を忘れたら
C++終わると思うが

946 名前:デフォルトの名無しさん mailto:sage [2020/01/30(Thu) 19:54:30 ID:R974cSCc.net]
もう変える必要なんかないだろうに



947 名前:デフォルトの名無しさん [2020/01/30(Thu) 19:54:36 ID:Z7o7STkD.net]
まだ終わってなかったんだ。

948 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2020/01/30(Thu) 19:57:26 ID:v/8wm2Cj.net]
コンセプトとモジュールの導入は C++er の悲願だと思っていたがそうでもないの?
クソみたいなマクロを殺すのがだいぶん上手くいったから次はクソみたいな SFINAE を殺そうという動きだと理解してる。

949 名前:デフォルトの名無しさん [2020/01/30(Thu) 20:01:14 ID:Z7o7STkD.net]
コンセプトは欲しいです。

950 名前:デフォルトの名無しさん mailto:sage [2020/01/30(木) 20:25:47.17 ID:/5vTOygk.net]
> ポインタライクなオブジェクトからアドレスを取得する std::to_address() 関数 (P0653R2)

> ポインタライクなオブジェクトを引数にとり、それが表すのと同じアドレスを生ポインタで返す関数
> std::to_address(p) が追加されます。オブジェクトがポインタ型の場合はその値を返し、それ以外の場合、
> std::pointer_traits<Ptr>::to_address(p) の特殊化が定義されていて使えればその戻り値を、
> そうでない場合は std::to_address(p.operator->()) の戻り値を返します。

ついにポインタのことをアドレスって言っても良くなったんだな
俺の学生時代にはポインタの事をアドレスと言って良く怒られたものだ
懐かしい思い出

951 名前:デフォルトの名無しさん mailto:sage [2020/01/30(木) 20:36:13.05 ID:rpXeID84.net]
変数は実は二つの値から出来ている

一つは変数の中に入っている値
もう一つは変数のアドレスの値

この二つだ

変数の二重性がC言語の理解を無駄に難しくしてる
アドレスの値が入ってるのは機械語から言えば当然だが
変数なる計算機科学の概念がそこに中途半端にドッキングすると複雑になる
ポインタで躓くヤツが多いのは機械語と高水準言語、その中間に位置するC言語の変数がもつ二重性のせいだ

952 名前:デフォルトの名無しさん [2020/01/30(Thu) 21:07:45 ID:Z7o7STkD.net]
ところでコンセプトって何ですか?

953 名前:デフォルトの名無しさん mailto:sage [2020/01/30(Thu) 21:12:58 ID:jdq+FHbl.net]
ID:Z7o7STkD
このスレはこういう精神病みたいなやつ多くない?

954 名前:デフォルトの名無しさん mailto:sage [2020/01/30(Thu) 21:22:32 ID:cFc5UMZy.net]
>>923
イキった初心者に影響受けすぎ

955 名前:デフォルトの名無しさん mailto:sage [2020/01/30(Thu) 21:34:14 ID:r1oioh07.net]
ハゲの悲願だろ

956 名前:898 mailto:sage [2020/01/30(Thu) 21:40:54 ID:XvvyOq64.net]
皆さん情報ありがとう
ひとまず先生のWeb版「C++入門」をやってみることにしました



957 名前:デフォルトの名無しさん [2020/01/30(Thu) 21:41:00 ID:Z7o7STkD.net]
なんだと!

958 名前:デフォルトの名無しさん mailto:sage [2020/01/30(Thu) 22:11:01 ID:6JJixhdc.net]
operatorの暗黒面を知れという実習問題
ここでみんなでやってみないか?

959 名前:デフォルトの名無しさん mailto:sage [2020/01/30(Thu) 22:19:13 ID:FR6/17T7.net]
単純なキーワード検索できないことぐらいでしょ。暗黒面。

960 名前:デフォルトの名無しさん mailto:sage [2020/01/30(Thu) 22:24:37 ID:R974cSCc.net]
operatorは自明な場合しか使わない
構造体代入のように見えて変数の逐次代入してあって、
後で追加された変数が処理されていなかったりして気づかないとかこわい

961 名前:デフォルトの名無しさん mailto:sage [2020/01/30(Thu) 22:26:34 ID:/1tMjbDQ.net]
暗黙変換と絡んだ地獄を知らんのか

962 名前:デフォルトの名無しさん mailto:sage [2020/01/30(Thu) 22:36:05 ID:Q1Ec3Ov8.net]
>>933
gotoおじさんに答えさせようぜ

963 名前:デフォルトの名無しさん mailto:sage [2020/01/30(Thu) 22:42:34 ID:o/4wL0K/.net]
演算子の多重定義とテンプレートの組み合わせはチョー便利
gotoと同じで手放せない便利さ…!

964 名前:デフォルトの名無しさん mailto:sage [2020/01/30(Thu) 23:30:29 ID:HitChVTH.net]
>>925
ポインタとアドレスは別物でしょ

965 名前:デフォルトの名無しさん mailto:sage [2020/01/31(金) 00:09:44 ID:3dxm9JOP.net]
同じといや同じだし違うといやぁちがう
普通の脳味噌のやつには適当に「こまけぇことはいいから同じようなもんだ」と
いっとけば通じるが、このスレにウヨウヨいるような偏執狂タイプの連中に
うかつに「同じ」なんていうとポインタをアドレスと同じように整数を足すと
そのぶんアドレス値が進むと思いこむやつがでてくるからうかつに言えないだけ

966 名前:デフォルトの名無しさん mailto:sage [2020/01/31(金) 00:10:58 ID:v4E0eL1J.net]
>std::to_address()
   ^^^^^^^
>それが表すのと同じ「アドレス」を「生ポインタ」で返す関数

となってるので公式で
ポインタ=アドレス



967 名前:デフォルトの名無しさん mailto:sage [2020/01/31(金) 00:14:07 ID:70BTs5bI.net]
>>941
アドレスの値を生ポインタの型として返す、ということだから、
この文脈では明確に別の意味だろ

968 名前:デフォルトの名無しさん mailto:sage [2020/01/31(金) 00:15:57 ID:v4E0eL1J.net]
いや、to_address() という名前の関数が生ポインタを返すから
ポインタ=アドレスで問題ない
そうじゃないんなら、to_pointer() っていう関数名にするだろ、普通
そこが to_address() となってる

969 名前:デフォルトの名無しさん [2020/01/31(金) 00:21:59.86 ID:88e+X9K2.net]
オプションだし。
アドレスを返せないファンシーポインタもあるということでは。

970 名前:デフォルトの名無しさん mailto:sage [2020/01/31(金) 00:23:11.07 ID:v4E0eL1J.net]
俺は古いタイプの人間だから俺の感覚で言うと
to_address() って言えば、生のアドレス値が整数型で帰ってくるという低レベルなイメージ
それが生ポインタが帰ってくるというなら to_pointer() としたいところ
ところが生ポインタが帰ってくるのに to_address() となってるわけだから
ああなるほど、時代は変わったなぁ、と
その辺 C++ の人たちはうるさいと思っていたんだがねぇ
もう公式で ポインタ = アドレス なのね

971 名前:デフォルトの名無しさん mailto:sage [2020/01/31(金) 00:24:13.53 ID:MjAWY572.net]
pointer指すもの
address指す先
じゃね

972 名前:デフォルトの名無しさん [2020/01/31(金) 00:25:21.16 ID:88e+X9K2.net]
addressofで返ってくるのもポインタだし。

973 名前:デフォルトの名無しさん [2020/01/31(金) 00:27:00.86 ID:88e+X9K2.net]
ファンシーポインタからポインタをとるときに使うもののような気がする。
それが不可能なこともあるからオプションなのでは。

974 名前:デフォルトの名無しさん [2020/01/31(金) 00:35:50.96 ID:88e+X9K2.net]
ポインタ→ポインタあるいはファンシーポインタ・・・pointer_to。
ポインタあるいはファンシーポインタ→ポインタ・・・to_address。
ってことで、ポインタの意味は変わっていないんじゃないのかな。

975 名前:デフォルトの名無しさん mailto:sage [2020/01/31(金) 00:42:12.84 ID:v4E0eL1J.net]
簡単に考えれば、生ポインタとスマートポインタetcを区別するために
生ポインタの事をアドレスと言ってるわけだよ
スマートポインタetc -> ポインタ
生ポインタ -> アドレス
っていう格上か格下げか知らんが、一つずらした呼び名になってるんだ

俺みたいな古い人間には受け入れがたいものもあるが
「生ポインタなんか使わねーよスマポこそがポインタであり生ポなんかアドレスとでも呼べばよい」
という今の時代に合わせた考え方なんだろう
スマポetc(ポインタ)から生ポ(アドレス)に変換するから to_address()

ちょうど Java のオブジェクトを指す変数は C++ 的には参照だが
Java の人たちはオブジェクトと言うし、そう考えてる、ってのに似てる

976 名前:デフォルトの名無しさん mailto:sage [2020/01/31(金) 00:44:40.52 ID:MjAWY572.net]
javaの変数はポインタだろ
代入したら指す先が変わるし
null持てるし
まあ演算できない劣化版だが



977 名前:デフォルトの名無しさん mailto:sage [2020/01/31(金) 00:46:15.67 ID:S0Mdice7.net]
常識なんかどんどん変るからな、とくにC/C++みたいな歴史が長い世界は
ピュアCの時代にはそもそもポインタといえばたしかにその値がアドレス(位置情報)
として機能する値と一致していたがファンシーポインタがある現代では
"ポインタ"の実体とそれが保持したい情報(アドレス情報)は一致すると思わない事が常識になる
"ポインタ"は情報としては何かの位置を差す値を保持はしているがそのオブジェクト
自体は保持しているアドレス情報とはまったく無関係のメモリ空間にある何かである
現代の感覚でいうともし std::to_pointer というネーミングにすると
"は?ポインタをポインタに変換するってどういう意味だよ????"とむしろ混乱の元になるってわけだ

978 名前:デフォルトの名無しさん mailto:sage [2020/01/31(金) 00:46:56.64 ID:v4E0eL1J.net]
なんか長々書いたが
今の時代、スマポこそがポインタであって、もはや生ポインタはアドレスなんだよ!
人間も父が爺になって子が父に繰り上がっていくものだから
時代と共に名実ともに出世していくのは普通の事なのかもしれない

979 名前:デフォルトの名無しさん [2020/01/31(金) 00:47:48.87 ID:88e+X9K2.net]
ちょっと江添呼んできて。
電車代出すから。

980 名前:デフォルトの名無しさん mailto:sage [2020/01/31(金) 00:51:32 ID:v4E0eL1J.net]
ただどうしても言いたいのは
生ポインタは address じゃなくても
別に raw_pointer とか native_pointer で良くね?
address って言ったら、ただの数値のイメージがあるわ

981 名前:デフォルトの名無しさん [2020/01/31(金) 00:54:08 ID:88e+X9K2.net]
アドレスに無料で型情報をつけるアイデアをひらめいたときは、俺って天才かも?って思ったんだろな。

982 名前:デフォルトの名無しさん mailto:sage [2020/01/31(金) 00:54:15 ID:S0Mdice7.net]
>>951
我々の感覚からすると実際その通りなんだが、Java脳の人々にとってはそうではない
彼等はスタックという感覚も非常にうすい
なぜならオブジェクトはスタックにはとれず、常に new (ヒープ)しかないから
我々はクラスのインスタンスがスタックにあるのかヒープにあるのかは無意識に常に
判断する事に慣れているが、これをjava脳の人に説明するのはしばしば困難なときがある

983 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2020/01/31(金) 00:54:31 ID:T8rV4kLc.net]
>>929
宣言をヘッダファイルに分割する方式は C++ の意味不明さの根源のひとつじゃない?
それで宣言と定義を分ける運用がキッチリできるのならそれはそれでよかったけど、
テンプレートとインラインの活用でヘッダファイルに書く分量がだいぶん多くなってヘッダファイルってなんだっけって気持ちになる。
このあたりの仕組みは再編すべきでしょ。 モジュールは要るって。

コンセプトもなぁ、型に制約を付けるって普通にやりたいことじゃん?
ちょっとした制約を付けるためにまわりくどいメタプログラミングなんてやりたくないよ。
現代的な静的型付け言語ならあって然るべき機能が順当に入るってだけのこと……
と思ってたら延び延びになっちゃったから待たされてる感じが強い。

984 名前:デフォルトの名無しさん mailto:sage [2020/01/31(金) 00:55:51 ID:MjAWY572.net]
javaはヌルポ出すくせにポインタじゃないのか
ポはなんの略なんだろう

985 名前:デフォルトの名無しさん mailto:sage [2020/01/31(金) 01:06:28 ID:/0JfR++J.net]
>>941
公式は "A value of a pointer type ... represents the address of the first byte ..."
「ポインタ型の値はアドレスを表す」となってる。
https://timsong-cpp.github.io/cppwp/n4659/basic.compound#3
アドレスに加えて他の情報を持つ可能性は否定されないので、いろんな人が言ってるように
厳密にはイコールではないね。

986 名前:デフォルトの名無しさん mailto:sage [2020/01/31(金) 01:08:43 ID:U1PsHN2Y.net]
>>958
要らんなどと一言も言ってないぞ
言い回しがそれっぽいってだけ

だいたいモジュールはまだ20では標準ライブラリには使われないし
「コンセプトはよ来い」とか上級者ぶりたい初心者がよく言うけど、その中に「自分で実際にコンセプトを定義する奴」などほぼ居ないだろ

個人的にはこれまでSFINAEでどうにかしてたメタプログラミング用の要件チェックのコードを
全部コンセプトに直すのクソだるい(便利になるだろうけどエラーメッセージ以外で実感するのはまだまだ先)
だいたい来るのはわかってんだからもう一喜一憂するような話でもない



987 名前:デフォルトの名無しさん mailto:sage [2020/01/31(金) 01:08:59 ID:70BTs5bI.net]
今も昔もアドレスとポインタの意味は変わってないんでないの?
「アドレス」=メモリ上のオブジェクトの位置を表す番地(具体的には整数値)
「ポインタ」=
(1)何らかのアドレスを格納したT*型の変数(オブジェクト)。生ポインタ。
(2)「アドレス」と同じ意味で用いる

昔からポインタ(2)の用法でアドレスとポインタを同一視して使われるだけで、ポインタ(1)の用法で「アドレス」とは言わんでしょ。
to_addressの件も、引数として受けとるオブジェクトに対する「アドレス」の値を返すのだからto addressと言う命名で適切だろう。ここでto pointerとしたら直感的に「ポインタ」(1)の意味で解釈されかねず、下手な命名だと思う。

988 名前:デフォルトの名無しさん mailto:sage [2020/01/31(金) 01:50:15 ID:kN8V6wKW.net]
言葉遊びというか言葉の意味の違いでかみあってないだけじゃろ

こうした文脈でのアドレスという言葉を
アドレス=機械語コードで使うのと同じ表現で指定されてるメモリアドレス
の意味に無自覚に限定してるのか
アドレス=なんらかの形で指定されてるメモリアドレス
のゆるい意味で使っているかの話じゃ

ポインタはアドレスではない、は前者の意味のアドレスに対する話で
今回の話も含めたC/C++の規格レベルでのアドレスは一貫して後者の意味じゃて

989 名前:デフォルトの名無しさん mailto:sage [2020/01/31(金) 02:10:23.02 ID:X6LytJOH.net]
>>913
管理者がアレだから��‍♀

990 名前:デフォルトの名無しさん mailto:sage [2020/01/31(金) 07:12:22 ID:CZDp2h8t.net]
アドレスはオブジェクトの番地
ポインタはアドレスを格納する変数

991 名前:デフォルトの名無しさん mailto:sage [2020/01/31(金) 08:39:51.12 ID:v4E0eL1J.net]
しかしアドレスを返すと言いながら
ポインタで返し、型情報が付いてきているわけだが

992 名前:デフォルトの名無しさん mailto:sage [2020/01/31(金) 08:42:38.23 ID:v4E0eL1J.net]
緩い意味でのどこかを指し示す意味でのアドレスと言っているなら
スマポもアドレスになるから、to_addressの意味がさらにもう何が何だか

993 名前:デフォルトの名無しさん mailto:sage [2020/01/31(金) 08:50:06 ID:1ZJZZZs9.net]
ポインタというよりvoid*だね
void以外のポインタは実体の型により訳が変わる点が
単なるアドレスと違うところで

994 名前:デフォルトの名無しさん mailto:sage [2020/01/31(金) 10:02:33 ID:v4E0eL1J.net]
いやでも、to_address() の戻り値の型は
void* ではなくて、ちゃんとした型情報を持った普通のポインタ型だよ
void* にはならないよ

995 名前:デフォルトの名無しさん mailto:sage [2020/01/31(金) 10:06:23 ID:yrj+fbAX.net]
またつまんない話で盛り上がってんのな

996 名前:デフォルトの名無しさん mailto:sage [2020/01/31(金) 10:42:46 ID:70BTs5bI.net]
>>966
返されるのはあくまでアドレス(番地)の値だろう。型情報としてT*型を持つが、それはC/C++ではすべての式や値が型を持つから当たり前の話であって、型を持つからアドレスとは呼ばないというのはおかしな話だと思う。



997 名前:デフォルトの名無しさん [2020/01/31(金) 11:36:09.10 ID:v4E0eL1J.net]
>型を持つからアドレスとは呼ばないというのはおかしな話だと思う。

つまりは ポインタ=アドレス って事ね

998 名前:デフォルトの名無しさん mailto:sage [2020/01/31(金) 11:45:36 ID:GGrzMUVS.net]
ポインタってのは変数のことでその中身はアドレスって第3版の時点ではっきり書かれてるぞ
型を持ってるのもあくまで変数の方だ

999 名前:デフォルトの名無しさん mailto:sage [2020/01/31(金) 12:34:07 ID:AatGgooz.net]
ヌルポ

1000 名前:デフォルトの名無しさん mailto:sage [2020/01/31(金) 12:35:25 ID:v4E0eL1J.net]
それは当たり前
そういう話ではなく
う〜ん、どういえばいいか
例えば、年齢を得る関数 int get_age() ってのがあったとして
俺は別にこれに疑問を持たんし、何とも思わない
to_address
それは int に対して age の方が高度で抽象的な概念になってるから
ところが pointer to_address() の場合はこれが逆になってて
pointer の方が address より高度で抽象的な概念になってる
だからこう、本質的に気持ち悪いというか
先の例で言えば
まぁ適切な例かは分からないが
age_t get_int()
ってなってたらキモイだろう

1001 名前:デフォルトの名無しさん mailto:sage [2020/01/31(金) 12:37:15 ID:v4E0eL1J.net]
なんか途中で送信してしまった

それは当たり前
そういう話ではなく
う〜ん、どういえばいいか
例えば、年齢を得る関数 int get_age() ってのがあったとして
俺は別にこれに疑問を持たんし、何とも思わない
to_address() と何が違うか

それは int に対して age の方が高度で抽象的な概念になってるから
ところが pointer to_address() の場合はこれが逆になってて
pointer の方が address より高度で抽象的な概念になってる
だからこう、本質的に気持ち悪いというか
先の例で言えば、まぁ適切な例かは分からないが
age_t get_int()
ってなってたらキモイだろう

1002 名前:デフォルトの名無しさん mailto:sage [2020/01/31(金) 12:45:36 ID:GGrzMUVS.net]
なんか勝手に幻想抱いてるけどポインタに入れるものは常にアドレスだから
何もおかしくない

1003 名前:デフォルトの名無しさん [2020/01/31(金) 12:46:08 ID:YmbKsQW3.net]
VLTのto_addressは欲しい

1004 名前:デフォルトの名無しさん mailto:sage [2020/01/31(金) 12:46:37 ID:v4E0eL1J.net]
でさ、
age_t get_int() ってのを見たとき
「age_t の中身は int だし
 int を get してそれが age_t に入っているのだから
 解釈としては問題ない」
って感じのことを言ってるレスが結構あったけど
俺はなんか違うような気がするって言ってるわけ

1005 名前:tォルトの名無しさん mailto:sage [2020/01/31(金) 12:48:59 ID:v4E0eL1J.net]
具体的には >>977 とかね
age_t の中身は常に int だから〜的な
だとしても age_t get_int() とは書かんだろう、というのが俺の主張だから

1006 名前:デフォルトの名無しさん mailto:sage [2020/01/31(金) 13:07:50 ID:AatGgooz.net]
アドレスとポインタってのは
ageとage_tの関係



1007 名前:デフォルトの名無しさん mailto:sage [2020/01/31(金) 13:13:53 ID:GGrzMUVS.net]
じゃあint *p = &a;の&もアドレスを取る演算子じゃなくて
ポインタを取る演算子に名前変えてもらうようにお願いしたら?

1008 名前:デフォルトの名無しさん mailto:sage [2020/01/31(金) 17:37:24 ID:aVH6lH01.net]
アドレスはデコーダに入力するビット列 (ハードウエアの概念)
ポインタはアドレスを扱うことを目的とするデータ型 (プログラム言語の概念)

IEEE754とdoubleのような関係だ

1009 名前:デフォルトの名無しさん mailto:sage [2020/01/31(金) 17:44:13 ID:MQmpFGUT.net]
通常はポインタが数値であることなんてのは意識せんわな。
リングバッファなんかを取り扱うなら嫌でも意識することになるが。

1010 名前:デフォルトの名無しさん mailto:sage [2020/01/31(金) 18:16:27.29 ID:HzrC4w9c.net]
ポインタが数値がどうか意識しないと
リングバッファも作れないようなのが
C++を使うのか

1011 名前:デフォルトの名無しさん mailto:sage [2020/01/31(金) 18:34:36 ID:Dscz4LHl.net]
分岐無くす高速化でもしているんじゃね

1012 名前:デフォルトの名無しさん mailto:sage [2020/01/31(金) 18:37:20 ID:CZDp2h8t.net]
>>976
その例は逆
アドレスとポインタは本質(イデア)とその表現の関係にある
(イデア <-> 表現)
年齢 <-> 整数
色 <-> RGB値
アドレス <-> ポインタ

この関係に照らせば、年齢を取得する場合は
int get_age();
だし、色を取得する場合は
RGB get_color();
だし、アドレスを取得する場合は
T* get_address();
になる

1013 名前:デフォルトの名無しさん mailto:sage [2020/01/31(金) 18:53:37 ID:Nt0XFA2s.net]
その哲学続けるの

1014 名前:デフォルトの名無しさん mailto:sage [2020/01/31(金) 19:10:20 ID:xOuBGXY8.net]
>>986
分岐?
それも普通は不要

アドレスを意識するのはDMAなど
ハードウェアでリングバッファを使う時くらい

1015 名前:デフォルトの名無しさん mailto:sage [2020/01/31(金) 19:13:50 ID:MjAWY572.net]
ハードウェアとのDMAならポインタにいれるアドレス自体は気にしないだろ
特定の物理メモリを適当な仮想アドレスにマップして使うのだし

1016 名前:デフォルトの名無しさん mailto:sage [2020/01/31(金) 19:35:40 ID:xOuBGXY8.net]
DMAが扱うのは物理アドレス



1017 名前:デフォルトの名無しさん mailto:sage [2020/01/31(金) 19:42:13 ID:xOuBGXY8.net]
じゃないのもあったりするのか?
チープなマイコンのDMAしか直接扱ったことがなくて

1018 名前:デフォルトの名無しさん mailto:sage [2020/01/31(金) 19:51:22 ID:aVH6lH01.net]
仮想アドレスってことはページフォールトがあるってことだろ
OSによってページインされるまで待つことになるが
そこまでペリフェラルで面倒見る必要あるか考えてみそ

1019 名前:◆QZaw55cn4c mailto:sage [2020/01/31(金) 19:51:32 ID:tTpxWp9S.net]
>>933
どれくらいブラックでしょうか?
https://mevius.5ch.net/test/read.cgi/tech/1434079972/21
https://ideone.com/9KIuSD

1020 名前:デフォルトの名無しさん mailto:sage [2020/01/31(金) 19:53:30.58 ID:aVH6lH01.net]
未練

1021 名前:デフォルトの名無しさん mailto:sage [2020/01/31(金) 19:54:58.34 ID:xOuBGXY8.net]
>>993
フォルトならエラーで止めときゃいいんでない?
そこまでハードで面倒見る必要は無い

1022 名前:デフォルトの名無しさん mailto:sage [2020/01/31(金) 19:55:32.42 ID:yrj+fbAX.net]
最近はIOMMUが一般的

1023 名前:デフォルトの名無しさん mailto:sage [2020/01/31(金) 20:02:09.40 ID:yrj+fbAX.net]
>>993
おいおいそんなわけないだろ
デバイスがさわるメモリはページアウトしない
でも物理アドレスを使わない理由は何でしょう?
あスレ違いだな

1024 名前:デフォルトの名無しさん mailto:sage [2020/01/31(金) 20:34:35 ID:aVH6lH01.net]
>>996
ペリフェラルって何だと思う?

>>998
循環論法だな

1025 名前:デフォルトの名無しさん mailto:sage [2020/01/31(金) 20:54:47.19 ID:Nt0XFA2s.net]
C++相談室 part148
https://mevius.5ch.net/test/read.cgi/tech/1580471646/

1026 名前:1001 [Over 1000 Thread.net]
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 44日 2時間 57分 54秒



1027 名前:過去ログ ★ [[過去ログ]]
■ このスレッドは過去ログ倉庫に格納されています






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<214KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef