X



C++相談室 part147

レス数が950を超えています。1000を超えると書き込みができなくなります。
0001デフォルトの名無しさん
垢版 |
2019/12/18(水) 17:56:53.03ID:uFDqtnkl
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ほどしか増えない

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

↑え?だってお前、普通ダイナミックリンクするだろ?
"ダイナミックリンク"す・れ・ば、ファイルサイズ**増えないです**
0851はちみつ餃子 ◆8X2XSCHEME
垢版 |
2020/01/28(火) 17:28:55.68ID:jIEBko3c
でもまあヘッダファイルを C と C++ の両方で (マクロで少し切り分けて) 使いたいってことはあるから、
そういうときは typedef にしといた方が共用できる部分が多くて楽ってことはある。
0852デフォルトの名無しさん
垢版 |
2020/01/28(火) 17:34:48.43ID:ijxMtirO
>>849
そこだけだと構文糖衣以上のメリットはないよね
0854はちみつ餃子 ◆8X2XSCHEME
垢版 |
2020/01/28(火) 17:55:35.77ID:jIEBko3c
>>849
ポインタまわりはテンプレートの記法で書けば統一的でわかりやすい気がするが、
たぶん他の名前とかぶらないようにするためか長めの名前なのがちょっとなぁ……。

using funcp = std::add_pointer_t<int(void)>;
0857デフォルトの名無しさん
垢版 |
2020/01/28(火) 19:30:49.93ID:jjtOLQOh
そういえば最近Boost.Preprocessorを使った楽しい黒魔術の話題を聞かない気がする
あれってまだ開発継続してるの?
0862デフォルトの名無しさん
垢版 |
2020/01/28(火) 23:16:15.60ID:kww99AmH
CPPってもうメンテされていないようで怖い
#define FOO 123 // comment
とはとうてい恐ろしくてどうしても書けず、
#define FOO 123 /* comment */
と書いてしまうま
0863デフォルトの名無しさん
垢版 |
2020/01/29(水) 11:25:21.25ID:HJZ6WUGV
N4713
5.2 Phases of translation
3
Each comment is replaced by one space character. New-line characters are retained.
0864デフォルトの名無しさん
垢版 |
2020/01/29(水) 13:26:03.72ID:zE4LbE2k
>>860
そこだけって書いてあるのに脳内で読み飛ばずのは
国語の成績悪かったやつの特徴
0865デフォルトの名無しさん
垢版 |
2020/01/29(水) 13:40:36.68ID:HJZ6WUGV
>>864
おい852本人、「構文糖衣以上のメリットはない」という自分の言葉から逃げるのに
そういう言い訳は見苦しいぞ

今さら吐いた唾を飲むなよ
0866デフォルトの名無しさん
垢版 |
2020/01/29(水) 14:13:02.30ID:pjwqAxyM
なぜ喧嘩腰なのか。
0868865
垢版 |
2020/01/29(水) 14:36:19.23ID:WeNDQDRz
俺は争いは好まないが、
平和的な話し方をしないやつには
場合にもよるが嫌悪感を露にすることもある
0869デフォルトの名無しさん
垢版 |
2020/01/29(水) 16:47:35.32ID:pjwqAxyM
戦士の血がそうさせると言いたいのか。
0870デフォルトの名無しさん
垢版 |
2020/01/29(水) 16:57:27.48ID:HJZ6WUGV
平和を愛するという点で共感が得られず
こちらが下手に出ることのベネフィットがない相手には容赦は無用ということだ
0871デフォルトの名無しさん
垢版 |
2020/01/29(水) 17:24:59.34ID:pjwqAxyM
戦士と戦士が巡り合ってしまうと、バトル・フィールドが形成されるシステムってことか。
0873デフォルトの名無しさん
垢版 |
2020/01/29(水) 17:39:26.08ID:iDUguYS7
>>867
多くのC++民が喧嘩腰なのでなく、一部の喧嘩好きの戦闘民族のレスが目立ってるだけじゃね。このスレから相手に勝つことだけが目的の無意味なレスの応酬を取り除いたら、1/10も残らないと思うぞ。
0874デフォルトの名無しさん
垢版 |
2020/01/29(水) 17:54:15.31ID:YYjUIAq1
いや最近のC++に対するちょっと否定的な意見が出ただけで
過剰反応する住民のせいでもあると思うぞ
で、そういう奴に限って間違いを素直に認めたりなどしないからな(代理戦争で議論するやつ特有のパターン
0875デフォルトの名無しさん
垢版 |
2020/01/29(水) 17:55:39.09ID:HJZ6WUGV
>>872
正直に言えよ、「gotoの何が悪いのか詰問されると困るから」相手しないと
マウント取られそうでヤバいんだろw
0877デフォルトの名無しさん
垢版 |
2020/01/29(水) 18:07:15.67ID:HJZ6WUGV
ああ、そのIDのときはSTLの話だったな
そこでマクロの話も出てきていたが
隠すべきものと隠してはならないものの区別がつかない点で
gotoの何が悪いのかわかってないやつとプロファイリングが一致するんだよ

俺の正直な気持ちを教えといてやる
マウント取りたいんじゃなく、頭からアホにしてんだよ
こんなやつをマウントできたからって偉くも何ともねえ
0878デフォルトの名無しさん
垢版 |
2020/01/29(水) 18:08:48.21ID:YYjUIAq1
いやSTLじゃなくてテンプレートを持て囃しすぎって話だったんだが
まぁいいや
0879デフォルトの名無しさん
垢版 |
2020/01/29(水) 18:20:58.67ID:pjwqAxyM
おまえが犯人か。
0880デフォルトの名無しさん
垢版 |
2020/01/29(水) 18:31:24.45ID:UhF+CSx9
なんかおかしなのがいるよね

圧倒的にこっちが勝っている状態で意味不明な反論?してきて意味不明だから返せないと逃げたとか言う奴
0882デフォルトの名無しさん
垢版 |
2020/01/29(水) 18:50:11.91ID:HJZ6WUGV
明日早いから失礼するとは言ったが
それを謎変換せにゃならん切羽詰まったやつがいるのかw
0883デフォルトの名無しさん
垢版 |
2020/01/29(水) 19:02:21.51ID:pjwqAxyM
gotoは初期化を飛び越えることが出来ないと聞きました。
0885デフォルトの名無しさん
垢版 |
2020/01/29(水) 19:11:38.78ID:pjwqAxyM
使えます。
0886デフォルトの名無しさん
垢版 |
2020/01/29(水) 19:12:44.99ID:pjwqAxyM
初期化を飛び越えることができるバーストモードgotoないでしょうか。
0889デフォルトの名無しさん
垢版 |
2020/01/29(水) 22:22:07.51ID:G0q9jZbg
バカほど多くの機能を使いたがるってのがプログラマーが解決しなければならん問題だな。
0890デフォルトの名無しさん
垢版 |
2020/01/29(水) 22:27:38.33ID:pjwqAxyM
なんだと!
あやまりたまえ!
0891デフォルトの名無しさん
垢版 |
2020/01/29(水) 22:29:42.55ID:/kkeNUel
使いどころが悪いって指摘ならまだしも、ある機能を使い所で使うなとか言うのは結局俺が分からんからってだけだよね
0892デフォルトの名無しさん
垢版 |
2020/01/29(水) 22:32:41.05ID:G0q9jZbg
使いどころが本当に正しいか頭使って考えてりゃね。
バカは流行りだから、なんかカッケーから以上に何も考えてないから
レガシー化するわけだ。
んでまた新しいものに飛びついていく。
0895デフォルトの名無しさん
垢版 |
2020/01/29(水) 22:56:36.84ID:pjwqAxyM
うむ、お前以外の全員でもだ。
0897デフォルトの名無しさん
垢版 |
2020/01/29(水) 22:59:28.19ID:pjwqAxyM
かなり眠いです。
0898デフォルトの名無しさん
垢版 |
2020/01/29(水) 23:16:21.00ID:gRkDTmNL
C++03しか知らないんだけど
C++17まで修めるにはつるピカ先生の御本を読めばいいですか?
0901デフォルトの名無しさん
垢版 |
2020/01/30(木) 00:52:54.89ID:D1C6nROc
つるぴか先生の本は聖典だ
お守りのようなものなので読まなくても買って横においときなさい
0902デフォルトの名無しさん
垢版 |
2020/01/30(木) 16:01:21.46ID:sB8XzCcn
cppreferenceは循環参照みたいになってて使い辛い
0905デフォルトの名無しさん
垢版 |
2020/01/30(木) 16:11:35.43ID:sB8XzCcn
cppreferenceは調べるためのサイトじゃなくて
忘れてたことを思い出すためのサイトって意味なら
まあまあ同意
0908デフォルトの名無しさん
垢版 |
2020/01/30(木) 17:15:03.76ID:6JJixhdc
脳内の理解を、きちんと清書してみると
自分の言ってることがおかしいのに気付くことがよくあるんだよ
0909デフォルトの名無しさん
垢版 |
2020/01/30(木) 17:26:38.98ID:Z7o7STkD
認知症の可能性が。
0910デフォルトの名無しさん
垢版 |
2020/01/30(木) 17:51:33.22ID:6JJixhdc
最近の俺はそう言われても仕方ないアホなことをよくやらかすが
まだ若く元気だった頃から、俺メモでセルフチェックはやってるよ
0911デフォルトの名無しさん
垢版 |
2020/01/30(木) 18:12:36.69ID:Z7o7STkD
みんなのメモを集めれば・・・
0912デフォルトの名無しさん
垢版 |
2020/01/30(木) 18:36:17.39ID:6JJixhdc
女子社員のメモを集めたら最強マニュアルができたなんてエピソード昔聞いたことある
0918デフォルトの名無しさん
垢版 |
2020/01/30(木) 19:32:19.73ID:x7BjuJ+g
03→11の乖離は大きいが14、17はそれほどでもない
20、23でまた大きく変わるが
0920デフォルトの名無しさん
垢版 |
2020/01/30(木) 19:51:01.92ID:6JJixhdc
しかしメジャー2連くるかねえ
段階的変更という大人の配慮を忘れたら
C++終わると思うが
0922デフォルトの名無しさん
垢版 |
2020/01/30(木) 19:54:36.77ID:Z7o7STkD
まだ終わってなかったんだ。
0923はちみつ餃子 ◆8X2XSCHEME
垢版 |
2020/01/30(木) 19:57:26.16ID:v/8wm2Cj
コンセプトとモジュールの導入は C++er の悲願だと思っていたがそうでもないの?
クソみたいなマクロを殺すのがだいぶん上手くいったから次はクソみたいな SFINAE を殺そうという動きだと理解してる。
0924デフォルトの名無しさん
垢版 |
2020/01/30(木) 20:01:14.28ID:Z7o7STkD
コンセプトは欲しいです。
0925デフォルトの名無しさん
垢版 |
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->()) の戻り値を返します。

ついにポインタのことをアドレスって言っても良くなったんだな
俺の学生時代にはポインタの事をアドレスと言って良く怒られたものだ
懐かしい思い出
0926デフォルトの名無しさん
垢版 |
2020/01/30(木) 20:36:13.05ID:rpXeID84
変数は実は二つの値から出来ている

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

この二つだ

変数の二重性がC言語の理解を無駄に難しくしてる
アドレスの値が入ってるのは機械語から言えば当然だが
変数なる計算機科学の概念がそこに中途半端にドッキングすると複雑になる
ポインタで躓くヤツが多いのは機械語と高水準言語、その中間に位置するC言語の変数がもつ二重性のせいだ
0927デフォルトの名無しさん
垢版 |
2020/01/30(木) 21:07:45.27ID:Z7o7STkD
ところでコンセプトって何ですか?
0931898
垢版 |
2020/01/30(木) 21:40:54.77ID:XvvyOq64
皆さん情報ありがとう
ひとまず先生のWeb版「C++入門」をやってみることにしました
0932デフォルトの名無しさん
垢版 |
2020/01/30(木) 21:41:00.44ID:Z7o7STkD
なんだと!
0935デフォルトの名無しさん
垢版 |
2020/01/30(木) 22:24:37.20ID:R974cSCc
operatorは自明な場合しか使わない
構造体代入のように見えて変数の逐次代入してあって、
後で追加された変数が処理されていなかったりして気づかないとかこわい
0938デフォルトの名無しさん
垢版 |
2020/01/30(木) 22:42:34.01ID:o/4wL0K/
演算子の多重定義とテンプレートの組み合わせはチョー便利
gotoと同じで手放せない便利さ…!
0940デフォルトの名無しさん
垢版 |
2020/01/31(金) 00:09:44.31ID:3dxm9JOP
同じといや同じだし違うといやぁちがう
普通の脳味噌のやつには適当に「こまけぇことはいいから同じようなもんだ」と
いっとけば通じるが、このスレにウヨウヨいるような偏執狂タイプの連中に
うかつに「同じ」なんていうとポインタをアドレスと同じように整数を足すと
そのぶんアドレス値が進むと思いこむやつがでてくるからうかつに言えないだけ
0941デフォルトの名無しさん
垢版 |
2020/01/31(金) 00:10:58.09ID:v4E0eL1J
>std::to_address()
   ^^^^^^^
>それが表すのと同じ「アドレス」を「生ポインタ」で返す関数

となってるので公式で
ポインタ=アドレス
0942デフォルトの名無しさん
垢版 |
2020/01/31(金) 00:14:07.32ID:70BTs5bI
>>941
アドレスの値を生ポインタの型として返す、ということだから、
この文脈では明確に別の意味だろ
0943デフォルトの名無しさん
垢版 |
2020/01/31(金) 00:15:57.33ID:v4E0eL1J
いや、to_address() という名前の関数が生ポインタを返すから
ポインタ=アドレスで問題ない
そうじゃないんなら、to_pointer() っていう関数名にするだろ、普通
そこが to_address() となってる
0944デフォルトの名無しさん
垢版 |
2020/01/31(金) 00:21:59.86ID:88e+X9K2
オプションだし。
アドレスを返せないファンシーポインタもあるということでは。
0945デフォルトの名無しさん
垢版 |
2020/01/31(金) 00:23:11.07ID:v4E0eL1J
俺は古いタイプの人間だから俺の感覚で言うと
to_address() って言えば、生のアドレス値が整数型で帰ってくるという低レベルなイメージ
それが生ポインタが帰ってくるというなら to_pointer() としたいところ
ところが生ポインタが帰ってくるのに to_address() となってるわけだから
ああなるほど、時代は変わったなぁ、と
その辺 C++ の人たちはうるさいと思っていたんだがねぇ
もう公式で ポインタ = アドレス なのね
0947デフォルトの名無しさん
垢版 |
2020/01/31(金) 00:25:21.16ID:88e+X9K2
addressofで返ってくるのもポインタだし。
0948デフォルトの名無しさん
垢版 |
2020/01/31(金) 00:27:00.86ID:88e+X9K2
ファンシーポインタからポインタをとるときに使うもののような気がする。
それが不可能なこともあるからオプションなのでは。
0949デフォルトの名無しさん
垢版 |
2020/01/31(金) 00:35:50.96ID:88e+X9K2
ポインタ→ポインタあるいはファンシーポインタ・・・pointer_to。
ポインタあるいはファンシーポインタ→ポインタ・・・to_address。
ってことで、ポインタの意味は変わっていないんじゃないのかな。
0950デフォルトの名無しさん
垢版 |
2020/01/31(金) 00:42:12.84ID:v4E0eL1J
簡単に考えれば、生ポインタとスマートポインタetcを区別するために
生ポインタの事をアドレスと言ってるわけだよ
スマートポインタetc -> ポインタ
生ポインタ -> アドレス
っていう格上か格下げか知らんが、一つずらした呼び名になってるんだ

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

ちょうど Java のオブジェクトを指す変数は C++ 的には参照だが
Java の人たちはオブジェクトと言うし、そう考えてる、ってのに似てる
0951デフォルトの名無しさん
垢版 |
2020/01/31(金) 00:44:40.52ID:MjAWY572
javaの変数はポインタだろ
代入したら指す先が変わるし
null持てるし
まあ演算できない劣化版だが
レス数が950を超えています。1000を超えると書き込みができなくなります。

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