C++相談室 part131 [無断転載禁止]©2ch.net

次スレを立てる時は本文の1行目に以下を追加して下さい
!extend:on:vvvvv:1000:512

C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。

前スレ
C++相談室 part130
http://mevius.2ch.net/test/read.cgi/tech/1490917669/

このスレもよろしくね。
【初心者歓迎】C/C++室 Ver.100【環境依存OK】
http://echo.2ch.net/test/read.cgi/tech/1478440682/

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

[C++ FAQ]
https://isocpp.org/wiki/faq/
http://www.bohyoh.com/CandCPP/FAQ/ (日本語)
-
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured

C/C++室のURLはこちらが正しいです。ごめんなさい。
【初心者歓迎】C/C++室 Ver.101【環境依存OK】 [無断転載禁止]©2ch.net
http://mevius.2ch.net/test/read.cgi/tech/1500329247/

2 名前:デフォルトの名無しさん (ワッチョイ bf54-lR6P)[sage] 投稿日:2017/03/31(金) 16:52:18.52 ID:CoeIAoH10
STLつかうと一気に実行ファイルサイズが10倍に?!

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

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

C1010: プリコンパイル済みヘッダーの検索中に予期しない EOF を検出しました。
とかいうエラーが出るんだけどこれってどうすればいいの?

#include <stdafx.h>
後死ね。

言葉が悪いな。それで教えているつもりか。
まぁヒントぐらいにはなったな。
うむごくろう。

---- テンプレ ここまで ----

うむごくろう

5デフォルトの名無しさん (ワッチョイ 738e-PRKf)2017/07/29(土) 17:57:29.77ID:mj0H/MXI0
>>1
乙TL

日付がミスリーディングなクソレスを貼る>>3は無能

7デフォルトの名無しさん (スップ Sd2a-pcXC)2017/07/30(日) 02:31:41.53ID:xlcIQQjmd
>>1

CからC++の学習に進もうと思ってるんだけど、皆さんオススメの書籍とかWebとか有ったら教えてちょ

やめとけやめとけ
Cでリスト構造あたりがすらすら書けるようになったならC#にしとけ。

生産性あがらずそっぽ向かれてるのに、
ムーブコンストラクタとか、コード増えて、さらに生産性低下。
完全にオナニー規格で、自分でとどめ刺した。
まるで民進党の蓮ポ


10デフォルトの名無しさん (ワッチョイ 3bb4-749T)2017/07/30(日) 07:46:18.32ID:qWNYkf/a0
11と14のドラフトあげてしもた
Straustrap 4thと14でいいと思う
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3690.pdf

11デフォルトの名無しさん (スップ Sd8a-pcXC)2017/07/30(日) 10:19:14.54ID:tzTloLFVd
ツンデレID:qWNYkf/a0さんありがとw
だがしかし、原文のまま進めるには10倍くらい労力使いそうなんで、出来たら日本語でお願いします!

12デフォルトの名無しさん (ワッチョイ 6a9f-ns/O)2017/07/30(日) 10:30:55.09ID:HMlHttTQ0
CプログラマのためのC++入門って本が解りやすかった

13デフォルトの名無しさん (ワッチョイ 3bb4-749T)2017/07/30(日) 10:57:13.10ID:qWNYkf/a0
プログラミング言語C++と言いたいところだが、C++11で止まってるとこらがもうね。
vol3まで原書と邦訳つきあってきたけど、もう気力も失せたわ。
可能性を期待してたの90年代前半 ANSI時代までだな。
電話帳より分厚い言語解説本て。多分完全理解した頃エンジニア生命終わってるわ

14デフォルトの名無しさん (ワッチョイ 6a9f-ns/O)2017/07/30(日) 11:11:05.70ID:HMlHttTQ0
最新の情報はテメェで調べりゃいいんでねぇの?
まず基本という基礎固めが重要だろ
Cプログラマでやってきた奴に総てを全うさせるのは荷がおもすぎるだろ

15デフォルトの名無しさん (ワッチョイ 3b11-Ibwl)2017/07/30(日) 12:15:54.41ID:Csv1BA330
今から学ぼうとする人に規格のドラフトとかどんな苦行だよ
やっぱりロベールしかないな

16デフォルトの名無しさん (スップ Sd8a-pcXC)2017/07/30(日) 12:20:04.23ID:tzTloLFVd
( ̄▽ ̄;)

17デフォルトの名無しさん (ワッチョイ 6a9f-ns/O)2017/07/30(日) 12:26:14.76ID:HMlHttTQ0
http://www.saiensu.co.jp/?page=book_details&ISBN=ISBN4-7819-0649-4
みっけた。コレだわ。
コレ読んだあとにSTLの分厚いの読むと解りやすかった。

18デフォルトの名無しさん (ワッチョイ 7b7f-V1Wy)2017/07/30(日) 12:30:36.64ID:IhAKIxVt0
サイエンス社ってそんなドメインだったんだw

コピーライト表記が SAIENSU-SHA Co., Ltd. だからね

20デフォルトの名無しさん (ワッチョイ 97e3-ZO1u)2017/07/30(日) 13:30:09.73ID:QmN4gyGx0
正しい綴りにすると、別の企業サイトに行ってしまった

21デフォルトの名無しさん (ワッチョイ 2a15-ZO1u)2017/07/30(日) 13:33:44.51ID:NhWYDB7J0
>>7
「詳説C++ 第2版」がオススメ
http://amzn.asia/fb29pvT
ただ、 C++03 を前提にした範囲のことしか書いてない (出版年が 2005 年だから仕方がないけど) ので、
差分はウェブ上のリファレンスで補うと良し。
https://cpprefjp.github.io/

22デフォルトの名無しさん (スップ Sd8a-pcXC)2017/07/30(日) 14:30:07.95ID:tzTloLFVd
>>17
>>21
なるほど。
どちらも古そうな本ですが、参考にさせていただきます。有難う御座いました。

23デフォルトの名無しさん (ワッチョイ 3bb4-749T)2017/08/02(水) 05:09:58.76ID:QkMqJWKd0
>>17
一から勉強する初心者に、
使いにくいだけの過去規格の遺物勧めて何したいんだ。
C++1xとANSI時代のC++は別物だ

24デフォルトの名無しさん (ワッチョイ 7357-PRKf)2017/08/02(水) 08:31:16.93ID:j5kUV6O90
でもC/C++は互換性をかなり重視してくれているから、時系列に沿って勉強しても無駄ではない気がする。
っていうか、いきなりC++14勉強するのは辛いんじゃねって気がする。

便利機能無しで学習するのはストレス溜まる。
わざわざそんな縛りプレーすることないわ。

26デフォルトの名無しさん (スップ Sd8a-6DXG)2017/08/02(水) 09:30:57.66ID:TRQYVkPNd
常識とされていたことも変化しているからね

27デフォルトの名無しさん (ワッチョイ 6a9f-ns/O)2017/08/02(水) 10:47:19.91ID:5aiRdv7G0
便利過ぎても自活力落ちるけどな

28デフォルトの名無しさん (ワッチョイ a311-lyvM)2017/08/02(水) 11:37:56.91ID:Mxrfj49o0
Effective C++ 第3版持っている人に質問
33項に書いてある「仕事を送る関数」なんだが
private継承しているのに、なんで派生クラスで基底クラスの関数を呼び出せるの?
inline関数ってところが関係しているのだろうか

29デフォルトの名無しさん (ワッチョイ a311-lyvM)2017/08/02(水) 11:39:16.93ID:Mxrfj49o0
ごめん補足
質問の箇所は33項 p.169ね
よろしくお願いします

30デフォルトの名無しさん (ワッチョイ 6a4b-ywSo)2017/08/02(水) 12:22:32.52ID:SX9kgwib0
なんでもなにもprivate継承した基底クラスのpublicメンバは
派生クラスのprivateメンバ的扱いになるので
派生クラスの中では自由にアクセスできる

31デフォルトの名無しさん (ワッチョイ a311-lyvM)2017/08/02(水) 15:29:32.86ID:Mxrfj49o0
>>30
マジか……恥ずかしながらそんな基本的なこともわかってなかった
ありがとうございます

32デフォルトの名無しさん (ワッチョイ 8b6f-JMBK)2017/08/02(水) 19:58:27.29ID:uVXFZ8FT0
穴を掘って入ろう

private基底とメンバ変数、機能的な違いはあるのかしらん?

34デフォルトの名無しさん (ワッチョイ 66af-hLbD)2017/08/02(水) 23:30:18.47ID:wZt34zOG0
俺もprivateとpublicって積的関係かと思ってた
private継承とか使わんからな

35はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 2a15-ZO1u)2017/08/02(水) 23:30:19.78ID:84D7BovY0
基底クラスへは問答無用でキャストできる。

36はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 2a15-ZO1u)2017/08/02(水) 23:32:57.07ID:84D7BovY0
>>34
private 継承している場合は基底にキャストできない。
スライシングを起こしたくない場合には private 継承した上で
一部のメンバを using で公開するというようなテクニックもある。

おお、スライシング問題抱える訳ですな。使わないのが無難か……

あ、キャストできないが正解か。
private基底は実装を楽する手段かね。

39デフォルトの名無しさん (ワッチョイ 66af-hLbD)2017/08/02(水) 23:42:51.57ID:wZt34zOG0
つまり例えばstd::vectorクラスを継承したクラスを作って
間違ってアップキャスト扠せたくない場合なんかに使うイメージか

40デフォルトの名無しさん (ワッチョイ 9be4-gAma)2017/08/03(木) 01:39:28.66ID:3NxHKcnN0
vector自身をprivateにしたい場合はprivate継承
vectorのメンバを露出させたい場合はprotected継承

41デフォルトの名無しさん (ブーイモ MMc1-mf2b)2017/08/03(木) 12:34:54.88ID:NztkOdZ3M
セマンティクス的には、
public継承はis-a関係
private継承はhas-a関係

42デフォルトの名無しさん (スプッッ Sdaf-pRZg)2017/08/03(木) 12:53:23.95ID:tXFHDIDud
外から見たら、ね

43デフォルトの名無しさん (ワッチョイ 13c5-FvWN)2017/08/03(木) 22:13:12.27ID:YAnw1OKB0
リンゴとパイナップルとペンが入ったフルーツバスケットは
リンゴクラスとパイナップルクラスとペンクラスの多重private継承なんや

44デフォルトの名無しさん (オッペケ Sref-6sbn)2017/08/04(金) 23:30:18.50ID:W4109686r
「private継承」とい言葉を見るとC++17ドラフトのUNKOなライブラリ設計しか思い浮かばない

45デフォルトの名無しさん (ワッチョイ a16f-CKBc)2017/08/05(土) 06:26:48.70ID:IjGvtKjI0
メンバも含めてprivateなものの用途を詮索してもしょうがない

46デフォルトの名無しさん (ワッチョイ 516f-5ZP/)2017/08/05(土) 08:18:04.82ID:Oj6J0tUu0
誰か個人資産をpublicで公開してくれないかなぁ

47デフォルトの名無しさん (ブーイモ MMbf-DfHf)2017/08/05(土) 10:59:21.66ID:q0G0ffZoM
2000年頃貯めた資産なので引き出せる紙幣はコピーだがよいか?

48デフォルトの名無しさん (アウアウエー Sa2b-690I)2017/08/06(日) 11:38:12.92ID:57DyNeACa
>>46
あなたのその文字も立派な個人資産。
ここに書いた瞬間2chに帰属するが。

49デフォルトの名無しさん (オッペケ Sr93-6sbn)2017/08/06(日) 19:15:12.69ID:/2i5R4CKr
このスレのレスで資産と呼べるのは
PostMessageでメモリ不足を検知するノウハウと
プライベートメンバーをアクセスする技くらいのものだ

50デフォルトの名無しさん (ワッチョイ 93ef-AiEY)2017/08/06(日) 19:28:38.68ID:OFkcQ32C0
>>49
>プライベートメンバーをアクセスする技くらいのものだ
え,それって private メンバのアドレスを返して外からアクセスするってやつ?

51デフォルトの名無しさん (ワッチョイ 03aa-dE0h)2017/08/06(日) 19:31:25.78ID:7dbJmn2Z0
違うだろ
それにネタ元はここじゃないし

52デフォルトの名無しさん (ワッチョイ 49ad-mf2b)2017/08/06(日) 20:55:29.92ID:BHhmDaJC0
>>50
privateをpublicでdefineするやつじゃ?

53デフォルトの名無しさん (オッペケ Sr93-6sbn)2017/08/06(日) 21:20:19.11ID:/2i5R4CKr
>>50
微妙に違うような
アクセス制御が適用されない文脈でメンバーへのポインターやstatic変数のポインターを取得してアクセスする手法

54デフォルトの名無しさん (ワッチョイ 7b6d-H6ZD)2017/08/07(月) 16:40:58.08ID:Y4YBisBB0

55デフォルトの名無しさん (オッペケ Sr35-6sbn)2017/08/07(月) 22:34:19.58ID:MakITfYKr
privateをpublicでdefineするのは潔くてカッコいいが
>>54は全てが糞すぎる

56デフォルトの名無しさん (ワッチョイ 85e3-XDod)2017/08/07(月) 22:43:25.92ID:qpBf+1aM0
しかも既存のクラスに普通に手入れてるしね

57デフォルトの名無しさん (ワッチョイ 7b6d-hNCA)2017/08/08(火) 07:52:39.36ID:CWtfXRt70
>>55
具体的に

58デフォルトの名無しさん (オッペケ Sr35-6sbn)2017/08/08(火) 08:21:06.59ID:RV4q7wpsr
>>57
うむ、こんなところだろう
1.既存のクラスに普通に手入れている
2.それは違うと>>53で言っているのに投下されるアスペなレス
3.privateな変数にアクセスするかと思いきや、privateな変数を出力するprivateな関数を呼び出すという意味の無い構成
4.deleteを使用するUNKOなコード
5.newを使用する残念なコード
6.コードへのリンクを投下するのでなくクソスレを経由するクソレス
7.例外安全でない
8.非staticにする必要性が感じられない
9.「(hoge->*(hoge->g()))();」というブザマな呼び出し方

59デフォルトの名無しさん (ワッチョイ 7b6d-H6ZD)2017/08/09(水) 18:36:43.63ID:UcwPIhci0
>>58
https://ideone.com/Y4LPCV

改善:3, 4, 5, 6, 7
保留:1, 2, 8, 9

60デフォルトの名無しさん (オッペケ Srd9-6sbn)2017/08/09(水) 18:40:37.13ID:hewgQardr
いやそこは無視するだろ普通

>hoge.get()->*(hoge->g2()) = 54321;
もう何が何だか…

61C言語ますたー《ますたー軍団(常時募集)の長》 ◆oa6k//3vOQ (ラクッペ MMaf-bbbG)2017/08/09(水) 18:43:38.11ID:s1XZJ5NhM
読んでないけどg()は関数ポインタを返す関数?
設計からしてダメだろ

62デフォルトの名無しさん (ワッチョイ 0d09-zlP1)2017/08/09(水) 18:53:35.78ID:VsUePcYe0
既存のクラスに手を入れてる時点でキモイ。
それならもっとやりようあるでしょ。

63デフォルトの名無しさん (ワッチョイ 7b6d-H6ZD)2017/08/09(水) 19:13:08.58ID:UcwPIhci0
>>61
メンバのオフセット(たぶん) ->* ::* 使用前提のやつ
>>59 は一箇所どうにもこうにもならないので放置している部分がある
ともかく笑いのネタというより他にない

64デフォルトの名無しさん (オッペケ Srbb-iw66)2017/08/10(木) 10:59:10.70ID:vqPWBCRZr
>>63
遠慮せずともじゃんじゃんプライベートにアクセスしてよいぞ
http://ideone.com/BJHsgK

65はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 5a15-aEKd)2017/08/10(木) 11:21:25.23ID:eseR3mB40
>>63
オフセットして実装するのが普通だと思うけど、メンバ変数へのポインタがオフセットで実装されるとは決まってないんじゃないの?

66デフォルトの名無しさん (ワッチョイ 9ac5-OW3C)2017/08/11(金) 13:08:18.43ID:rA3728Ge0
C++の場合クラス(およびその基底クラス)内のメンバは全部ヘッダファイルを辿っていけばワカルのだから
まず全く同じ内容のヘッダファイルのコピーを作り、
ファイル名を適当に変えて、多重インクルード箇所もコピーしたもので閉じるように変更して、
privateやprotectedを全部publicにして、
クラスの名前をFoo→Foo2とか改変して、
仮想関数は適当に空の定義でもつけて、
 ((Foo2*)p)->(Fooのデータメンバ)
式にキャストしてアクセスすればデータメンバと仮想関数については問題なくアクセスできる

(ODR違反は都市伝説なので事実上これで動く
 だいたいprivate破りを意図している時点で実コードレベルで影響しない規約とか気にしても仕方が無い

67デフォルトの名無しさん (ワッチョイ 9ac5-OW3C)2017/08/11(金) 13:10:51.21ID:rA3728Ge0
Foo2の仮想関数が空ではないか、というのは動作上問題にならない
vtableのしくみがわかっているならワカル以下略

一方非仮想関数の方はちょっとうまい方法が思いつかない…
private属性のメンバ関数のアドレスがとれれば勝つるのだが

68デフォルトの名無しさん (ワッチョイ 5b2b-7NHe)2017/08/11(金) 15:28:00.96ID:CTzRRQx/0
class Base {
public:
Base() {};
virtual void func() {};
};

class Sub: public Base {
public:
Sub() {};
virtual void func() {};
};

Sub a();
std::vector<Base> b;
b.push_back(a);
b[0].func();
これだと継承前のBaseのfuncが実行されてSubのfuncが実行されないんですが
Subのfuncを実行するにはどうしたらいいですか

69デフォルトの名無しさん (ワッチョイ 9a9f-I8p5)2017/08/11(金) 15:45:01.75ID:GPxw37uF0
そりゃpushするときにBaseへの暗黙の型変換かかるからダメっしょ
ポインタつかえよBaseの

70デフォルトの名無しさん (ワッチョイ 1a49-d9WE)2017/08/11(金) 15:47:46.79ID:L0uHlCp20
>>68
そのコード本当に動く?
本質じゃなくて申し訳ないが、そのまま追試出来るコードじゃないと…

ちなみに質問の回答はスライスな。

71デフォルトの名無しさん (ワッチョイ 9a9f-I8p5)2017/08/11(金) 15:57:28.65ID:GPxw37uF0
おかしいな、確かに
コピーコンストラクタもないのにコンパイラ通るのかコレ

72デフォルトの名無しさん (ワッチョイ 1a49-d9WE)2017/08/11(金) 16:00:31.30ID:L0uHlCp20
コピコンは省略可能だよー。

73デフォルトの名無しさん (ワッチョイ 5b2b-7NHe)2017/08/11(金) 16:11:31.54ID:CTzRRQx/0
>>69
ありがとうございます
ポインタにすることで解決しました
>>70-71
動かしてるコードを簡略化したのでもしかしたら動かないかもしれないです

74デフォルトの名無しさん (オッペケ Srbb-iw66)2017/08/11(金) 16:51:11.96ID:+GdUPlS/r
「本当に動く? (中略) そのまま追試出来るコードじゃないと…」
 ↓
「もしかしたら動かないかもしれない」
これがアスペというやつだな

75デフォルトの名無しさん (ワッチョイ 9aaa-W16a)2017/08/11(金) 16:54:58.31ID:mfxycmdp0
会話としては成り立ってる

76デフォルトの名無しさん (ワッチョイ 9a23-KsLg)2017/08/11(金) 17:09:12.83ID:MFH9oRFs0
この言語はどこの業務で使われてるの?
組み込み・制御はC++使ってますとか言いながら大体これCじゃん!だから論外として

77デフォルトの名無しさん (ワッチョイ 336d-dvNI)2017/08/11(金) 17:11:30.49ID:Ca8C76qb0
gcc が c++ で書き直された、という話はあったな

78デフォルトの名無しさん (ワッチョイ 97e4-TVDH)2017/08/11(金) 17:29:47.32ID:fw1fdXf30
>>76
https://github.com/search?utf8=%E2%9C%93&q=language%3AC%2B%2B+stars%3A%3E%3D1000&type=Repositories

79デフォルトの名無しさん (ワッチョイ 1ae7-b0wc)2017/08/11(金) 18:02:24.77ID:bpB/tg4h0
Webブラウザとかゲームとか

80はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 5a15-aEKd)2017/08/11(金) 18:34:36.55ID:eZ0/1svY0
>>76
Better C として使ってもええんやで

81デフォルトの名無しさん (ワッチョイ 9ac5-OW3C)2017/08/11(金) 19:29:34.92ID:rA3728Ge0
>>76
Simulaの置き換え

82デフォルトの名無しさん (ワッチョイ 8b11-9Y42)2017/08/11(金) 20:50:37.74ID:W25jNYVm0
C言語としてg++使ってる

83デフォルトの名無しさん (ワッチョイ dbea-fQPG)2017/08/11(金) 21:45:37.12ID:U5fbDsCj0
ウチじゃモータ制御に使ってるな

84デフォルトの名無しさん (ワッチョイ 7665-KsLg)2017/08/12(土) 16:56:14.99ID:srjAo6Ap0
質問です。

宣言は、全ての要素に対して必要なのですか?

n = a+b:

という行があるとすると、

#include <n>
#include <a>
#include <b>

が必要なのですか?
とても初心者なので、なにとぞ教えてください。
お願いします。

85デフォルトの名無しさん (ワッチョイ 9aaa-W16a)2017/08/12(土) 17:13:58.34ID:AoA5DjYT0
意図がわかりにくいがその場合だったら#include <n> だけあればいいんじゃないの?
そうでないとしたらinclude順は#include <a>と#include <b>を先に書くべき。

86 ◆QZaw55cn4c (ワッチョイ baef-9OS8)2017/08/12(土) 17:17:09.90ID:lBXwiOpA0
>>84
#include は宣言じゃない
多分
int n;
int a:;
int b;
のことじゃないかな?

87デフォルトの名無しさん (ワッチョイ 9ab1-KsLg)2017/08/12(土) 17:21:05.88ID:Yn7dYYpz0
>84

#include
というのは、外部にあるファイルを読み込め
という命令なので、変数の宣言ではありません。

#include <a>

というのは、aというファイルを読み込めという
命令です。
n=a+b
という場合には、この式の前に、n, a, bという
変数の型を宣言する必要があります。
全てが整数ならば、
int a, b, n;
単精度実数ならば
float a, b, n;
と、倍精度実数ならば、
double a, b, n;
と書きます。
と変数の型を宣言します。

このことは、基本の基本なので、解説書の最初に書いてあるはずです。
解説書をよく読んで、その上で分からないことを
質問しましょう

8884 (ワッチョイ 7665-KsLg)2017/08/12(土) 17:27:53.44ID:srjAo6Ap0
>>85-87
googleだけの独学なので、とても勉強になりました。

とても、ありがとうございました。

89デフォルトの名無しさん (ワッチョイ 9aaa-W16a)2017/08/12(土) 17:28:31.16ID:AoA5DjYT0
文字通りの意味だったのかよ

90デフォルトの名無しさん (オッペケ Srbb-iw66)2017/08/12(土) 18:07:41.60ID:B05a5g6/r
>#include <a>
>というのは、aというファイルを読み込めという命令です。

んなこたーない

91デフォルトの名無しさん (オッペケ Srbb-iw66)2017/08/12(土) 18:16:01.28ID:B05a5g6/r
>>87
>この式の前に、n, a, bという変数の型を宣言する必要があります

それは規格のどこに書いてあるのですか?

92デフォルトの名無しさん (ワッチョイ 5b2b-7NHe)2017/08/12(土) 19:18:12.75ID:qkSSCQjy0
DEFINEもincludeも本質的にやってることは同じだしファイルを読み込めは間違ってるな

93デフォルトの名無しさん (ワッチョイ a309-lt+t)2017/08/12(土) 19:23:05.89ID:6XNTCj+p0
includeがファイルをその位置に展開しろっていうのはあってると思うけど、何が不満なんだ?
defineはただの文字列置換。

94デフォルトの名無しさん (オッペケ Srbb-iw66)2017/08/12(土) 21:29:22.94ID:B05a5g6/r
× #include <a>というのは、aというファイルを読み込めという命令
○ #include <a>というのは、aというヘッダーを読み込めという命令
○ #include <a>というのは、#include <a>をaというヘッダーの内容で置き換えろという命令

95デフォルトの名無しさん (ワッチョイ 9aaa-W16a)2017/08/12(土) 22:23:06.24ID:AoA5DjYT0
またヘッダー警察が来るぞ

>>84のレベルの人に説明するのに、厳密な用語をどうこういうより、>>87レベルの説明の方が適切だろう

97デフォルトの名無しさん (ワッチョイ 1a1b-8zUn)2017/08/12(土) 23:26:56.30ID:IKUtZym10
仕様だとヘッダーとソースファイルは区別されてるみたいだけど
#includeはヘッダーとソースファイルのどちらも扱うから
二つを纏めてファイルと呼称しているとしたら>>94は間違いじゃないの?

98デフォルトの名無しさん (ワッチョイ a30d-wsxY)2017/08/13(日) 06:37:43.35ID:/9jKf3580
「C++の#includeがファイルを読み込むとは限らない」
という説明を何かで読んだ記憶がある。

例えばソースに #include <hoge.h> と書いてあっても
hoge.h というファイルの実体は存在しなくて、
コンパイラが内部的なスイッチとして使っても構わない、みたいな話。
実際にそういう動作をするコンパイラは知らんけど。

99デフォルトの名無しさん (オッペケ Srbb-iw66)2017/08/13(日) 07:15:34.96ID:CgemGkhrr
>>97
もとの>>87は#includeでなく#include <>なのだが

>二つを纏めてファイルと呼称しているとしたら
いきなり自分の結論を大前提に置かれても
まあこのへんはC++17で少し変わるだろう

100デフォルトの名無しさん (ワッチョイ 8b11-9Y42)2017/08/13(日) 11:33:24.03ID:P6N6OiXF0
CSVファイルを読み込むときに#include使うことある

てか、学ぶなら1冊くらい本買えよ
Googleで独学とか効率悪すぎる

102はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 5a15-aEKd)2017/08/14(月) 00:14:24.38ID:N3oVMbyu0
軸がわからないと自分が何をわかってないかすらわからないからクソみてぇな思い込みで検索して見当違いの方向に突っ込んでしまうから、
そうなってから質問しても質問が見当違いすぎて回答しようがないことはよくある。

103デフォルトの名無しさん (ワッチョイ 336d-gaVt)2017/08/15(火) 18:55:44.72ID:Q70B1fQS0
>>102
いっちょコンパイラを書いてやろうと思っているんだが何をやっていいかわからない…
手元の教科書は必死に正規表現やらチューリングマシンやらを追求している…
これってコンパイラ本だと思って買ったのだが、どうも本を間違えてしまったらしい
軸がわからないと悲惨ですね

104デフォルトの名無しさん (ワッチョイ 9a11-GpN3)2017/08/15(火) 19:28:20.65ID:GzAS59pw0
>>103
スゲー古い本だけどこの辺りを参考にするとか
https://www.amazon.co.jp/dp/4782850573

105デフォルトの名無しさん (ワッチョイ a309-lt+t)2017/08/15(火) 19:38:22.48ID:AjDM7F7/0
http://ideone.com/RcWgQx
これ、C++17でできるようになるんだっけ?どうだっけ?

106デフォルトの名無しさん (オッペケ Srbb-iw66)2017/08/15(火) 19:51:33.69ID:nijih07Br
少なくとも似たケースを支援する機能は追加されるがそのままでは通らない
[*this]

107デフォルトの名無しさん (オッペケ Srbb-iw66)2017/08/15(火) 19:53:35.30ID:nijih07Br
と思ってよく読んだら関係無かったしTは生存期間内だった
つまりC++17では無理

108デフォルトの名無しさん (ワッチョイ a309-lt+t)2017/08/15(火) 19:56:48.90ID:AjDM7F7/0
そうなんだ。ありがとう。
またウインドウを出せないのか。
綺麗なウインドウクラスを書く日は遠い・・・。

109デフォルトの名無しさん (ワッチョイ 7a79-A3l2)2017/08/15(火) 19:59:11.57ID:vSz72Ekj0
>>103
LLVMのtutorialでもやってみたら? (↓の一番上)
https://llvm.org/docs/tutorial/
たしか日本語訳もあったと思うけど、内容が古いので注意。

110デフォルトの名無しさん (ワッチョイ 3323-Eq/3)2017/08/15(火) 20:03:18.47ID:BftRsONU0
>>103
yacc, lex (または bison, flex) とかは知ってる?
使うと構文解析が楽になるよ。

111デフォルトの名無しさん (ワッチョイ 5baa-ixYY)2017/08/15(火) 21:06:58.79ID:K8T9Hr6g0
>>108
単にstd::function使えって話じゃねーの?

112デフォルトの名無しさん (ワッチョイ a309-lt+t)2017/08/15(火) 21:16:01.46ID:AjDM7F7/0
>>111
WindowsのウィンドウをWin32APIで出すときは、Cのインターフェースに渡さないといけない。
なので、デフォルトキャプチャにthisのアドレスコピーが入ってくれないと厳しい。

113デフォルトの名無しさん (ワッチョイ 5baa-ixYY)2017/08/15(火) 21:38:42.75ID:K8T9Hr6g0
>>112
typedef bool(*Fun)();
にキャプチャしたデータを置いとく場所が無いんだからいつまでまっても実現しないよ
そういうC言語のAPIにはvoid*でユーザーデータ渡せて引数で取得できるようになってるはずなんだからそれに規則性があるのなら(例えば最初の引数がユーザーデータになってるとか)テンプレートでラッパー書くの簡単でしょ

114デフォルトの名無しさん (ワッチョイ 1a49-d9WE)2017/08/15(火) 21:53:17.41ID:+1mFvI7w0
>>105
できるも何も型が違うからエラーでしょ。
ラムダ型のオブジェクトはautoでしか受けられない。

115デフォルトの名無しさん (ワッチョイ a309-lt+t)2017/08/15(火) 23:43:23.71ID:AjDM7F7/0
>>113
クロージャって知らない?

>>114
条件を限定することで関数ポインタに束縛できるようになりました。
まぁ今回書いたのは願望ですけど。

116デフォルトの名無しさん (ワッチョイ 5baa-uFAa)2017/08/15(火) 23:55:50.09ID:K8T9Hr6g0
>>115
キャプチャしないラムダ式は関数ポインタに変換出来るだけ。束縛じゃない。

117デフォルトの名無しさん (ワッチョイ a309-lt+t)2017/08/15(火) 23:58:52.92ID:AjDM7F7/0
あぁ、語弊があったね。ゴメン。

118デフォルトの名無しさん (ワッチョイ 7a79-A3l2)2017/08/16(水) 06:02:38.98ID:1FqF77kw0
クロージャがどのように実装されているか調べてみることを勧める。
そしてそれをC言語の関数ポインタと互換性がある形で実装可能か考えてみるといい。

119デフォルトの名無しさん (ワッチョイ a309-lt+t)2017/08/16(水) 06:31:25.68ID:3XX715Yb0
>>117だよ。
駄々っ子みたいになってるが、
スレッドローカルみたいな変数を持たせれば持てないことも無いと思う。
まぁ、もうできないことはわかったので抜けます。

120デフォルトの名無しさん (ブーイモ MMba-d9WE)2017/08/16(水) 12:58:58.53ID:+9oABFYpM
もういない宣言出てるけど、スレッドローカルでやられても困るだけだと思う。

121デフォルトの名無しさん (ワッチョイ 9ac5-OW3C)2017/08/16(水) 14:20:28.94ID:5HjXxUQN0
>そしてそれをC言語の関数ポインタと互換性がある形で実装可能か考えてみるといい。
もともとC言語はλ式とか、(束縛変数がクラスのこともありえるが)クラスを構文でサポートしていないのだから
「C言語の関数ポインタと互換性がある形」と逝っただけでは何を指しているのか不明確にならざるおえない
呼び出し側がいかに煩雑な記述になろうとも、動けば互換性があるという立場をとってみるテスト、

束縛変数も毎回引数渡しすればC言語の関数ポインタと互換にできるのでは…
もはやクロージャでも何でも無いが一応動く

122デフォルトの名無しさん (オッペケ Srbb-iw66)2017/08/16(水) 14:36:46.12ID:53LlWcImr
>>121
>もはやクロージャでも何でも無いが一応動く
ちなみにどうでもいいことだがラムダ式から取得した関数ポインターはC++リンケージ型なのでC関数に渡してコンパイルが通る保証が無い

123デフォルトの名無しさん (ワッチョイ 9ac5-OW3C)2017/08/16(水) 15:18:13.19ID:5HjXxUQN0
>>122
関数ポインタ経由の関数呼び出しに関数名のマングルは関係無いのでは…

124デフォルトの名無しさん (オッペケ Srbb-iw66)2017/08/16(水) 15:34:56.89ID:53LlWcImr
>>123
関数名だけではない
extern "C" using CF = void(); と
using CPPF = void(); は似て非なる関数型
この二つはオーバーロード可能で互換性も無い
恐らくマングリのみならず関数呼び出し規約の違いを許容する思想
ただこれを正しく実装したコンパイラーを見たことは無い

125デフォルトの名無しさん (ワッチョイ a37f-W16a)2017/08/16(水) 15:57:26.34ID:07vifjzr0
「正しく実装」すると互換性がないってこと?

126デフォルトの名無しさん (ワッチョイ 4eaa-Kd4M)2017/08/16(水) 15:59:31.27ID:CMzvSoma0
a = 0
2.times do
b = 1
3.times do
p a, b
end
end

「Rubyのしくみ」に書いてあるけど、Rubyは、Cで作ってあり、
do 〜 end のブロックは、クロージャの実装。
ラムダ・Proc も、ほとんど同じ

子のブロック内で、変数が見つからなければ、
外のスコープ(先祖の方向)へ遡って、探しに行く

127デフォルトの名無しさん (オッペケ Srbb-iw66)2017/08/16(水) 16:07:27.94ID:53LlWcImr
>>125
そのとおり
規格では別の型と規定されている
atexitなど関数ポインターを渡す関数ではCリンケージの関数ポインターを渡すかC++リンケージの関数ポインターを渡すかで
C版atexitとC++版atexitのオーバーロード呼び分けができることになっている

clang/G++は意図的に規格に従っていないというのが痛説
Visual C++は規格より自分が正しいという意味不明な見解

128デフォルトの名無しさん (ワッチョイ a37f-W16a)2017/08/16(水) 16:16:58.46ID:07vifjzr0
や、互換性がない→別の型 は真でも 別の型→互換性がない はそうじゃないような。

129デフォルトの名無しさん (オッペケ Srbb-iw66)2017/08/16(水) 16:31:53.97ID:53LlWcImr
そのとおりだ
暗黙の変換は禁止されていない
ただ暗黙の変換が可能というルールも存在しないので「コンパイルが通る保証が無い」と書いた

130デフォルトの名無しさん (ワッチョイ a37f-W16a)2017/08/16(水) 16:48:50.64ID:07vifjzr0
なるほど。
上の方で原理的に無理みたいなことが書いてあった気がしたので念のため。

131デフォルトの名無しさん (ワッチョイ b6a6-iw66)2017/08/16(水) 18:09:49.22ID:VpF+jov/0
マングリングっていやらしいよな

132デフォルトの名無しさん (ワッチョイ b632-iGin)2017/08/16(水) 18:35:35.31ID:lmNMFTOO0
そういうCのインタフェースにはたいてい関数ポインタの他にユーザデータを指定できるようになっててそこにthisなんかを入れておくものだが、 >>105 は関数オブジェクトを関数ポインタだけに変換したいと言っているわけか……

コードを動的に生成すれば不可能ではないだろうけど、色々トレードオフがあるから言語の機能にするのはどうだろうね。
ライブラリを作っても良いんだろうけど、おとなしく定石に従っておいた方が良いよ

133デフォルトの名無しさん (ワッチョイ 5baa-uFAa)2017/08/16(水) 22:53:19.96ID:VOMe5hsv0
>>132
動的にコードを生成したとしてもどこにその生成したコードを置くのか、それをどうやって解放するのかが問題になるね。だったらコード生成してもしなくても同じ事。

134デフォルトの名無しさん (ワッチョイ b632-iGin)2017/08/16(水) 23:14:18.00ID:lmNMFTOO0
>>133
> 動的にコードを生成したとしてもどこにその生成したコードを置くのか、それをどうやって解放するのかが問題になるね。
そうだね。

> だったらコード生成してもしなくても同じ事。
同じではないね。

135デフォルトの名無しさん (ワッチョイ 5baa-uFAa)2017/08/16(水) 23:47:46.20ID:VOMe5hsv0
>>134
言い方が悪かったかな?
「どこにその生成したコードを置くのか、それをどうやって解放するのか」が解決するのであれば、コードを動的に生成しなくてもキャプチャしたデータ自体をそこに置けばいいだけ。

136デフォルトの名無しさん (ワッチョイ 5b32-eSaa)2017/08/17(木) 02:40:17.43ID:PxJqlDv90
>>135
キャプチャしたデータ(またはそれへのポインタ)をコード以外のどこかに置くとして、それは関数ポインタ一つ(コードへのポインタをとるCのAPIにそのまま渡せる形)にはならないだろ。
何の話をしてるんだ?

137デフォルトの名無しさん (ワッチョイ d379-IovB)2017/08/17(木) 05:10:47.78ID:gXVZW44o0
WTL/ATLでそれっぽいことをやってるね。
http://hp.vector.co.jp/authors/VA022575/c/msgmap.html

138デフォルトの名無しさん (スッップ Sdb3-2DsO)2017/08/17(木) 08:39:28.71ID:rYxoi1+/d
MS は mfc の頃から動的コード生成でやってだ記憶がある。

this をロードして jmp みたいな小さいコードを生成して Window Proc として使う。

139デフォルトの名無しさん (ワッチョイ 994d-jLVh)2017/08/17(木) 09:01:01.55ID:6E9r52D/0
それ動的生成だろ。コードじゃなくてインスタンス。

140デフォルトの名無しさん (スッップ Sdb3-2DsO)2017/08/17(木) 10:51:29.58ID:rYxoi1+/d
>>139
コードだっつーの
関数ポインタ一つしか渡せないwindowprocにthisを渡すためにそうやってるんだよ。
なんで知らんのに反論するかなー

>>140
ひょっとして各インスタンスにコードが含まれてるとか思ってる? w

142デフォルトの名無しさん (オッペケ Sr4d-T01/)2017/08/17(木) 14:38:16.10ID:B8c7/K0xr
>>138
そのサンクらしきものはどこのセグメントに置くの?

143デフォルトの名無しさん (ワッチョイ 5b32-eSaa)2017/08/17(木) 15:30:51.11ID:PxJqlDv90
自分でソース読めば良いのに。
最近はDEPとかあるから工夫が必要そうだよね、と検索したらこんなのが出てきた。
https://support.microsoft.com/ja-jp/help/948468/applications-using-older-atl-components-may-experience-conflicts-with

144デフォルトの名無しさん (ワッチョイ 994d-jLVh)2017/08/17(木) 16:53:07.66ID:6E9r52D/0
>>143
MFCのどのクラスに動的コード生成の実装が書いてんの?

145デフォルトの名無しさん (ワッチョイ 5b32-eSaa)2017/08/17(木) 17:43:39.99ID:PxJqlDv90
なんか頭悪そうなのがつっかかってきた

146デフォルトの名無しさん (スップ Sdf3-kTqj)2017/08/17(木) 17:47:21.07ID:fzzVUP+8d
DOS時代は動的コード生成とか良く使ったな

147デフォルトの名無しさん (ワッチョイ 994d-jLVh)2017/08/17(木) 18:37:40.30ID:6E9r52D/0
>>145
なんで急にキレるんですか?
あなたがソース読めとアドバイスしたからMFCのどのソースか聞いただけなのに。

148デフォルトの名無しさん (スッップ Sdb3-2DsO)2017/08/17(木) 18:53:03.48ID:p6ewHhXhd
理解しようという気持ちも理解する力もないのに質問すんなよ…
mfc ではやってたっけ?やってないんじゃないの?
というツッコミならともかく、
>>141>>142なんて思考力が虫以下だろ…どこのセグメントとかアホか
Win32 は古来よりフラットなリニアアドレスモデルだろ。
VirtualAlloc も知らなそうだし。

149デフォルトの名無しさん (ワッチョイ 9311-x4Vn)2017/08/17(木) 18:56:13.88ID:wL10pSGX0
質問だと思ってる時点で低能確定やん w
まあセグメントと聞いてセグメントレジスタしか頭に思い浮かばない低能はROMってろ

150デフォルトの名無しさん (オッペケ Sr4d-T01/)2017/08/17(木) 19:26:52.61ID:KC+pdSEir
>古来よりフラットなリニアアドレスモデル
まさかそっちのセグメントに反応するとは予想外だった

151デフォルトの名無しさん (ワッチョイ 994d-jLVh)2017/08/17(木) 19:47:30.76ID:6E9r52D/0
>>148
だいたいあなたがMFCの頃から動的コード生成でやってたって言い出したんですよ。
だから私はMFCにあるのはインスタンスの動的生成だという指摘をしたんですよ。
そしたら、再度あなたがATLのような実装があるんだと言ったんですよ。
ソース見ろとか言う人までいるから、どのソースか聞いたらキレて、なんで言い出したおまえまでキレんだよ。アル中か?
ここは相談室だぞ。

152デフォルトの名無しさん (ワッチョイ 19cd-eViR)2017/08/18(金) 07:51:05.48ID:mSCO2cNh0
C++を身に着けたいと思いつつも、自分でC++で何かを作るモチベーションが湧かなくって、数千行程度のC++プログラムの写経でもしようかと思ってるのですがおすすめありませんか?

SDLを使ったゲームとか興味を持ちやすくて写経しやすいかと思ってgithubとか漁ってるのですがなかなかいいのが見つからなくて悩み中です
QtみたいなC++を拡張してるのは勘弁です

153デフォルトの名無しさん (ワッチョイ 5100-kTqj)2017/08/18(金) 08:26:03.23ID:cQGhZEXD0
あなたが何に興味を持つかなんてわかりません
C++以外の技能は?

154デフォルトの名無しさん (ワッチョイ 8109-NU4b)2017/08/18(金) 09:19:25.85ID:q7vLALqK0
てんそるふろーでも読んでみるとか。
今を時めくフレームワークだよ。

155デフォルトの名無しさん (ワッチョイ 99e4-V3JL)2017/08/18(金) 12:28:43.04ID:vqpgoPDk0
クソだと思うやつを俺が叩き直してやるってやっていればそのうち上達してる

156デフォルトの名無しさん (オッペケ Sr4d-T01/)2017/08/19(土) 00:15:55.63ID:LWJoSxYpr
ぜひ叩き直してください!

157デフォルトの名無しさん (ワッチョイ 9311-x4Vn)2017/08/19(土) 10:13:11.47ID:2Vqw9aXW0
>>156
思いっきり叩いてやるからまず自分が書いたソースをどこかにアップしろ

158デフォルトの名無しさん (ワッチョイ 616d-MHKs)2017/08/19(土) 11:23:26.49ID:w9JmRxmV0

159デフォルトの名無しさん (ワッチョイ 99e4-V3JL)2017/08/19(土) 12:05:03.25ID:uvlmBKsV0
他人に使わせる気のないコードなんていくら書いても意味ない
ソフトウェアとして公開して叩かれろ

160デフォルトの名無しさん (ワッチョイ 616d-MHKs)2017/08/19(土) 12:07:34.16ID:w9JmRxmV0
>>159
>他人に使わせる気のないコード
どうすれば他人に使わせる気満々のコードになるのでしょうか?
ソースを公開する以外に何かしないといけないのでしょうか?

161デフォルトの名無しさん (ワッチョイ 2be3-oL0b)2017/08/19(土) 12:13:16.84ID:YuM2o2hA0
3行以内で書く、とか?

162デフォルトの名無しさん (ワッチョイ 93f0-jLVh)2017/08/19(土) 12:46:02.69ID:dHC0uy3l0
使いたくなるか否か、それを判定するソースコードを見せてくれれば一番早い
そしてそのソフトウェア自体をその判定にかけると得点はMAXになるのは当然

163デフォルトの名無しさん (ワッチョイ 931b-sCIl)2017/08/19(土) 15:54:33.73ID:/pRbJcl80
>>160
・OSSライセンスを適用する
・有名処のOSSホスティングサービスで公開する
・ソフトウェアの目的と利用方法を理解しやすいようにドキュメント化する
・CPUやメモリなどのリソースを効率よく使用する
・汎用性が考慮された作りにする
・特殊化も考慮された作りにする
・バクが無いようにする
・こまめに更新し継続して改善されている事をアピールする

このくらいやれば他人に使わせる気満々のコードに見える

164デフォルトの名無しさん (ワッチョイ 616d-MHKs)2017/08/19(土) 16:03:12.53ID:w9JmRxmV0
>>163
なるほど

でも >>158 をやる気満々で公開しようと思ってもアピール点が見つからないんです
「C++ だけで簡潔する多桁演算」というのは訴求ポイントとしてはどうなんでしょうか
誰かやってるかどうかはさておき、魅力的がどうかは気になります

165デフォルトの名無しさん (ワッチョイ 616d-MHKs)2017/08/19(土) 16:04:19.60ID:w9JmRxmV0
×簡潔○完結

166デフォルトの名無しさん (ワッチョイ 5ba6-T01/)2017/08/19(土) 18:29:45.94ID:xqVOePdU0
右辺値参照がやっぱりわからん
template<class T>
void test(T&& t) {
f(std::forward<T>(t))
}
このstd::forward<T>(t)は左辺値なの?
名前持つt(左辺値)を転送してるから左辺値でいい?
f()はf(T&)を呼ぶであってる?

167デフォルトの名無しさん (ワッチョイ 1196-oL0b)2017/08/19(土) 18:30:36.24ID:eKyb4lix0
C++11,14を勉強するのにいい本おしぇーてください。

168デフォルトの名無しさん (ワッチョイ 939f-AkiN)2017/08/19(土) 19:12:00.26ID:o+HPRhwX0
effectiveなんちゃらフォイ

169デフォルトの名無しさん (ワッチョイ 1196-oL0b)2017/08/19(土) 19:19:27.18ID:eKyb4lix0
もだーん?

170デフォルトの名無しさん (ワッチョイ b391-JJVS)2017/08/19(土) 19:52:37.70ID:g5B0Pqab0
>>166
forward<T>(t)はtをTの右辺値参照にキャストして返すんだから
f()はT&& tを受け取る(f(T&&)が呼ばれる)んじゃね?

171デフォルトの名無しさん (ワッチョイ d34b-uBYh)2017/08/19(土) 20:21:54.83ID:3jYO+FxO0
>>166
それはforwarding referenceという機能を使ったperfect forwardingというテクニックで
右辺値参照を理解した先にあるものだ
右辺値参照の勉強中なら今は気にせず忘れておくもので
右辺値参照を理解してるなら右辺値参照とは別物として新たに勉強しなくてはならないものだ

172166 (ワッチョイ 5ba6-T01/)2017/08/19(土) 20:37:29.73ID:xqVOePdU0
>>170
やっぱり右辺値参照へのキャストか
左辺値参照ぽい動きなんで質問してみた。ありがと
>>171
俺にはforwardはまだ早いってことスね
まずforwardなしでもう少し考えてみるわ

173デフォルトの名無しさん (ワッチョイ 93aa-jLVh)2017/08/19(土) 22:34:08.72ID:s/7RraD70
>>166
もとの test という関数が右辺値、左辺値どっちでも引数に取れる、そして std::forward でそのまま転送している
f がとる引数の型は test がとった引数と同じ。
つまり答えは実引数次第だ。

174デフォルトの名無しさん (ワッチョイ 8109-NU4b)2017/08/20(日) 08:37:02.88ID:5zFtpOhv0
うにふぁいどこーるしんたっくすはしんだなぜだ!

175デフォルトの名無しさん (オッペケ Sr4d-T01/)2017/08/20(日) 08:45:14.41ID:0H5//osor
死んだ?
むしろ他の提案が出ておちつきそうだったのに
自尊心を傷つけられたと感じたハゲがゴネだして蒸し返えされたような

176デフォルトの名無しさん (ワッチョイ 8109-NU4b)2017/08/20(日) 08:47:52.43ID:5zFtpOhv0
>>175
あんた詳しそうだな。今どうなってるの??
猛烈にほしいんだけど、サクッと入らんかな?
詳しいリンクとかあったらいただけないでしょうか。

177デフォルトの名無しさん (オッペケ Sr4d-T01/)2017/08/20(日) 12:02:18.26ID:0H5//osor
>>176
すまんが別の提案と間違えた。忘れて
open-std.orgのWG21のpapersの2016のP0251R0が最新ではないだろうか
何の動きもなくC++20ドラフトN4687にも入っていない

178デフォルトの名無しさん (ワッチョイ b391-JJVS)2017/08/20(日) 13:06:57.93ID:FiktH31Q0
3年毎に膨らんでいく仕様とか嫌だな
そらリナスさんもブチキレますわw

179デフォルトの名無しさん (ワッチョイ 8109-NU4b)2017/08/20(日) 14:55:44.31ID:5zFtpOhv0
>>177
あぁ、情報ありがとう。やっぱ死んだままか。
手間かけさせてゴメンね。

やっぱコンセプト無いとコードサジェスト爆発するから気に入らないんだろうなぁ。。。

180デフォルトの名無しさん (ワッチョイ ab1c-Pf/K)2017/08/20(日) 14:59:30.48ID:sGdhnhOm0
トーバル君は単に自分のニーズに最適な言語はCと言っているだけで
他の言語がどうなろうと知ったこっちゃないでしょ
それを周りのアフォどもが色々押しつけに来ることに時折ブチキレるだけで

181デフォルトの名無しさん (ワッチョイ 994d-jLVh)2017/08/20(日) 15:24:25.28ID:4v9fraNU0
スキルの差によって読める、読めないの差がありすぎてもはや言語としての体をなしていない。
コンパイラによってもコンパイルできる、できないの差も激しい。大きなプロジェクトを管理する側はキレて当然。
癌のように誰も望んでない仕様拡張が続けられている。

182デフォルトの名無しさん (ブーイモ MM35-s4kG)2017/08/20(日) 15:43:51.01ID:Np+yxjmfM
メイヤーズがこっそりc++とバイナリ互換の新言語を開発している…と信じたい

183デフォルトの名無しさん (ワッチョイ 616d-MHKs)2017/08/20(日) 15:57:28.37ID:uPeoc0+j0
そのバイナリ互換ってなに?

C++11 以降で、役に立つ仕様とどーでもいい仕様とをわけるとすれば、何?

184デフォルトの名無しさん (ワッチョイ ab1c-Pf/K)2017/08/20(日) 16:05:02.55ID:sGdhnhOm0
>>181
誰も望んでいない仕様拡張?
autoは? range-based-forは? R"リテラルは?
initializer_listは? ラムダ式は? template parameter packは?
<random>は? shared_ptrは? <regex>は? <system_error>は?

185デフォルトの名無しさん (ワッチョイ 817f-jLVh)2017/08/20(日) 16:10:46.08ID:H9uxxda60
>>181
ふつう、どの規格を使うかとか、場合によってはどの開発環境のどのバージョンを使うかまで
プロジェクトで規定するものだろう。
決めたことと違うコードを混ぜようとするメンバーがいたりしたらキレてもいいが。

186はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 1315-oL0b)2017/08/20(日) 16:14:30.65ID:ikEvsZIR0
少なくとも個別の提案はプログラムが読みやすくなるし楽になる方向なんよね。
だからまぁ、 >>181 の言い分にある「誰も望んでない」という言説には違和感があるな。
嫌だという人がいるのはわからんでもないが、
勝手にユーザ全体の意見を代表してしまうやつは単にクズなので、
誰も耳をかさないよ。

187デフォルトの名無しさん (ワッチョイ 616d-4dk4)2017/08/20(日) 16:17:20.06ID:uPeoc0+j0
>>154
TFか‥ソニーからも何か出たようだね

188デフォルトの名無しさん (ワッチョイ 8123-jLVh)2017/08/20(日) 16:41:18.86ID:gPEOCHBy0
>>181
> スキルの差によって読める、読めないの差がありすぎてもはや言語としての体をなしていない。
日本語(自然言語)でも同じだろ。
馬鹿と天才でおなじ結果(コード)にしかならない、という方が問題だ。
それが天才側に揃っていれば理想的だが、実際は馬鹿側に揃うわけだし。

>>186
> 少なくとも個別の提案はプログラムが読みやすくなるし楽になる方向なんよね。
これは同意だが、問題は一部が本質的なところ(骨組み)まで変えられる程な点だろ。
現実的には>>185のようにプロジェクトリーダーが何を使うか厳密に決めればいい話で、
Linuxの場合はCだ、って言うんだから他の奴が布教しなければ丸く収まる話だ。

とはいえ通常製品の場合は「何でも出来る=何にも使えない」ではあるのだが、
C++の場合は半製品(製品を作る道具)ではあるし、
実際、機能はあった方が便利だったりするので、(使う側がどこまで使うか決めればいいだけ)
プロジェクトリーダーがしっかりしていれば、現在の貪欲な拡張方向も悪くない。
「全部の機能を使わないといけない」と信じている馬鹿と初心者は混乱するだろうけどね。

189デフォルトの名無しさん (ワッチョイ db23-faiX)2017/08/20(日) 16:58:27.04ID:zvlsjK6m0
>>188
>「全部の機能を使わないといけない」と信じている馬鹿と初心者は混乱するだろうけどね。
残念ながらこういう人たちは少数派ではないのだよ。。

190デフォルトの名無しさん (ワッチョイ ab1c-Pf/K)2017/08/20(日) 18:05:26.65ID:sGdhnhOm0
>>188
馬鹿側に揃えるポリシーを見事なまでにやってのけた言語と言えば。。。
IDENTIFICATION DIVISION.
再帰できない、ダミーセクションできない、動的記憶ない、オラこんな村いやだ♪

で、その結果なにが起きたか。。。
エロパブの嬢がどこかで見覚えのある顔だと思ったら、うわあ(kwskはガン無視します)

191デフォルトの名無しさん (ワッチョイ 8123-jLVh)2017/08/20(日) 18:47:40.43ID:gPEOCHBy0
>>190
COBOLの事か?だとするとあれは試行錯誤の結果だ。非難されるべき物でもない。
そもそもあの時代の言語は再帰出来ないのも多かった。Fortran77もBASICもそうだろ。

俺が思うに、第一世代言語(C以前)は「プログラミングとはこうあるべき」、
つまり、プログラミング自体を規定しようとしている。

COBOL:自然言語の仕様書がそのままソースになるべき
C:所詮アセンブラ
smalltalk:オブジェクト間のメッセージングこそが真の未来
Lisp:ラムダこそ真理
BASIC:馬鹿でも使えることが重要
Fortran:所詮計算機だろ

で、C以外が全部糞だったのでCで統一された。
当然第二世代言語はCの後継で、C++/Java/C#のような面子になる。
とはいえ、COBOLの方向性は間違いでもないよ。
ソース自体が可読性のあるドキュメントであるべき、ってのは今でも理想だろ。

192デフォルトの名無しさん (ワッチョイ ab1c-Pf/K)2017/08/20(日) 19:00:58.06ID:sGdhnhOm0
>>191
BASICは再帰できたぞ
FORTRANを実装できないマシン用に作られた縮小版で、
でもFORTRANより新しく作られた分、改良が図られていた
そのうちの、すべての行に行番号というのが賛否両論だった
当時初心者だった俺にとってはあれがラベルの概念の入り口になってくれたが
1桁KBのパーコンで構造化などという寝ぼけた老害たちがGOTOがどうたら言ってた
あ、嫁が呼んでるw じゃあな

193デフォルトの名無しさん (ワッチョイ 53ef-jLVh)2017/08/20(日) 19:05:55.32ID:QoZjiUMw0
>>192
BASIC で再帰ができるのは,ハドソン系ベーシック等,マイクロソフト以外の BASIC ではないか?

194デフォルトの名無しさん (ワッチョイ ab1c-Pf/K)2017/08/20(日) 19:39:46.63ID:sGdhnhOm0
メインフレーム用の一部の言語が再帰できないのは
当時のS/370がスタックのないアーキテクチャだったからだ
逆にBASICが実装された多くのPCではCPがにスタックを持っていた
なので全変数がグローバルなのでやりにくいができるにはできた
俺もBASICでの再帰は大道芸の域を出ることがなく
実用上の手の内に入ったのはCからだった

195デフォルトの名無しさん (ワッチョイ ab1c-Pf/K)2017/08/20(日) 19:45:06.60ID:sGdhnhOm0
s/CP/CPU/

CPじゃ制御プログラムだねw

196デフォルトの名無しさん (ワッチョイ 8123-jLVh)2017/08/20(日) 21:07:10.22ID:gPEOCHBy0
>>194
> 全変数がグローバルなのでやりにくいができるにはできた
これは一般的には出来るとは言わない。
再帰が出来る=関数ローカルの変数が定義出来る、だよ。
変数共通で突っ込むのは今なら「再入」と呼ばれる物に近く、
これは言語として云々ではなく、対応する構造にするかどうかだけ。

また、CPUのスタック操作命令は高速化に寄与するだけであって、
無ければエミュレートすればいいだけだろ。
その論法だとスタック操作命令がないCPUではC言語を実装出来ないことになるが、
これはないだろ。
(S/370上のC言語実装も無いとは思えないし)

197デフォルトの名無しさん (ワッチョイ ab1c-Pf/K)2017/08/20(日) 21:48:19.43ID:sGdhnhOm0
>>196
そこは俺とは見解が違うね
再帰の定義はサブルーチンの中からそのサブルーチンを呼び出すことで、
それをやりやすく補助する存在は本質じゃない
なのでスタックですら再帰の本質ではない
マシンによってはサブルーチンのネストが6層までとか限定されていて
それは何かというとリンクレジスタの個数でありスタックじゃない
再入は共通変数なんか使わないし、使ったらRENTじゃなくなる
メインフレームの流儀ではいちいちGETMAINとかね
メインフレーム上のCの実装は、俺が目撃したのはS/370じゃなく
ESA/370だったけどいちいちGETMAINはしてなかった

198デフォルトの名無しさん (ワッチョイ ab1c-Pf/K)2017/08/20(日) 22:03:55.37ID:sGdhnhOm0
秀和の解析本にはBASICのくせにunwindがあるぞってなのが載ってたね

199デフォルトの名無しさん (ワッチョイ 8123-jLVh)2017/08/20(日) 22:43:04.76ID:gPEOCHBy0
>>197
> 再帰の定義はサブルーチンの中からそのサブルーチンを呼び出すことで、
> それをやりやすく補助する存在は本質じゃない
これは屁理屈だ。
なぜならこの定義では、「再帰出来ない」言語なんて無いから。
再帰出来る/出来ない『言語』を議論している時点で、この定義は無意味で、
「普通に再帰を記述した時に問題なく動くか」が議論用の定義になる。
これは当然であり、自明だ。

つか、君は何が言いたかったんだ?
君の定義ならCOBOLだって再帰出来るだろ?

200デフォルトの名無しさん (ワッチョイ 93c5-8P7d)2017/08/21(月) 04:24:06.96ID:LgR8oR3f0
再帰アルゴリズムを繰り返し(ループ)アルゴリズムに変換することは普通のアーキテクチャー上では常に可能、
再帰回数に応じて新規のメモ化用領域を本質的に必要とするという重症なケースでも、最悪配列が使えればどうとでもなる、

>>197
メインフレームってグローバル変数として配列とか確保できなくて
いちいちGETMAINするしかないのスゲー

>>199
System/370で動くGCCの実装があったと聞いたわ(ただし今はSystem/390が動作下限とのこと)
再帰ができるかどうかはしらんwwwwwww

201デフォルトの名無しさん (ワッチョイ 9311-x4Vn)2017/08/21(月) 06:45:36.67ID:OHbYaZtv0
>>199
> 君の定義ならCOBOLだって再帰出来るだろ?
(当然だが当時のCOBOLは)できないよ
戻り番地を1つしか覚えてないのでネストしたら戻れなくなる

202デフォルトの名無しさん (オッペケ Sr4d-T01/)2017/08/21(月) 07:37:14.11ID:7Rgof7Fhr
そろそろよそでやれ

203デフォルトの名無しさん (オッペケ Sr4d-T01/)2017/08/21(月) 08:01:15.80ID:7Rgof7Fhr
C++17ドラフトのguaranteed copy-elisionが難しい
しかも規格が約50カ所修正されている
A a = A{}; と A a = f(); のムーブ無くすだけでどんだけ根本概念に手を入れてんだ

204デフォルトの名無しさん (ワッチョイ ab1c-Pf/K)2017/08/21(月) 08:10:41.60ID:M1FJxIMj0
>>199
だから見解が違っているねと言ったろ
アセンブラは再帰できるのか、できないのかという問いと、
COBOLは再帰できるのか、できないのかという問いに、
同じバックボーンで答えることが俺には出来ないが
おまえさんには出来るということだろ?

>>200
bfdではi370だね

205デフォルトの名無しさん (ワッチョイ 2ba2-OH3f)2017/08/21(月) 22:52:00.36ID:Ec7rLiDE0

206デフォルトの名無しさん (ワッチョイ ab1c-Pf/K)2017/08/21(月) 23:00:08.39ID:M1FJxIMj0
犯人扱いしておいて違ったら知らん顔という制度そのものが間違ってる
捜査協力した人には謝礼だろうが
にせ伝票で架空の謝礼費を着服なんかしてないで
やるべきことをやれっての!

207デフォルトの名無しさん (ワッチョイ ab1c-Pf/K)2017/08/21(月) 23:01:02.71ID:M1FJxIMj0
架空の謝礼費を内部告発した仙波さん、えらい扱い受けたよね

208デフォルトの名無しさん (ワッチョイ b391-MHKs)2017/08/21(月) 23:09:51.41ID:BkgqT9qm0
C++の最新仕様を追い続けられる人ってのはやっぱどこかちょっと変わり者というか
ふわふわしたものが許せないというか、なんとなく動いてるからいいや的な緩さが
許せないというか、白黒はっきりつけようぜ的な性格なのかな?って思ったw

209デフォルトの名無しさん (ワッチョイ ab1c-Pf/K)2017/08/21(月) 23:12:01.91ID:M1FJxIMj0
たったの千円でも知らん顔とは次元が違う
謝礼の対象でないという取り決めがあるばかりに
警察官の横柄な態度を誘発しているんだよ

210デフォルトの名無しさん (ワッチョイ 99e4-njFf)2017/08/21(月) 23:56:14.20ID:pHph3yYu0
>>208
たかだか3年に1度の更新がそんなにしんどいのかよ
追い続けるもクソもねえ
重箱の隅をつついても1冊程度にまとめられる量しかないのに

211デフォルトの名無しさん (ワッチョイ 2be3-jLVh)2017/08/21(月) 23:59:39.85ID:RPf0vXrN0
最近は生ポインタ撲滅されそうと聞いたが
今までのメソッドとかどうしてるん
混在してるだろ

212デフォルトの名無しさん (ワッチョイ 93aa-jLVh)2017/08/22(火) 00:35:41.09ID:CYQ4BtpJ0
生ポのオレオレ定義

213デフォルトの名無しさん (ワッチョイ 939f-AkiN)2017/08/22(火) 00:59:49.41ID:2UJiCQ8C0
プロパティーいつ実装されるのやら
getsetくっそマンドクサ

214デフォルトの名無しさん (ワッチョイ ab1c-Pf/K)2017/08/22(火) 01:03:51.34ID:NIldwpVs0
>>208
ほとんどが待ってた機能だぜ?
言語仕様だけでなくライブラリまで
おまえろくすっぽC++使ってねえだろ

215デフォルトの名無しさん (ササクッテロラ Sp4d-d1ZX)2017/08/22(火) 02:32:46.66ID:Z58zmq8rp
全くわからない
雰囲気でc++を使っている

216デフォルトの名無しさん (ワッチョイ 5bea-eC16)2017/08/22(火) 02:42:19.05ID:S2ZGAu0e0
VSのインテリセンスさんだって
いまだについていけず
ポンコツなエラー吐きまくってるわけだし
まだまだ大丈夫!

>>210
>重箱の隅をつついても1冊程度にまとめられる量しかないのに

お前は本を出したことないから「1冊程度にまとめ」るのがどれだけ大変か分からないだけ

218デフォルトの名無しさん (ワッチョイ ab1c-Pf/K)2017/08/22(火) 12:26:19.96ID:NIldwpVs0
そういうおまえはあるのか?

219デフォルトの名無しさん (スップ Sdf3-kTqj)2017/08/22(火) 12:33:51.83ID:c0Kw6L5Fd
雑誌の編集長ですから

220デフォルトの名無しさん (ワッチョイ ab1c-Pf/K)2017/08/22(火) 12:42:39.12ID:NIldwpVs0
それが本当なら恥ずかしい見積もりミスしてんぜおまえさん

221デフォルトの名無しさん (JP 0H85-SBNh)2017/08/22(火) 12:43:40.67ID:aOcQtSkRH
>>217
本を読む、理解する側の分量の話をしてるんだから、まとめる側の労力が大きいかどうかはどうでもいいのでは?

222デフォルトの名無しさん (ワッチョイ 616f-faiX)2017/08/22(火) 15:03:21.13ID:d7ebk59r0
うん。するどい。

223デフォルトの名無しさん (ワッチョイ ab1c-Pf/K)2017/08/22(火) 15:14:35.21ID:NIldwpVs0
雑誌ってエロ本か何かだろどーせ
技術系の雑誌やっててあーゆーバカ言っちゃ自殺もんの恥だぜ

224デフォルトの名無しさん (オッペケ Sr4d-T01/)2017/08/22(火) 17:02:21.79ID:w4zQmMtVr
>重箱の隅をつついても1冊程度にまとめられる量しかないのに
その一冊程度の更新にclang/gcc/vc++すべてが追従出来ていないというのに

225デフォルトの名無しさん (ワッチョイ 53ef-69Ic)2017/08/22(火) 17:10:08.87ID:hmTXL6wT0
>>205
情熱があるんだね,うらやましい‥
ガス欠状態から脱却した

226デフォルトの名無しさん (ワッチョイ ab1c-Pf/K)2017/08/22(火) 17:20:14.07ID:NIldwpVs0
あいたた、本にまとめることも、実装とテストも、
とにかく量的な感覚がどこにもないのか

227デフォルトの名無しさん (ワッチョイ 0b32-xhIi)2017/08/22(火) 20:47:37.89ID:0/CmF7JC0
>>213
なら、publicにしちゃえばいいじゃんといってみる。

関数は振る舞いを書くべきだと思うし、変数の代わりに使うものじゃないと思うんだ。

あと、オブジェクト指向的にクラス変数は基本悪である、ということも考えるべきではないだろうか。

228デフォルトの名無しさん (ワッチョイ 13d0-gSDf)2017/08/22(火) 20:56:12.81ID:COEJtZVq0
>>227
横からだけど俺もそれに同意だ
余分な抽象化は単に工数が増えるだけ
しかしなんで"貪欲"な標準化委員会はプロパティは入れないんだろな

229デフォルトの名無しさん (ワッチョイ b111-2gHK)2017/08/22(火) 21:04:28.96ID:dxaP++Hz0
プロパティ導入したら、なんかいいことあるの?

230デフォルトの名無しさん (ワッチョイ 93aa-jLVh)2017/08/22(火) 21:13:44.10ID:CYQ4BtpJ0
>>227
クラス変数って何?

>>229
変数そのものがバッキングフィールドにカプセル化されることで、変数へのアクセスを必ずメソッド経由にできる

232デフォルトの名無しさん (ワッチョイ b111-2gHK)2017/08/22(火) 21:46:13.74ID:dxaP++Hz0
>>231
バッキングフィールドってメンバ変数をprivateにすれば今でも同じことできるんじゃね?

地味に嬉しいのは既存のパブリックメンバ変数にアクセスしてるコードを変更せずに処理を追加できること

234デフォルトの名無しさん (ワッチョイ 09e3-+GDj)2017/08/22(火) 22:30:23.44ID:uMve0U0S0
>>232
privateな変数はclass内からアクセスし放題だけど、バッキングフィールドはアクセッサ経由以外では絶対に触れない

235デフォルトの名無しさん (ブーイモ MMab-s4kG)2017/08/22(火) 22:34:14.35ID:ONlIaE3KM
c++erは厳しくしつけられているので、既存のpublicメンバがそもそも存在しない

236デフォルトの名無しさん (ワッチョイ 09e3-+GDj)2017/08/22(火) 22:35:33.43ID:uMve0U0S0
>>235
これは正しい

237デフォルトの名無しさん (ブーイモ MMab-s4kG)2017/08/22(火) 22:36:16.75ID:ONlIaE3KM
おっと変数が抜けた

238デフォルトの名無しさん (ワッチョイ 8123-jLVh)2017/08/22(火) 22:58:36.57ID:D8nSL4rC0
>>233
逆にそれが入らない原因なのでは?
軽い処理(public変数)なのか重いかもしれない処理(関数呼び出し)なのか、
見た目分かるようにしろってのがC++の流儀なんだろ。

俺はあった方がいいと思うけどね。
速度チューニングでこの手のマイクロマネージメントは全く意味がないから。

239デフォルトの名無しさん (ワッチョイ 93c5-8P7d)2017/08/22(火) 22:59:26.20ID:UHwuUWMX0
publicなメンバが一つもなかったらそもそもインスタンスを構築できないのでは…

240デフォルトの名無しさん (ワッチョイ 93c5-8P7d)2017/08/22(火) 23:02:04.62ID:UHwuUWMX0
>>238
メンバ変数の公開よりもアクセサーを設けてインライン展開してもらう方がC++の思想的に望ましいのでは…

241239 (ワッチョイ 93c5-8P7d)2017/08/22(火) 23:02:59.41ID:UHwuUWMX0
スマンfriendを使えば良いのか…

242デフォルトの名無しさん (ワッチョイ 817f-jLVh)2017/08/22(火) 23:13:00.45ID:zLx3ukqP0
>軽い処理(public変数)なのか重いかもしれない処理(関数呼び出し)なのか、
>見た目分かるようにしろってのがC++の流儀なんだろ。

C++って、それを判断するのが最も困難な部類の言語だと思うが。

243デフォルトの名無しさん (ワッチョイ ab1c-Pf/K)2017/08/22(火) 23:20:46.21ID:NIldwpVs0
set/get用のデータメンバをちまちま用意するという
狭い考えに限定してきやがる思考妨害アイテムは無用

244デフォルトの名無しさん (ワッチョイ 8123-jLVh)2017/08/22(火) 23:28:17.57ID:D8nSL4rC0
>>240
それはオブジェクト指向の理想。C++はそっちを向いていない。

>>242
いや簡単な部類の言語だ。

245デフォルトの名無しさん (オッペケ Sr4d-T01/)2017/08/22(火) 23:37:15.06ID:+MsUtw+Or
ほう、ではこのプログラムがC++17で何回ムーブが行われるかわかるかね?
auto f() {
struct C{int m;};
return C{};
}
auto c = f();

246デフォルトの名無しさん (ワッチョイ 93aa-jLVh)2017/08/22(火) 23:37:39.41ID:CYQ4BtpJ0
はいはい属性の抽象化属性の抽象化

247デフォルトの名無しさん (ワッチョイ 93aa-jLVh)2017/08/22(火) 23:39:19.18ID:CYQ4BtpJ0
>>245
0回

248デフォルトの名無しさん (オッペケ Sr4d-T01/)2017/08/22(火) 23:41:09.40ID:+MsUtw+Or
残念
0回または1回
因みに確認のためにムーブコンストラクターを追加すると0回に変わる

249デフォルトの名無しさん (オッペケ Sr4d-T01/)2017/08/22(火) 23:49:21.67ID:+MsUtw+Or
ということで、見た目で判断することは難しいのではないかと

250デフォルトの名無しさん (ワッチョイ 8123-jLVh)2017/08/23(水) 00:09:19.34ID:CuDbJhab0
つかお前ら他言語使ってないだろ。
逆に言えばC++はその程度の精度での見積もりが出来る、ということなんだよ。

GC言語なんてGCがどこで走るか予測不能だから、実行時間の保証なんて全く出来ないし、
JIT言語はJIT側にその最適化が入っているかどうかで全く速度が変わってしまう。
つまりJava/C#/JavaScript等はその精度での見積もりはそもそも不可能なんだよ。

それとは別に、C++はその辺の仕組みがかなり複雑になっているのは認めるが、
それでも他言語と比べたら精度高く見積もれる方だよ。

getterを使った場合の問題は、それが見積もりにくくなることと、
あまりに多用するとどこで処理しているのか分かりにくくなる点だが、
まあ、適切に使っている限りはかなり使える機能だから、有った方が便利なんだけどね。
だから普通に考えれば「貪欲」なら当然入れるべきだし、
むしろラムダより先に入れるべきだが、入れないんだから何か引っかかってんでしょ多分。

251デフォルトの名無しさん (ワッチョイ 93aa-jLVh)2017/08/23(水) 00:16:20.92ID:Cw77BvbJ0
>>248

252はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 1315-oL0b)2017/08/23(水) 02:11:33.58ID:wuLlGfOo0
getter がただの変数アクセスに被せてあるだけならまともなコンパイラなら最適化で消えるから速度的なペナルティはゼロだよ。

新着レスの表示
レスを投稿する