C++相談室 part131 at TECH
[2ch|▼Menu]
[1からを表示]
50:デフォルトの名無しさん
17/08/06 19:28:38.68 OFkcQ32C0.net
>>49
>プライベートメンバーをアクセスする技くらいのものだ
え,それって private メンバのアドレスを返して外からアクセスするってやつ?

51:デフォルトの名無しさん
17/08/06 19:31:25.78 7dbJmn2Z0.net
違うだろ
それにネタ元はここじゃないし

52:デフォルトの名無しさん
17/08/06 20:55:29.92 BHhmDaJC0.net
>>50
privateをpublicでdefineするやつじゃ?

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

54:デフォルトの名無しさん
17/08/07 16:40:58.08 Y4YBisBB0.net
>>50 >>53
スレリンク(tech板:22番)

55:デフォルトの名無しさん
17/08/07 22:34:19.58 MakITfYKr.net
privateをpublicでdefineするのは潔くてカッコいいが
>>54は全てが糞すぎる

56:デフォルトの名無しさん
17/08/07 22:43:25.92 qpBf+1aM0.net
しかも既存のクラスに普通に手入れてるしね

57:デフォルトの名無しさん
17/08/08 07:52:39.36 CWtfXRt70.net
>>55
具体的に

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

59:デフォルトの名無しさん
17/08/09 18:36:43.63 UcwPIhci0.net
>>58
URLリンク(ideone.com)
改善:3, 4, 5, 6, 7
保留:1, 2, 8, 9

60:デフォルトの名無しさん
17/08/09 18:40:37.13 hewgQardr.net
いやそこは無視するだろ普通
>hoge.get()->*(hoge->g2()) = 54321;
もう何が何だか…

61:C言語ますたー《ますたー軍団(常時募集)の長》
17/08/09 18:43:38.11 s1XZJ5NhM.net
読んでないけどg()は関数ポインタを返す関数?
設計からしてダメだろ

62:デフォルトの名無しさん
17/08/09 18:53:35.78 VsUePcYe0.net
既存のクラスに手を入れてる時点でキモイ。
それならもっとやりようあるでしょ。

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

64:デフォルトの名無しさん
17/08/10 10:59:10.70 vqPWBCRZr.net
>>63
遠慮せずともじゃんじゃんプライベートにアクセスしてよいぞ
URLリンク(ideone.com)

65:はちみつ餃子
17/08/10 11:21:25.23 eseR3mB40.net
>>63
オフセットして実装するのが普通だと思うけど、メンバ変数へのポインタがオフセットで実装されるとは決まってないんじゃないの?

66:デフォルトの名無しさん
17/08/11 13:08:18.43 rA3728Ge0.net
C++の場合クラス(およびその基底クラス)内のメンバは全部ヘッダファイルを辿っていけばワカルのだから
まず全く同じ内容のヘッダファイルのコピーを作り、
ファイル名を適当に変えて、多重インクルード箇所もコピーしたもので閉じるように変更して、
privateやprotectedを全部publicにして、
クラスの名前をFoo→Foo2とか改変して、
仮想関数は適当に空の定義でもつけて、
 ((Foo2*)p)->(Fooのデータメンバ)
式にキャストしてアクセスすればデータメンバと仮想関数については問題なくアクセスできる
(ODR違反は都市伝説なので事実上これで動く
 だいたいprivate破りを意図している時点で実コードレベルで影響しない規約とか気にしても仕方が無い

67:デフォルトの名無しさん
17/08/11 13:10:51.21 rA3728Ge0.net
Foo2の仮想関数が空ではないか、というのは動作上問題にならない
vtableのしくみがわかっているならワカル以下略
一方非仮想関数の方はちょっとうまい方法が思いつかない…
private属性のメンバ関数のアドレスがとれれば勝つるのだが

68:デフォルトの名無しさん
17/08/11 15:28:00.96 CTzRRQx/0.net
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:デフォルトの名無しさん
17/08/11 15:45:01.75 GPxw37uF0.net
そりゃpushするときにBaseへの暗黙の型変換かかるからダメっしょ
ポインタつかえよBaseの

70:デフォルトの名無しさん
17/08/11 15:47:46.79 L0uHlCp20.net
>>68
そのコード本当に動く?
本質じゃなくて申し訳ないが、そのまま追試出来るコードじゃないと…
ちなみに質問の回答はスライスな。

71:デフォルトの名無しさん
17/08/11 15:57:28.65 GPxw37uF0.net
おかしいな、確かに
コピーコンストラクタもないのにコンパイラ通るのかコレ

72:デフォルトの名無しさん
17/08/11 16:00:31.30 L0uHlCp20.net
コピコンは省略可能だよー。

73:デフォルトの名無しさん
17/08/11 16:11:31.54 CTzRRQx/0.net
>>69
ありがとうございます
ポインタにすることで解決しました
>>70-71
動かしてるコードを簡略化したのでもしかしたら動かないかもしれないです

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

75:デフォルトの名無しさん
17/08/11 16:54:58.31 mfxycmdp0.net
会話としては成り立ってる

76:デフォルトの名無しさん
17/08/11 17:09:12.83 MFH9oRFs0.net
この言語はどこの業務で使われてるの?
組み込み・制御はC++使ってますとか言いながら大体これCじゃん!だから論外として

77:デフォルトの名無しさん
17/08/11 17:11:30.49 Ca8C76qb0.net
gcc が c++ で書き直された、という話はあったな

78:デフォルトの名無しさん
17/08/11 17:29:47.32 fw1fdXf30.net
>>76
URLリンク(github.com)

79:デフォルトの名無しさん
17/08/11 18:02:24.77 bpB/tg4h0.net
Webブラウザとかゲームとか

80:はちみつ餃子
17/08/11 18:34:36.55 eZ0/1svY0.net
>>76
Better C として使ってもええんやで

81:デフォルトの名無しさん
17/08/11 19:29:34.92 rA3728Ge0.net
>>76
Simulaの置き換え

82:デフォルトの名無しさん
17/08/11 20:50:37.74 W25jNYVm0.net
C言語としてg++使ってる

83:デフォルトの名無しさん
17/08/11 21:45:37.12 U5fbDsCj0.net
ウチじゃモータ制御に使ってるな

84:デフォルトの名無しさん
17/08/12 16:56:14.99 srjAo6Ap0.net
質問です。
宣言は、全ての要素に対して必要なのですか?
n = a+b:
という行があるとすると、
#include <n>
#include <a>
#include <b>
が必要なのですか?
とても初心者なので、なにとぞ教えてください。
お願いします。

85:デフォルトの名無しさん
17/08/12 17:13:58.34 AoA5DjYT0.net
意図がわかりにくいがその場合だったら#include <n> だけあればいいんじゃないの?
そうでないとしたらinclude順は#include <a>と#include <b>を先に書くべき。

86:
17/08/12 17:17:09.90 lBXwiOpA0.net
>>84
#include は宣言じゃない
多分
int n;
int a:;
int b;
のことじゃないかな?

87:デフォルトの名無しさん
17/08/12 17:21:05.88 Yn7dYYpz0.net
>84
#include
というのは、外部にあるファイルを読み込め
という命令なので、変数の宣言ではありません。
#include <a>
というのは、aというファイルを読み込めという
命令です。
n=a+b
という場合には、この式の前に、n, a, bという
変数の型を宣言する必要があります。
全てが整数ならば、
int a, b, n;
単精度実数ならば
float a, b, n;
と、倍精度実数ならば、
double a, b, n;
と書きます。
と変数の型を宣言します。
このことは、基本の基本なので、解説書の最初に書いてあるはずです。
解説書をよく読んで、その上で分からないことを
質問しましょう

88:84
17/08/12 17:27:53.44 srjAo6Ap0.net
>>85-87様
googleだけの独学なので、とても勉強になりました。
とても、ありがとうございました。

89:デフォルトの名無しさん
17/08/12 17:28:31.16 AoA5DjYT0.net
文字通りの意味だったのかよ

90:デフォルトの名無しさん
17/08/12 18:07:41.60 B05a5g6/r.net
>#include <a>
>というのは、aというファイルを読み込めという命令です。
んなこたーない

91:デフォルトの名無しさん
17/08/12 18:16:01.28 B05a5g6/r.net
>>87
>この式の前に、n, a, bという変数の型を宣言する必要があります
それは規格のどこに書いてあるのですか?

92:デフォルトの名無しさん
17/08/12 19:18:12.75 qkSSCQjy0.net
DEFINEもincludeも本質的にやってることは同じだしファイルを読み込めは間違ってるな

93:デフォルトの名無しさん
17/08/12 19:23:05.89 6XNTCj+p0.net
includeがファイルをその位置に展開しろっていうのはあってると思うけど、何が不満なんだ?
defineはただの文字列置換。

94:デフォルトの名無しさん
17/08/12 21:29:22.94 B05a5g6/r.net
× #include <a>というのは、aというファイルを読み込めという命令
○ #include <a>というのは、aというヘッダーを読み込めという命令
○ #include <a>というのは、#include <a>をaというヘッダーの内容で置き換えろという命令

95:デフォルトの名無しさん
17/08/12 22:23:06.24 AoA5DjYT0.net
またヘッダー警察が来るぞ

96:デフォルトの名無しさん
17/08/12 23:15:33.63 wV3c1N0ta.net
>>84のレベルの人に説明するのに、厳密な用語をどうこういうより、>>87レベルの説明の方が適切だろう

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

98:デフォルトの名無しさん
17/08/13 06:37:43.35 /9jKf3580.net
「C++の#includeがファイルを読み込むとは限らない」
という説明を何かで読んだ記憶がある。
例えばソースに #include <hoge.h> と書いてあっても
hoge.h というファイルの実体は存在しなくて、
コンパイラが内部的なスイッチとして使っても構わない、みたいな話。
実際にそういう動作をするコンパイラは知らんけど。

99:デフォルトの名無しさん
17/08/13 07:15:34.96 CgemGkhrr.net
>>97
もとの>>87は#includeでなく#include <>なのだが
>二つを纏めてファイルと呼称しているとしたら
いきなり自分の結論を大前提に置かれても
まあこのへんはC++17で少し変わるだろう

100:デフォルトの名無しさん
17/08/13 11:33:24.03 P6N6OiXF0.net
CSVファイルを読み込むときに#include使うことある

101:デフォルトの名無しさん
17/08/13 20:57:49.74 R0DVX6mKM.net
てか、学ぶなら1冊くらい本買えよ
Googleで独学とか効率悪すぎる

102:はちみつ餃子
17/08/14 00:14:24.38 N3oVMbyu0.net
軸がわからないと自分が何をわかってないかすらわからないからクソみてぇな思い込みで検索して見当違いの方向に突っ込んでしまうから、
そうなってから質問しても質問が見当違いすぎて回答しようがないことはよくある。

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

104:デフォルトの名無しさん
17/08/15 19:28:20.65 GzAS59pw0.net
>>103
スゲー古い本だけどこの辺りを参考にするとか
URLリンク(www.amazon.co.jp)

105:デフォルトの名無しさん
17/08/15 19:38:22.48 AjDM7F7/0.net
URLリンク(ideone.com)
これ、C++17でできるようになるんだっけ?どうだっけ?

106:デフォルトの名無しさん
17/08/15 19:51:33.69 nijih07Br.net
少なくとも似たケースを支援する機能は追加されるがそのままでは通らない
[*this]

107:デフォルトの名無しさん
17/08/15 19:53:35.30 nijih07Br.net
と思ってよく読んだら関係無かったしTは生存期間内だった
つまりC++17では無理

108:デフォルトの名無しさん
17/08/15 19:56:48.90 AjDM7F7/0.net
そうなんだ。ありがとう。
またウインドウを出せないのか。
綺麗なウインドウクラスを書く日は遠い・・・。

109:デフォルトの名無しさん
17/08/15 19:59:11.57 vSz72Ekj0.net
>>103
LLVMのtutorialでもやってみたら? (↓の一番上)
URLリンク(llvm.org)
たしか日本語訳もあったと思うけど、内容が古いので注意。

110:デフォルトの名無しさん
17/08/15 20:03:18.47 BftRsONU0.net
>>103
yacc, lex (または bison, flex) とかは知ってる?
使うと構文解析が楽になるよ。

111:デフォルトの名無しさん
17/08/15 21:06:58.79 K8T9Hr6g0.net
>>108
単にstd::function使えって話じゃねーの?

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

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

114:デフォルトの名無しさん
17/08/15 21:53:17.41 +1mFvI7w0.net
>>105
できるも何も型が違うからエラーでしょ。
ラムダ型のオブジェクトはautoでしか受けられない。

115:デフォルトの名無しさん
17/08/15 23:43:23.71 AjDM7F7/0.net
>>113
クロージャって知らない?
>>114
条件を限定することで関数ポインタに束縛できるようになりました。
まぁ今回書いたのは願望ですけど。

116:デフォルトの名無しさん
17/08/15 23:55:50.09 K8T9Hr6g0.net
>>115
キャプチャしないラムダ式は関数ポインタに変換出来るだけ。束縛じゃない。

117:デフォルトの名無しさん
17/08/15 23:58:52.92 AjDM7F7/0.net
あぁ、語弊があったね。ゴメン。

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

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

120:デフォルトの名無しさん
17/08/16 12:58:58.53 +9oABFYpM.net
もういない宣言出てるけど、スレッドローカルでやられても困るだけだと思う。

121:デフォルトの名無しさん
17/08/16 14:20:28.94 5HjXxUQN0.net
>そしてそれをC言語の関数ポインタと互換性がある形で実装可能か考えてみるといい。
もともとC言語はλ式とか、(束縛変数がクラスのこともありえるが)クラスを構文でサポートしていないのだから
「C言語の関数ポインタと互換性がある形」と逝っただけでは何を指しているのか不明確にならざるおえない
呼び出し側がいかに煩雑な記述になろうとも、動けば互換性があるという立場をとってみるテスト、
束縛変数も毎回引数渡しすればC言語の関数ポインタと互換にできるのでは…
もはやクロージャでも何でも無いが一応動く

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

123:デフォルトの名無しさん
17/08/16 15:18:13.19 5HjXxUQN0.net
>>122 関数ポインタ経由の関数呼び出しに関数名のマングルは関係無いのでは…



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

126:デフォルトの名無しさん
17/08/16 15:57:26.34 07vifjzr0.net
「正しく実装」すると互換性がないってこと?

127:デフォルトの名無しさん
17/08/16 15:59:31.27 CMzvSoma0.net
a = 0
2.times do
b = 1
3.times do
p a, b
end
end
「Rubyのしくみ」に書いてあるけど、Rubyは、Cで作ってあり、
do 〜 end のブロックは、クロージャの実装。
ラムダ・Proc も、ほとんど同じ
子のブロック内で、変数が見つからなければ、
外のスコープ(先祖の方向)へ遡って、探しに行く

128:デフォルトの名無しさん
17/08/16 16:07:27.94 53LlWcImr.net
>>125
そのとおり
規格では別の型と規定されている
atexitなど関数ポインターを渡す関数ではCリンケージの関数ポインターを渡すかC++リンケージの関数ポインターを渡すかで
C版atexitとC++版atexitのオーバーロード呼び分けができることになっている
clang/G++は意図的に規格に従っていないというのが痛説
Visual C++は規格より自分が正しいという意味不明な見解

129:デフォルトの名無しさん
17/08/16 16:16:58.46 07vifjzr0.net
や、互換性がない→別の型 は真でも 別の型→互換性がない はそうじゃないような。

130:デフォルトの名無しさん
17/08/16 16:31:53.97 53LlWcImr.net
そのとおりだ
暗黙の変換は禁止されていない
ただ暗黙の変換が可能というルールも存在しないので「コンパイルが通る保証が無い」と書いた

131:デフォルトの名無しさん
17/08/16 16:48:50.64 07vifjzr0.net
なるほど。
上の方で原理的に無理みたいなことが書いてあった気がしたので念のため。

132:デフォルトの名無しさん
17/08/16 18:09:49.22 VpF+jov/0.net
マングリングっていやらしいよな

133:デフォルトの名無しさん
17/08/16 18:35:35.31 lmNMFTOO0.net
そういうCのインタフェースにはたいてい関数ポインタの他にユーザデータを指定できるようになっててそこにthisなんかを入れておくものだが、 >>105 は関数オブジェクトを関数ポインタだけに変換したいと言っているわけか……
コードを動的に生成すれば不可能ではないだろうけど、色々トレードオフがあるから言語の機能にするのはどうだろうね。
ライブラリを作っても良いんだろうけど、おとなしく定石に従っておいた方が良いよ

134:デフォルトの名無しさん
17/08/16 22:53:19.96 VOMe5hsv0.net
>>132
動的にコードを生成したとしてもどこにその生成したコードを置くのか、それをどうやって解放するのかが問題になるね。だったらコード生成してもしなくても同じ事。

135:デフォルトの名無しさん
17/08/16 23:14:18.00 lmNMFTOO0.net
>>133
> 動的にコードを生成したとしてもどこにその生成したコードを置くのか、それをどうやって解放するのかが問題になるね。
そうだね。
> だったらコード生成してもしなくても同じ事。
同じではないね。

136:デフォルトの名無しさん
17/08/16 23:47:46.20 VOMe5hsv0.net
>>134
言い方が悪かったかな?
「どこにその生成したコードを置くのか、それをどうやって解放するのか」が解決するのであれば、コードを動的に生成しなくてもキャプチャしたデータ自体をそこに置けばいいだけ。

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

138:デフォルトの名無しさん
17/08/17 05:10:47.78 gXVZW44o0.net
WTL/ATLでそれっぽいことをやってるね。
URLリンク(hp.vector.co.jp)

139:デフォルトの名無しさん
17/08/17 08:39:28.71 rYxoi1+/d.net
MS は mfc の頃から動的コード生成でやってだ記憶がある。
this をロードして jmp みたいな小さいコードを生成して Window Proc として使う。

140:デフォルトの名無しさん
17/08/17 09:01:01.55 6E9r52D/0.net
それ動的生成だろ。コードじゃなくてインスタンス。

141:デフォルトの名無しさん
17/08/17 10:51:29.58 rYxoi1+/d.net
>>139
コードだっつーの
関数ポインタ一つしか渡せないwindowprocにthisを渡すためにそうやってるんだよ。
なんで知らんのに反論するかなー

142:デフォルトの名無しさん
17/08/17 11:04:19.66 OslnP8rdM.net
>>140
ひょっとして各インスタンスにコードが含まれてるとか思ってる? w

143:デフォルトの名無しさん
17/08/17 14:38:16.10 B8c7/K0xr.net
>>138
そのサンクらしきものはどこのセグメントに置くの?

144:デフォルトの名無しさん
17/08/17 15:30:51.11 PxJqlDv90.net
自分でソース読めば良いのに。
最近はDEPとかあるから工夫が必要そうだよね、と検索したらこんなのが出てきた。
URLリンク(support.microsoft.com)

145:デフォルトの名無しさん
17/08/17 16:53:07.66 6E9r52D/0.net
>>143
MFCのどのクラスに動的コード生成の実装が書いてんの?

146:デフォルトの名無しさん
17/08/17 17:43:39.99 PxJqlDv90.net
なんか頭悪そうなのがつっかかってきた

147:デフォルトの名無しさん
17/08/17 17:47:21.07 fzzVUP+8d.net
DOS時代は動的コード生成とか良く使ったな

148:デフォルトの名無しさん
17/08/17 18:37:40.30 6E9r52D/0.net
>>145
なんで急にキレるんですか?
あなたがソース読めとアドバイスしたからMFCのどのソースか聞いただけなのに。

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

150:デフォルトの名無しさん
17/08/17 18:56:13.88 wL10pSGX0.net
質問だと思ってる時点で低能確定やん w
まあセグメントと聞いてセグメントレジスタしか頭に思い浮かばない


151:低能はROMってろ



152:デフォルトの名無しさん
17/08/17 19:26:52.61 KC+pdSEir.net
>古来よりフラットなリニアアドレスモデル
まさかそっちのセグメントに反応するとは予想外だった

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

154:デフォルトの名無しさん
17/08/18 07:51:05.48 mSCO2cNh0.net
C++を身に着けたいと思いつつも、自分でC++で何かを作るモチベーションが湧かなくって、数千行程度のC++プログラムの写経でもしようかと思ってるのですがおすすめありませんか?
SDLを使ったゲームとか興味を持ちやすくて写経しやすいかと思ってgithubとか漁ってるのですがなかなかいいのが見つからなくて悩み中です
QtみたいなC++を拡張してるのは勘弁です

155:デフォルトの名無しさん
17/08/18 08:26:03.23 cQGhZEXD0.net
あなたが何に興味を持つかなんてわかりません
C++以外の技能は?

156:デフォルトの名無しさん
17/08/18 09:19:25.85 q7vLALqK0.net
てんそるふろーでも読んでみるとか。
今を時めくフレームワークだよ。

157:デフォルトの名無しさん
17/08/18 12:28:43.04 vqpgoPDk0.net
クソだと思うやつを俺が叩き直してやるってやっていればそのうち上達してる

158:デフォルトの名無しさん
17/08/19 00:15:55.63 LWJoSxYpr.net
ぜひ叩き直してください!

159:デフォルトの名無しさん
17/08/19 10:13:11.47 2Vqw9aXW0.net
>>156
思いっきり叩いてやるからまず自分が書いたソースをどこかにアップしろ

160:デフォルトの名無しさん
17/08/19 11:23:26.49 w9JmRxmV0.net
>>157
スレリンク(tech板:20番)

161:デフォルトの名無しさん
17/08/19 12:05:03.25 uvlmBKsV0.net
他人に使わせる気のないコードなんていくら書いても意味ない
ソフトウェアとして公開して叩かれろ

162:デフォルトの名無しさん
17/08/19 12:07:34.16 w9JmRxmV0.net
>>159
>他人に使わせる気のないコード
どうすれば他人に使わせる気満々のコードになるのでしょうか?
ソースを公開する以外に何かしないといけないのでしょうか?

163:デフォルトの名無しさん
17/08/19 12:13:16.84 YuM2o2hA0.net
3行以内で書く、とか?

164:デフォルトの名無しさん
17/08/19 12:46:02.69 dHC0uy3l0.net
使いたくなるか否か、それを判定するソースコードを見せてくれれば一番早い
そしてそのソフトウェア自体をその判定にかけると得点はMAXになるのは当然

165:デフォルトの名無しさん
17/08/19 15:54:33.73 /pRbJcl80.net
>>160
・OSSライセンスを適用する
・有名処のOSSホスティングサービスで公開する
・ソフトウェアの目的と利用方法を理解しやすいようにドキュメント化する
・CPUやメモリなどのリソースを効率よく使用する
・汎用性が考慮された作りにする
・特殊化も考慮された作りにする
・バクが無いようにする
・こまめに更新し継続して改善されている事をアピールする
このくらいやれば他人に使わせる気満々のコードに見える

166:デフォルトの名無しさん
17/08/19 16:03:12.53 w9JmRxmV0.net
>>163
なるほど
でも >>158 をやる気満々で公開しようと思ってもアピール点が見つからないんです
「C++ だけで簡潔する多桁演算」というのは訴求ポイントとしてはどうなんでしょうか
誰かやってるかどうかはさておき、魅力的がどうかは気になります

167:デフォルトの名無しさん
17/08/19 16:04:19.60 w9JmRxmV0.net
×簡潔○完結

168:デフォルトの名無しさん
17/08/19 18:29:45.94 xqVOePdU0.net
右辺値参照がやっぱりわからん
template<class T>
void test(T&& t) {
f(std::forward<T>(t))
}
このstd::forward<T>(t)は左辺値なの?
名前持つt(左辺値)を転送してるから左辺値でいい?
f()はf(T&)を呼ぶであってる?

169:デフォルトの名無しさん
17/08/19 18:30:36.24 eKyb4lix0.net
C++11,14を勉強するのにいい本おしぇーてください。

170:デフォルトの名無しさん
17/08/19 19:12:00.26 o+HPRhwX0.net
effectiveなんちゃらフォイ

171:デフォルトの名無しさん
17/08/19 19:19:27.18 eKyb4lix0.net
もだーん?

172:デフォルトの名無しさん
17/08/19 19:52:37.70 g5B0Pqab0.net
>>166
forward<T>(t)はtをTの右辺値参照にキャストして返すんだから
f()はT&& tを受け取る(f(T&&)が呼ばれる)んじゃね?

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

174:166
17/08/19 20:37:29.73 xqVOePdU0.net
>>170
やっぱり右辺値参照へのキャストか
左辺値参照ぽい動きなんで質問してみた。ありがと
>>171
俺にはforwardはまだ早いってことスね
まずforwardなしでもう少し考えてみるわ

175:デフォルトの名無しさん
17/08/19 22:34:08.72 s/7RraD70.net
>>166
もとの test という関数が右辺値、左辺値どっちでも引数に取れる、そして std::forward でそのまま転送している
f がとる引数の型は test がとった引数と同じ。
つまり答えは実引数次第だ。

176:デフォルトの名無しさん
17/08/20 08:37:02.88 5zFtpOhv0.net
うにふぁいどこーるしんたっくすはしんだなぜだ!

177:デフォルトの名無しさん
17/08/20 08:45:14.41 0H5//osor.net
死んだ?
むしろ他の提案が出ておちつきそうだったのに
自尊心を傷つけられたと感じたハゲがゴネだして蒸し返えされたような

178:デフォルトの名無しさん
17/08/20 08:47:52.43 5zFtpOhv0.net
>>175
あんた詳しそうだな。今どうなってるの??
猛烈にほしいんだけど、サクッと入らんかな?
詳しいリンクとかあったらいただけないでしょうか。

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

180:デフォルトの名無しさん
17/08/20 13:06:57.93 FiktH31Q0.net
3年毎に膨らんでいく仕様とか嫌だな
そらリナスさんもブチキレますわw

181:デフォルトの名無しさん
17/08/20 14:55:44.31 5zFtpOhv0.net
>>177
あぁ、情報ありがとう。やっぱ死んだままか。
手間かけさせてゴメンね。
やっぱコンセプト無いとコードサジェスト爆発するから気に入らないんだろうなぁ。。。

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

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

184:デフォルトの名無しさん
17/08/20 15:43:51.01 Np+yxjmfM.net
メイヤーズがこっそりc++とバイナリ互換の新言語を開発している…と信じたい

185:デフォルトの名無しさん
17/08/20 15:57:28.37 uPeoc0+j0.net
そのバイナリ互換ってなに?
C++11 以降で、役に立つ仕様とどーでもいい仕様とをわけるとすれば、何?

186:デフォルトの名無しさん
17/08/20 16:05:02.55 sGdhnhOm0.net
>>181
誰も望んでいない仕様拡張?
autoは? range-based-forは? R"リテラルは?
initializer_listは? ラムダ式は? template parameter packは?
<random>は? shared_ptrは? <regex>は? <system_error>は?

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

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

189:デフォルトの名無しさん
17/08/20 16:17:20.06 uPeoc0+j0.net
>>154
TFか‥ソニーからも何か出たようだね

190:デフォルトの名無しさん
17/08/20 16:41:18.86 gPEOCHBy0.net
>>181
> スキルの差によって読める、読めないの差がありすぎてもはや言語としての体をなしていない。
日本語(自然言語)でも同じだろ。
馬鹿と天才でおなじ結果(コード)にしかならない、という方が問題だ。
それが天才側に揃っていれば理想的だが、実際は馬鹿側に揃うわけだし。
>>186
> 少なくとも個別の提案はプログラムが読みやすくなるし楽になる方向なんよね。
これは同意だが、問題は一部が本質的なところ(骨組み)まで変えられる程な点だろ。
現実的には>>185のようにプロジェクトリーダーが何を使うか厳密に決めればいい話で、
Linuxの場合はCだ、って言うんだから他の奴が布教しなければ丸く収まる話だ。
とはいえ通常製品の場合は「何でも出来る=何にも使えない」ではあるのだが、
C++の場合は半製品(製品を作る道具)ではあるし、
実際、機能はあった方が便利だったりするので、(使う側がどこまで使うか決めればいいだけ)
プロジェクトリーダーがしっかりしていれば、現在の貪欲な拡張方向も悪くない。
「全部の機能を使わないといけない」と信じている馬鹿と初心者は混乱するだろうけどね。

191:デフォルトの名無しさん
17/08/20 16:58:27.04 zvlsjK6m0.net
>>188
>「全部の機能を使わないといけない」と信じている馬鹿と初心者は混乱するだろうけどね。
残念ながらこういう人たちは少数派ではないのだよ。。

192:デフォルトの名無しさん
17/08/20 18:05:26.65 sGdhnhOm0.net
>>188
馬鹿側に揃えるポリシーを見事なまでにやってのけた言語と言えば。。。
IDENTIFICATION DIVISION.
再帰できない、ダミーセクションできない、動的記憶ない、オラこんな村いやだ♪
で、その結果なにが起きたか。。。
エロパブの嬢がどこかで見覚えのある顔だと思ったら、うわあ(kwskはガン無視します)

193:デフォルトの名無しさん
17/08/20 18:47:40.43 gPEOCHBy0.net
>>190
COBOLの事か?だとするとあれは試行錯誤の結果だ。非難されるべき物でもない。
そもそもあの時代の言語は再帰出来ないのも多かった。Fortran77もBASICもそうだろ。
俺が思うに、第


194:一世代言語(C以前)は「プログラミングとはこうあるべき」、 つまり、プログラミング自体を規定しようとしている。 COBOL:自然言語の仕様書がそのままソースになるべき C:所詮アセンブラ smalltalk:オブジェクト間のメッセージングこそが真の未来 Lisp:ラムダこそ真理 BASIC:馬鹿でも使えることが重要 Fortran:所詮計算機だろ で、C以外が全部糞だったのでCで統一された。 当然第二世代言語はCの後継で、C++/Java/C#のような面子になる。 とはいえ、COBOLの方向性は間違いでもないよ。 ソース自体が可読性のあるドキュメントであるべき、ってのは今でも理想だろ。



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

196:デフォルトの名無しさん
17/08/20 19:05:55.32 QoZjiUMw0.net
>>192
BASIC で再帰ができるのは,ハドソン系ベーシック等,マイクロソフト以外の BASIC ではないか?

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

198:デフォルトの名無しさん
17/08/20 19:45:06.60 sGdhnhOm0.net
s/CP/CPU/
CPじゃ制御プログラムだねw

199:デフォルトの名無しさん
17/08/20 21:07:10.22 gPEOCHBy0.net
>>194
> 全変数がグローバルなのでやりにくいができるにはできた
これは一般的には出来るとは言わない。
再帰が出来る=関数ローカルの変数が定義出来る、だよ。
変数共通で突っ込むのは今なら「再入」と呼ばれる物に近く、
これは言語として云々ではなく、対応する構造にするかどうかだけ。
また、CPUのスタック操作命令は高速化に寄与するだけであって、
無ければエミュレートすればいいだけだろ。
その論法だとスタック操作命令がないCPUではC言語を実装出来ないことになるが、
これはないだろ。
(S/370上のC言語実装も無いとは思えないし)

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

201:デフォルトの名無しさん
17/08/20 22:03:55.37 sGdhnhOm0.net
秀和の解析本にはBASICのくせにunwindがあるぞってなのが載ってたね

202:デフォルトの名無しさん
17/08/20 22:43:04.76 gPEOCHBy0.net
>>197
> 再帰の定義はサブルーチンの中からそのサブルーチンを呼び出すことで、
> それをやりやすく補助する存在は本質じゃない
これは屁理屈だ。
なぜならこの定義では、「再帰出来ない」言語なんて無いから。
再帰出来る/出来ない『言語』を議論している時点で、この定義は無意味で、
「普通に再帰を記述した時に問題なく動くか」が議論用の定義になる。
これは当然であり、自明だ。
つか、君は何が言いたかったんだ?
君の定義ならCOBOLだって再帰出来るだろ?

203:デフォルトの名無しさん
17/08/21 04:24:06.96 LgR8oR3f0.net
再帰アルゴリズムを繰り返し(ループ)アルゴリズムに変換することは普通のアーキテクチャー上では常に可能、
再帰回数に応じて新規のメモ化用領域を本質的に必要とするという重症なケースでも、最悪配列が使えればどうとでもなる、
>>197
メインフレームってグローバル変数として配列とか確保できなくて
いちいちGETMAINするしかないのスゲー
>>199
System/370で動くGCCの実装があったと聞いたわ(ただし今はSystem/390が動作下限とのこと)
再帰ができるかどうかはしらんwwwwwww

204:デフォルトの名無しさん
17/08/21 06:45:36.67 OHbYaZtv0.net
>>199
> 君の定義ならCOBOLだって再帰出来るだろ?
(当然だが当時のCOBOLは)できないよ
戻り番地を1つしか覚えてないのでネストしたら戻れなくなる

205:デフォルトの名無しさん
17/08/21 07:37:14.11 7Rgof7Fhr.net
そろそろよそでやれ

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

207:デフォルトの名無しさん
17/08/21 08:10:41.60 M1FJxIMj0.net
>>199
だから見解が違っているねと言ったろ
アセンブラは再帰できるのか、できないのかという問いと、
COBOLは再帰できるのか、できないのかという問いに、
同じバックボーンで答えることが俺には出来ないが
おまえさんには出来るということだろ?
>>200
bfdではi370だね

208:デフォルトの名無しさん
17/08/21 22:52:00.36 Ec7rLiDE0.net
ついに裁判か…
URLリンク(www.bengo4.com)

209:デフォルトの名無しさん
17/08/21 23:00:08.39 M1FJxIMj0.net
犯人扱いしておいて違ったら知らん顔という制度そのものが間違ってる
捜査協力した人には謝礼だろうが
にせ伝票で架空の謝礼費を着服なんかしてないで
やるべきことをやれっての!

210:デフォルトの名無しさん
17/08/21 23:01:02.71 M1FJxIMj0.net
架空の謝礼費を内部告発した仙波さん、えらい扱い受けたよね

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

212:デフォルトの名無しさん
17/08/21 23:12:01.91 M1FJxIMj0.net
たったの千円でも知らん顔とは次元が違う
謝礼の対象でないという取り決めがあるばかりに
警察官の横柄な態度を誘発しているんだよ

213:デフォルトの名無しさん
17/08/21 23:56:14.20 pHph3yYu0.net
>>208
たかだか3年に1度の更新がそんなにしんどいのかよ
追い続けるもクソもねえ
重箱の隅をつついても1冊程度にまとめられる量しかないのに

214:デフォルトの名無しさん
17/08/21 23:59:39.85 RPf0vXrN0.net
最近は生ポインタ撲滅されそうと聞いたが
今までのメソッドとかどうしてるん
混在してるだろ

215:デフォルトの名無しさん
17/08/22 00:35:41.09 CYQ4BtpJ0.net
生ポのオレオレ定義

216:デフォルトの名無しさん
17/08/22 00:59:49.41 2UJiCQ8C0.net
プロパティーいつ実装されるのやら
getsetくっそマンドクサ

217:デフォルトの名無しさん
17/08/22 01:03:51.34 NIldwpVs0.net
>>208
ほとんどが待ってた機能だぜ?
言語仕様だけでなくライブラリまで
おまえろくすっぽC++使ってねえだろ

218:デフォルトの名無しさん
17/08/22 02:32:46.66 Z58zmq8rp.net
全くわからない
雰囲気でc++を使っている

219:デフォルトの名無しさん
17/08/22 02:42:19.05 S2ZGAu0e0.net
VSのインテリセンスさんだって
いまだについていけず
ポンコツなエラー吐きまくってるわけだし
まだまだ大丈夫!

220:デフォルトの名無しさん
17/08/22 11:30:22.61 FcKiiis6a.net
>>210
>重箱の隅をつついても1冊程度にまとめられる量しかないのに
お前は本を出したことないから「1冊程度にまとめ」るのがどれだけ大変か分からないだけ

221:デフォルトの名無しさん
17/08/22 12:26:19.96 NIldwpVs0.net
そういうおまえはあるのか?

222:デフォルトの名無しさん
17/08/22 12:33:51.83 c0Kw6L5Fd.net
雑誌の編集長ですから

223:デフォルトの名無しさん
17/08/22 12:42:39.12 NIldwpVs0.net
それが本当なら恥ずかしい見積もりミスしてんぜおまえさん

224:デフォルトの名無しさん
17/08/22 12:43:40.67 aOcQtSkRH.net
>>217
本を読む、理解する側の分量の話をしてるんだから、まとめる側の労力が大きいかどうかはどうでもいいのでは?

225:デフォルトの名無しさん
17/08/22 15:03:21.13 d7ebk59r0.net
うん。するどい。

226:デフォルトの名無しさん
17/08/22 15:14:35.21 NIldwpVs0.net
雑誌ってエロ本か何かだろどーせ
技術系の雑誌やっててあーゆーバカ言っちゃ自殺もんの恥だぜ

227:デフォルトの名無しさん
17/08/22 17:02:21.79 w4zQmMtVr.net
>重箱の隅をつついても1冊程度にまとめられる量しかないのに
その一冊程度の更新にclang/gcc/vc++すべてが追従出来ていないというのに

228:デフォルトの名無しさん
17/08/22 17:10:08.87 hmTXL6wT0.net
>>205
情熱があるんだね,うらやましい‥
ガス欠状態から脱却した

229:デフォルトの名無しさん
17/08/22 17:20:14.07 NIldwpVs0.net
あいたた、本にまとめることも、実装とテストも、
とにかく量的な感覚がどこにもないのか

230:デフォルトの名無しさん
17/08/22 20:47:37.89 0/CmF7JC0.net
>>213
なら、publicにしちゃえばいいじゃんといってみる。
関数は振る舞いを書くべきだと思うし、変数の代わりに使うものじゃないと思うんだ。
あと、オブジェクト指向的にクラス変数は基本悪である、ということも考えるべきではないだろうか。

231:デフォルトの名無しさん
17/08/22 20:56:12.81 COEJtZVq0.net
>>227
横からだけど俺もそれに同意だ
余分な抽象化は単に工数が増えるだけ
しかしなんで"貪欲"な標準化委員会はプロパティは入れないんだろな

232:デフォルトの名無しさん
17/08/22 21:04:28.96 dxaP++Hz0.net
プロパティ導入したら、なんかいいことあるの?

233:デフォルトの名無しさん
17/08/22 21:13:44.10 CYQ4BtpJ0.net
>>227
クラス変数って何?

234:デフォルトの名無しさん
17/08/22 21:18:39.19 BxNeEQM2M.net
>>229
変数そのものがバッキングフィールドにカプセル化されることで、変数へのアクセスを必ずメソッド経由にできる

235:デフォルトの名無しさん
17/08/22 21:46:13.74 dxaP++Hz0.net
>>231
バッキングフィールドってメンバ変数をprivateにすれば今でも同じことできるんじゃね?

236:デフォルトの名無しさん
17/08/22 22:05:33.19 q1PzJh5lM.net
地味に嬉しいのは既存のパブリックメンバ変数にアクセスしてるコードを変更せずに処理を追加できること

237:デフォルトの名無しさん
17/08/22 22:30:23.44 uMve0U0S0.net
>>232
privateな変数はclass内からアクセスし放題だけど、バッキングフィールドはアクセッサ経由以外では絶対に触れない

238:デフォルトの名無しさん
17/08/22 22:34:14.35 ONlIaE3KM.net
c++erは厳しくしつけられているので、既存のpublicメンバがそもそも存在しない

239:デフォルトの名無しさん
17/08/22 22:35:33.43 uMve0U0S0.net
>>235
これは正しい


240:



241:デフォルトの名無しさん
17/08/22 22:36:16.75 ONlIaE3KM.net
おっと変数が抜けた

242:デフォルトの名無しさん
17/08/22 22:58:36.57 D8nSL4rC0.net
>>233
逆にそれが入らない原因なのでは?
軽い処理(public変数)なのか重いかもしれない処理(関数呼び出し)なのか、
見た目分かるようにしろってのがC++の流儀なんだろ。
俺はあった方がいいと思うけどね。
速度チューニングでこの手のマイクロマネージメントは全く意味がないから。


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

462日前に更新/267 KB
担当:undef