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


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

C++相談室 part126



1 名前:デフォルトの名無しさん mailto:sage [2016/08/13(土) 11:24:45.65 ID:NPYsKJkE.net]
次スレを立てる時は本文の1行目に以下を追加して下さい
!extend:on:vvvvv:1000:512

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

前スレ
C++相談室 part125
echo.2ch.net/test/read.cgi/tech/1463761261/

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

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

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

40 名前:デフォルトの名無しさん mailto:sage [2016/08/22(月) 23:11:56.81 ID:h7MtbrKQ.net]
しかし>>19の質問が言語仕様の質問だと認識できない>>20は相当なアスペだな

41 名前:デフォルトの名無しさん [2016/08/22(月) 23:15:20.32 ID:L/g35wNF.net]
>>37
キチガイにくれてやる餌はもうありませんよ

42 名前:デフォルトの名無しさん mailto:sage [2016/08/23(火) 05:52:48.19 ID:O4MU2HPR.net]
規格に「○○と書くことができる」と明示されているなら
「規格書のこの場所を参照せよ」と教えられるけど、
「○○と書くことは禁止する」とか「○○と書いた場合の動作は未定義」とか、
どこにも書かれていないから許されるっていう論理展開の場合、
「規格書を隅から隅まで読め」としか言いようがないよな。

ところでC++の規格書にアクセスする方法を
スレッドのテンプレートにでも載せておくと便利かもね。
というか、タダで読める規格書を紹介してください。

43 名前:デフォルトの名無しさん [2016/08/23(火) 06:53:40.84 ID:Y0n1zcYL.net]
>>34
特定のコンパイラに依存する話はしてないのだから規格の話であることは明確です
逆になぜコンパイラに依存すると思い込んだのか不明です
勘違いしたなら素直にそう言えばいいだけなのではないでしょうか見苦しいです

44 名前:デフォルトの名無しさん [2016/08/23(火) 08:19:52.18 ID:IvwXbhOy.net]
>>41
おまえは可能かと聞いたんだ、いいか可能かだぞ

exportのように規格では可能でコンパイラでは不能なことや
結合指定の一致しない関数ポインタのように規格では不能でコンパイラでは可能なことだってある

おまえが脳内で勝手に決めたことなんざ
ぜんぜん明確じゃねえんだよバカ

45 名前:デフォルトの名無しさん [2016/08/23(火) 08:26:02.57 ID:qBPZWzjH.net]
>>42
特定のコンパイラに依存する話など聞いていません
自分で勝手に前提を作ってその前提をもとに話しをしてそれを押し付けられてもこちらはそんな話はいらないとしか言えないです

申し訳ないですけど頭のおかしい人に見えます

46 名前:デフォルトの名無しさん [2016/08/23(火) 08:31:31.66 ID:qBPZWzjH.net]
勘違いして恥ずかしいから自分を正当化するために相手が悪いという事にしたい気持ちはわかります

でもそれは余計恥ずかしい事なので恥の上塗りはや

47 名前:゚たほうがいいと思いますよ []
[ここ壊れてます]

48 名前:デフォルトの名無しさん mailto:sage [2016/08/23(火) 08:43:12.87 ID:uPhg+qti.net]
>>19 みたいな初心者と勘違いされるような質問の仕方が悪い



49 名前:デフォルトの名無しさん mailto:sage [2016/08/23(火) 08:49:04.54 ID:DsF8a6WC.net]
技術板なのに「自分の言い分が正しい」って言い合い続けるだけのバカ共が居座っているのか

50 名前:デフォルトの名無しさん [2016/08/23(火) 08:49:55.28 ID:3V8DlG7j.net]
何だこの釣り堀は?

51 名前:デフォルトの名無しさん mailto:sage [2016/08/23(火) 08:59:21.57 ID:J0tT4d0S.net]
でも2chはプロが話し合う場ではない、というのもまた真実なんだよな。
プログラム板はある意味異常。

52 名前:デフォルトの名無しさん [2016/08/23(火) 09:18:16.76 ID:IvwXbhOy.net]
>>43
19の時点ではコンパイラとも規格とも
おまえはどちらとも言ってない
どうあがいてもこの事実は覆らない

53 名前:デフォルトの名無しさん [2016/08/23(火) 09:25:17.91 ID:qBPZWzjH.net]
書いてないのに勝手にコンパイラの話に決めつけるのはおかしい事です
なぜコンパイラの話にしたのか意味不明でアホ過ぎます

しかもそれを指摘されると逆ギレするのはとてもみっともない事です

54 名前:デフォルトの名無しさん [2016/08/23(火) 09:48:23.79 ID:IvwXbhOy.net]
ははは
規格の話だって主張を引っ込めたな

55 名前:デフォルトの名無しさん [2016/08/23(火) 09:59:46.93 ID:qBPZWzjH.net]
コンパイラは指定してないのだから
コンパイラに依存しないつまり規格の話なのは言うまでも無いです
特定のコンパイラでできるかどうか聞いているのなら最初からそのように言うでしょう

なぜ勝手にコンパイラの話にしたのか思考がおかしいです
論理的では無いです。
しかもその勘違いを指摘してあげたのに逆ギレとは心外です

56 名前:デフォルトの名無しさん [2016/08/23(火) 10:16:39.75 ID:IvwXbhOy.net]
いーや、おまえが "企画" と言い出したのは23からだ

歴史を捏造したり、嘘を100回言って本当にしようとしたり、
まるでどっかの国の告げ口おばさんだな

57 名前:デフォルトの名無しさん [2016/08/23(火) 10:31:45.33 ID:IvwXbhOy.net]
あ、21だっけ
いずれにせよ遅きに失したことに変わりはないが

58 名前:デフォルトの名無しさん [2016/08/23(火) 10:38:24.61 ID:qBPZWzjH.net]
企画とか言い出したのは別人です

c++のスレでコンパイラの話をしてないのに規格の話とは思わなかったというのは流石に無理があります



59 名前:デフォルトの名無しさん mailto:sage [2016/08/23(火) 10:47:49.73 ID:LgPC+ubP.net]
規格を端から端まで読まないとわからないという結論が出た以上、無駄な議論をする時間で規格を読んではいかが?

60 名前:デフォルトの名無しさん [2016/08/23(火) 11:09:33.65 ID:vhBIERX9.net]
どういう結論だよw
「8.4 Function definitions」とせいぜい「12.4 Destructors」を読めばいいだろ
ゆっくり読んでも5分もあれば十分

61 名前:デフォルトの名無しさん [2016/08/23(火) 11:34:13.96 ID:IvwXbhOy.net]
>>56
>>42

あれはウリじゃないニダか、ははは

62 名前:デフォルトの名無しさん [2016/08/23(火) 11:56:52.76 ID:qBPZWzjH.net]
勝手な思い込みでコンパイラの話と決めつけて他人を本人だと決めつけて
思い込みが激しい人なんですね

勘違いをして恥かいたのはしょうがない事です
それを人のせいにするのは小学生みたいで見苦しいですよ

63 名前:デフォルトの名無しさん mailto:sage [2016/08/23(火) 12:05:27.02 ID:J0tT4d0S.net]
「俺はコンパイラの話と思った。理由はともかくその話をするぜ」ってスタンスでも別にいいし、
「理由もなくそんな話するのは頭おかしい」と断ずるのもどうかと思う。
ちゃんとした話はTwitterででもやれ。

64 名前:デフォルトの名無しさん [2016/08/23(火) 12:31:02.84 ID:IvwXbhOy.net]
>>59
不自由な日本語で恥かいたのはあんただよ外人さん

65 名前:デフォルトの名無しさん [2016/08/23(火) 12:47:10.45 ID:qBPZWzjH.net]
勘違いで恥をかいたのが悔しくて外人だの言い出すのはみっともないですよ

何度も言いますがコンパイラの話はしてないのに勝手にコンパイラの話と決めつけるのは愚かな事です。
逆ギレして罵りたいのはわかりますがどこまでいっても恥ずかしいだけです

66 名前:デフォルトの名無しさん [2016/08/23(火) 12:49:07.79 ID:qBPZWzjH.net]
しかもちゃんと指摘してあげたのに
お前が悪いと人のせいにするあたりに人間性がよく現れていると思います

67 名前:デフォルトの名無しさん [2016/08/23(火) 13:06:25.52 ID:IvwXbhOy.net]
>>63
おまえが悪いんだよ
誰もおまえを擁護しねえだろ

おまえのしたことは典型的な質問者の後出しだ
それだけでも無礼なのに態度もでかすぎ
どこまでも腐りきった根性曲がりはみんな大嫌いなんだよ

68 名前:デフォルトの名無しさん [2016/08/23(火) 13:13:48.34 ID:qBPZWzjH.net]
残念ながら違います
言ってもいないことを勝手に解釈して決めつけることが悪いことです
さらに悪いのは間違いを指摘されたにも関わらず素直にそれを認めず人のせいにする
これこそが人間として最悪の事です

自分の間違いを認めたくないから人種などの話を持ち出して話をそらしたいのでしょう
それは卑怯者のすることです。



69 名前:デフォルトの名無しさん mailto:sage [2016/08/23(火) 13:23:13.61 ID:HFGMYFIt.net]
スレのマナーを守らないNG推奨ID
ID:qBPZWzjH
ID:IvwXbhOy

70 名前:デフォルトの名無しさん [2016/08/23(火) 13:31:03.89 ID:IvwXbhOy.net]
>>65
回答者がある程度エスパーするのが悪いこととか
まれに見るほど呆れ果てたクズ質問者だな

71 名前:デフォルトの名無しさん [2016/08/23(火) 13:39:37.64 ID:qBPZWzjH.net]
>>67
間違うのは仕方がないことです
こちらは即座に間違いを指摘してさしあげました
ゴネる要素は何処にもないはずなのにあなたはゴネています
ここまでくると頭がおかしくていらっしゃるということしかできません

72 名前:デフォルトの名無しさん mailto:sage [2016/08/23(火) 13:47:41.11 ID:ksfCp0yK.net]
後出し質問者vs似非エスパー回答者

73 名前:デフォルトの名無しさん [2016/08/23(火) 14:12:56.77 ID:IvwXbhOy.net]
>>68
指摘じゃねえよ、後出し注文だクズ

74 名前:デフォルトの名無しさん [2016/08/23(火) 14:21:52.19 ID:qBPZWzjH.net]
間違いを指摘されて悔しいのは理解できます
でもこちらがコンパイラの話を出していないのにコンパイラの話に決めつけるのはあまりに不自然で愚かしいです

75 名前:デフォルトの名無しさん [2016/08/23(火) 14:37:43.79 ID:IvwXbhOy.net]
>>71
おまえは可能かと聞いたんだ
コンパイラ持ってないやつは自動的に不可能だろうが
おまえの中ではそれが不自然らしいなゴミ

76 名前:デフォルトの名無しさん [2016/08/23(火) 14:51:18.14 ID:qBPZWzjH.net]
コンパイラの話をしてないのにコンパイラの話と決めつけるのは不自然です
コンパイラの話をしてないのだからコンパイラに依存する話ではないと判断するのは自然です
この程度の判断もできないのはちょっと困りますね

指摘してあげたのに間違いを認めず人のせいにするのはもっと困ります

77 名前:デフォルトの名無しさん [2016/08/23(火) 15:00:09.95 ID:F2Uig/g+.net]
.   | 
.\   /       ____     , -‐……‐--. . . 、           \  |  /
\     /    /. : : : : : : : :ヽ-‐.: :_;. --- .._: : : : : : : :\       \      /
_  も  _  /, -‐==ミ: : : : _,ィニ-‐……ー-: 、`ヽ、: : : : ヽ、      _  争   _
_  っ  _     . .:´: : : : : : : ≠:7: : : : : : : : : : : : :ヽ、 ヽ| : i : : :,   _   え  _
_  と   _   /.: : : : -‐: :7´: : /:,ハ : : : :ヽ : : : ゝ-- :\ | : :! : : : ,  _   :  _
_ .争  _ /, -‐/.: : : : :i : : /ィ:爪: : :\ :\ : : :\: : :`ト : !: : : :′   _  :  _
   え    〃 /. : : : : : : |.:イ :ハ:| \: .、\: : xィ¬ト、: :| : : ! : : : : :,        
/  :   \ /:.: :/.: : : : /l : |/Гト、      / |_,ノ0:::ヽ : : :i : : : :     /      \
 / |  \.| .:/.:/. : : :i: i : | |ノ0:::ト :::::::::::::   |: :∩::::::ト: : : !: : : : : : :,   /  |  \
       ∨i: |: : : : |: :ヽ| |::∩::| ::::::::::::::::  !.::∪::::::| |: : :i : : : : : :        ,ィ /〉
         |: |: : i : :', : |  |::∪::| ::::::::::::::::  !: : : : : :||: : i : : : : : : :     / レ厶イ
          ヽハ: : :、: :ヽ|  l : : : |:::::  ,  ::::└――┘ ! : : i : : : : : : :    /   ⊂ニ、
           い、: :\/   ̄ ̄                 ', : : i : : : : : : : : , -‐'   ⊂ニ,´
  r 、  _       ヽ: :〈        <  ̄ フ         |: : : ! :: : : :,.-‐T _,. -‐'´ ̄
  くヾ; U|       | : \                   /| : : :i : :: :_, ‐' |  /
 r―'   ヽ        | : : : \               イ: : :| : : :i_,.-‐   |/
  `つ _ ̄ ̄Τ`ー-- L: : : : : `: : . . .  __    .:〔: : :|: : :r┬'       |

78 名前:デフォルトの名無しさん [2016/08/23(火) 15:01:58.06 ID:IvwXbhOy.net]
おまえの中ではの話にすぎない
後出し注文が通らなくて困るのは俺にゃ関係ない



79 名前:デフォルトの名無しさん [2016/08/23(火) 15:05:26.92 ID:F2Uig/g+.net]
.   | 
.\   /       ____     , -‐……‐--. . . 、           \  |  /
\     /    /. : : : : : : : :ヽ-‐.: :_;. --- .._: : : : : : : :\       \      /
_  も  _  /, -‐==ミ: : : : _,ィニ-‐……ー-: 、`ヽ、: : : : ヽ、      _  争   _
_  っ  _     . .:´: : : : : : : ≠:7: : : : : : : : : : : : :ヽ、 ヽ| : i : : :,   _   え  _
_  と   _   /.: : : : -‐: :7´: : /:,ハ : : : :ヽ : : : ゝ-- :\ | : :! : : : ,  _   :  _
_ .争  _ /, -‐/.: : : : :i : : /ィ:爪: : :\ :\ : : :\: : :`ト : !: : : :′   _  :  _
   え    〃 /. : : : : : : |.:イ :ハ:| \: .、\: : xィ¬ト、: :| : : ! : : : : :,        
/  :   \ /:.: :/.: : : : /l : |/Гト、      / |_,ノ0:::ヽ : : :i : : : :     /      \
 / |  \.| .:/.:/. : : :i: i : | |ノ0:::ト :::::::::::::   |: :∩::::::ト: : : !: : : : : : :,   /  |  \
       ∨i: |: : : : |: :ヽ| |::∩::| ::::::::::::::::  !.::∪::::::| |: : :i : : : : : :        ,ィ /〉
         |: |: : i : :', : |  |::∪::| ::::::::::::::::  !: : : : : :||: : i : : : : : : :     / レ厶イ
          ヽハ: : :、: :ヽ|  l : : : |:::::  ,  ::::└――┘ ! : : i : : : : : : :    /   ⊂ニ、
           い、: :\/   ̄ ̄                 ', : : i : : : : : : : : , -‐'   ⊂ニ,´
  r 、  _       ヽ: :〈        <  ̄ フ         |: : : ! :: : : :,.-‐T _,. -‐'´ ̄
  くヾ; U|       | : \                   /| : : :i : :: :_, ‐' |  /
 r―'   ヽ        | : : : \               イ: : :| : : :i_,.-‐   |/
  `つ _ ̄ ̄Τ`ー-- L: : : : : `: : . . .  __    .:〔: : :|: : :r┬'       |

80 名前:デフォルトの名無しさん [2016/08/23(火) 15:07:26.73 ID:qBPZWzjH.net]
勝手にコンパイラの話にされた挙句
逆ギレして人のせいにされて困ってます
こういう横暴は控えるのが常識的な人間の態度かと存じます

81 名前:デフォルトの名無しさん [2016/08/23(火) 15:16:57.13 ID:F2Uig/g+.net]
.   | 
.\   /       ____     , -‐……‐--. . . 、           \  |  /
\     /    /. : : : : : : : :ヽ-‐.: :_;. --- .._: : : : : : : :\       \      /
_  も  _  /, -‐==ミ: : : : _,ィニ-‐……ー-: 、`ヽ、: : : : ヽ、      _  争   _
_  っ  _     . .:´: : : : : : : ≠:7: : : : : : : : : : : : :ヽ、 ヽ| : i : : :,   _   え  _
_  と   _   /.: : : : -‐: :7´: : /:,ハ : : : :ヽ : : : ゝ-- :\ | : :! : : : ,  _   :  _
_ .争  _ /, -‐/.: : : : :i : : /ィ:爪: : :\ :\ : : :\: : :`ト : !: : : :′   _  :  _
   え    〃 /. : : : : : : |.:イ :ハ:| \: .、\: : xィ¬ト、: :| : : ! : : : : :,        
/  :   \ /:.: :/.: : : : /l : |/Гト、      / |_,ノ0:::ヽ : : :i : : : :     /      \
 / |  \.| .:/.:/. : : :i: i : | |ノ0:::ト :::::::::::::   |: :∩::::::ト: : : !: : : : : : :,   /  |  \
       ∨i: |: : : : |: :ヽ| |::∩::| ::::::::::::::::  !.::∪::::::| |: : :i : : : : : :        ,ィ /〉
         |: |: : i : :', : |  |::∪::| ::::::::::::::::  !: : : : : :||: : i : : : : : : :     / レ厶イ
          ヽハ: : :、: :ヽ|  l : : : |:::::  ,  ::::└――┘ ! : : i : : : : : : :    /   ⊂ニ、
           い、: :\/   ̄ ̄                 ', : : i : : : : : : : : , -‐'   ⊂ニ,´
  r 、  _       ヽ: :〈        <  ̄ フ         |: : : ! :: : : :,.-‐T _,. -‐'´ ̄
  くヾ; U|       | : \                   /| : : :i : :: :_, ‐' |  /
 r―'   ヽ        | : : : \               イ: : :| : : :i_,.-‐   |/
  `つ _ ̄ ̄Τ`ー-- L: : : : : `: : . . .  __    .:〔: : :|: : :r┬'       |

82 名前:デフォルトの名無しさん [2016/08/23(火) 15:24:57.18 ID:IvwXbhOy.net]
だから勝手に困ってろよ
そんな個人的なことを発表にくるな

同情を引きたくて衆目の前でメソメソ泣いてるのと同じだぜおまえ

83 名前:デフォルトの名無しさん [2016/08/23(火) 15:34:23.25 ID:qBPZWzjH.net]
勝手な勘違いで赤っ恥をかいたことを認めたくので
人に責任を押し付けてるわけですね
それは人間として最もみっともない行為ですよ

84 名前:デフォルトの名無しさん [2016/08/23(火) 17:15:01.76 ID:IvwXbhOy.net]
やーい、困る困ると連呼してたのが止まったw

85 名前:デフォルトの名無しさん mailto:sage [2016/08/23(火) 17:57:59.23 ID:nfi0AMZ6.net]
ID:qBPZWzjHは安定だな。討論で闘うポイントを抑えている。
ID:IvwXbhOyは潜在的にオツムが弱いタイプ

86 名前:デフォルトの名無しさん [2016/08/23(火) 18:03:38.77 ID:82e1JvbW.net]
どっちも迷惑なタイプ
普通に質問すら出来ないバカと
最初の質問からそれを読み取ってスルーしないバカ

87 名前:デフォルトの名無しさん mailto:sage [2016/08/23(火) 18:06:03.61 ID:HFGMYFIt.net]
昼間ずっとやっているとか手に負えんな

>>82
C++に関係ないディベートやるスレじゃねぇよ

88 名前:デフォルトの名無しさん mailto:sage [2016/08/23(火) 18:11:19.74 ID:nfi0AMZ6.net]
<まっとうな者同士の会話>
このように指定する事は可能ですか
 ↓
やってみたらどうなんだ
 ↓
すでにやりました 規格的にどうかと聞いているんです
 ↓
あ、そうなの。失礼

<キチガイとの会話>
このように指定する事は可能ですか
 ↓
やってみたらどうなんだ
 ↓
すでにやりました 規格的にどうかと聞いているんです
 ↓
規格でどうたらは今はじめて言ったんだろうが
無駄に答えさせたの謝ってからにしろ ぼけ
後出し注文だクズ



89 名前:デフォルトの名無しさん [2016/08/23(火) 18:13:49.00 ID:IvwXbhOy.net]
>>82
ありがとよ
俺がオツムが弱いのは事実なので別にいいし
それでもディベテクで誤魔化せる問題じゃなかったわけだ

90 名前:デフォルトの名無しさん [2016/08/23(火) 18:15:21.36 ID:IvwXbhOy.net]
>>85
聞いてるんですという嘘が許せねえんだよ
聞きたいんですだろ

91 名前:デフォルトの名無しさん [2016/08/23(火) 18:35:19.51 ID:sEUAXxwa.net]
>>40
アホか?
プログラミング言語の仕様書は形式言語で、書く事が出来る事は厳密に定義してるわ

92 名前:デフォルトの名無しさん mailto:sage [2016/08/23(火) 18:43:08.31 ID:nfi0AMZ6.net]
そうか?
例えば8章だけだとコンストラクターはをvoid hoge (){}と書けそうだけど、
実際は12.1を読むとvoidが書けないことがわかるだろ。
局所的に8章だけ見てわかるだろ というのは変だと思うのだが。
特にC++は規格の3,7,8,9,12章をくまなく読んで確認しないと安心出来ない

93 名前:デフォルトの名無しさん [2016/08/23(火) 21:17:04.88 ID:PDPzOw0b.net]
ラムダ式を関数に渡す場合はテンプレートで受け取るしかないのか?

94 名前:デフォルトの名無しさん mailto:sage [2016/08/23(火) 21:34:59.86 ID:fXfboly6.net]
ディベートはC++でプログラムする

95 名前:デフォルトの名無しさん mailto:sage [2016/08/23(火) 21:41:26.18 ID:1HCV3l6R.net]
>>90
std::function

96 名前:デフォルトの名無しさん mailto:sage [2016/08/23(火) 23:08:28.87 ID:nDdy5zri.net]
>>92
いい加減な回答だな・・・
ラムダ式の型はコンパイラにしかわからないのに、なぜstd::function にコピーしてもいいのか?

97 名前:デフォルトの名無しさん mailto:sage [2016/08/23(火) 23:25:19.49 ID:2deJIJdD.net]
同じシグネチャの関数ポインタの型にも渡せる

98 名前:デフォルトの名無しさん mailto:sage [2016/08/23(火) 23:46:30.82 ID:y4gmj8NB.net]
キャプチャがなければね



99 名前:デフォルトの名無しさん mailto:sage [2016/08/23(火) 23:49:50.40 ID:nDdy5zri.net]
>>94
auto lmd = [](){};
void (*pf)();
cout << sizeof(lmd) << endl;
cout << sizeof(pf) << endl;

100 名前:デフォルトの名無しさん [2016/08/24(水) 01:27:40.47 ID:e6LV9cko.net]
>>96
何が言いたいんだよ

101 名前:デフォルトの名無しさん mailto:sage [2016/08/24(水) 02:12:05.23 ID:ui+t3Px2.net]
>>96
そりゃあLambdaじゃサイズ違うが、それがなんなんだよ
コミュ障すぎる

102 名前:デフォルトの名無しさん mailto:sage [2016/08/24(水) 02:31:42.60 ID:sRbuKfy8.net]
>>97
>>94,95の無キャプチャのクロージャは関数ポインタへ変換可能だという話に対して
sizeofの大きさが違うから渡せるはずないじゃんという無知からくる間違った『間違いの指摘』だろ

103 名前:デフォルトの名無しさん mailto:sage [2016/08/24(水) 06:29:36.29 ID:dZrohm6h.net]
>>10
A() に explicit 付け忘れとるでよ

104 名前:デフォルトの名無しさん mailto:sage [2016/08/24(水) 08:13:18.11 ID:LiadQQJo.net]
>>93
話を逸らしたところで
>>92>>90の求める答えになっていることに変わりはないぞ。
テンプレートを使用した技法を使っているかどうかじゃやくて
呼ばれる側(ラムダを受け取る側)のシグネチャー固定だからな

105 名前:デフォルトの名無しさん mailto:sage [2016/08/24(水) 08:21:59.06 ID:LiadQQJo.net]
>>100
むしろどうしてこのクラスのA()に付けようと思った?

106 名前:デフォルトの名無しさん [2016/08/24(水) 09:11:35.12 ID:KdH0xAm4.net]
ここってプログラムの依頼とかできますか?

107 名前:デフォルトの名無しさん mailto:sage [2016/08/24(水) 09:14:38.48 ID:zuAyaRZV.net]
質問者のふりをして降ってみれば
喧嘩が始まってプログラムそっちのけになるかも

108 名前:デフォルトの名無しさん [2016/08/24(水) 09:25:41.91 ID:KdH0xAm4.net]
よく見たら上がすでに喧嘩状態でしたね
じゃあ質問させていただきます。
今、ネプリーグのトロッコアドベンチャーを再現しようとしています。
動画のほうは完成しつつあるのですが、肝心の再生技術がありません。
やりたいこととしては
@クイズを5段階の難易度に分けて最初に指定
A本物のように左を選択したら、左用の動画が流れるような仕組みにしたい。
それもキーコマンドか何かで。
➂正解したら次の動画が再生され、失敗したらそこで動画が止まるような仕組み。

プログラム初心者なので、経験のある友人にやらせようかと思っています。
こうしたらいいんじゃね?っていう案をください。お願いします



109 名前:デフォルトの名無しさん mailto:sage [2016/08/24(水) 09:28:02.77 ID:zuAyaRZV.net]
とりあえずC++じゃねえな
C++出できなくないけどやりたくない
つまりスレチ

110 名前:デフォルトの名無しさん [2016/08/24(水) 09:28:58.95 ID:KdH0xAm4.net]
了解です。ありがとうございます

111 名前:デフォルトの名無しさん [2016/08/24(水) 14:56:32.59 ID:NR8vORkc.net]
>>96
ちょっと楽しめた
cout << sizeof(&decltype(lmd)::operator()) << endl;
cout << sizeof((void(*)())lmd) << endl;

112 名前:デフォルトの名無しさん mailto:sage [2016/08/24(水) 21:03:17.24 ID:09YX4k7p.net]
>>105
OpenCV使え

113 名前:デフォルトの名無しさん [2016/08/24(水) 21:42:42.82 ID:KdH0xAm4.net]
>>109
なるほど、公開されているプログラム?の中に似たようなものがあるということですね。
探してみますありがとうございます。

114 名前:デフォルトの名無しさん mailto:sage [2016/08/24(水) 23:56:13.09 ID:SbVNGFmk.net]
初めてboostで通信プログラム書くんだけれど、

void hpge()
{
boost::asio::ip::tcp::socket *sock;
boost::asio::io_service *service;

service = new io_service();
sock = new ip::tcp::socket(*service);

ip::tcp::acceptor acc(*service, ip::tcp::endpoint(ip::tcp::v4(), 2000));
acc.accept(*sock);

// 適当に送信
{
unsigned int a = 1234;
char b[4];
memcpy_s(b, 4, &a, 4);
sock->send(boost::asio::buffer(b));
}

delete sock; // (´・ω・`)はぁ?
}

なんでソケットがclose()やdeleteされないと送信が完了しないのか訳が分からない……
送受信のたびに毎回コネクトし直せとかそんな馬鹿げた仕様なわけあるまいし、どうやって使うもんなんですこれは?

115 名前:デフォルトの名無しさん mailto:sage [2016/08/25(木) 00:06:36.64 ID:fxoWtzfY.net]
あっ、あとwinsockとか根本的に通信手段を変えろってダメなんです
具体的にはJVMTIでJVMを監視して、その情報を通信で飛ばしたい
その環境でwinsock使ったらそもそもコネクトすら出来んかった

116 名前:デフォルトの名無しさん [2016/08/25(木) 00:13:11.38 ID:HcIHj1Mt.net]
>>111
サンプルぐらい読めよ

117 名前:デフォルトの名無しさん mailto:sage [2016/08/25(木) 00:32:47.51 ID:wUu3TQ4N.net]
挙動に疑問があればまず公式資料で仕様を調べるだろ
ttp://www.boost.org/doc/libs/1_61_0/doc/html/boost_asio/reference/basic_stream_socket/send/overload1.html
> Remarks
> The send operation may not transmit all of the data to the peer. Consider using the write function if you need to ensure that all data is written before the blocking operation completes.

118 名前:デフォルトの名無しさん [2016/08/25(木) 00:37:54.17 ID:HcIHj1Mt.net]
これが一番簡単な例な

www.boost.org/doc/libs/1_61_0/doc/html/boost_asio/example/cpp11/echo/blocking_tcp_echo_client.cpp

あと、関係ないけど無意味にnewしてる所とかもうちょい基本的なC++の使い方学んだ方がいい気がする



119 名前:デフォルトの名無しさん mailto:sage [2016/08/25(木) 00:47:16.73 ID:aAEQc8xp.net]
通信クラスだけは何故か必ずnewする奴いるわ

120 名前:デフォルトの名無しさん mailto:sage [2016/08/25(木) 02:46:19.92 ID:fxoWtzfY.net]
ありがとうwriteでやってみたらいけそうな気がした
まだなんか挙動が怪しいけれど

newしてるのは自分で定義した通信専用クラス的なのにメンバとしてソケットを持たせようとしてるからなんだ
質問のソースでは1個の関数に収めちゃったけども

121 名前:デフォルトの名無しさん [2016/08/25(木) 03:46:17.43 ID:k3Y9C66L.net]
>>105
openframeworksとか使えば一瞬でできる

122 名前:デフォルトの名無しさん mailto:sage [2016/08/25(木) 04:26:26.59 ID:bqd04CsU.net]
boostなんて使う理由がわからん

123 名前:デフォルトの名無しさん mailto:sage [2016/08/25(木) 08:14:37.95 ID:cZABj4Tc.net]
>その環境でwinsock使ったらそもそもコネクトすら出来んかった
自分のプログラムにバグがあるという発想には至らなかったようだ

124 名前:デフォルトの名無しさん [2016/08/25(木) 09:04:55.17 ID:EwnmxDlV.net]
>newしてるのは自分で定義した通信専用クラス的なのにメンバとしてソケットを持たせようとしてるから
newする理由になってないぞ

125 名前:デフォルトの名無しさん mailto:sage [2016/08/25(木) 10:22:03.81 ID:87TtdhSG.net]
おいあんましいじめるなよ

126 名前:デフォルトの名無しさん mailto:sage [2016/08/25(木) 10:38:13.96 ID:WECz9XA9.net]
newするのは良くないってのはどこかでdeleteしたいときであって、そこを管理しなくていいならどんどんnewすればいい

127 名前:デフォルトの名無しさん mailto:sage [2016/08/25(木) 12:16:43.61 ID:j/BsZXzc.net]
ナマポ使うなスマポ使えっていういつもの布教じゃろ

128 名前:デフォルトの名無しさん [2016/08/25(木) 12:46:06.50 ID:EwnmxDlV.net]
スマポ使う必要もないということも分からんですかそうですか



129 名前:デフォルトの名無しさん mailto:sage [2016/08/25(木) 17:40:44.14 ID:fxoWtzfY.net]
ええ?
じゃあ不勉強なもんでもうひとつ聞きたいんだけれど
class Tsushin
{
private:
boost::asio::ip::tcp::socket *sock;
}
っていうソケットを持ったクラスを作るとして、これをどうやってポインタを使わずに実装できるん?
boost::asio::io_serviceのインスタンスが無いとsocketのインスタンス作れないから、これ以外の方法が分からないんだけれども

130 名前:デフォルトの名無しさん mailto:sage [2016/08/25(木) 17:55:50.29 ID:fxoWtzfY.net]
あっ自己解決しました
メンバイニシャライザっていうんかc++でこの書き方初めて知った

131 名前:デフォルトの名無しさん mailto:sage [2016/08/25(木) 19:43:09.16 ID:cZABj4Tc.net]
一つ前のレスも読めないと

132 名前:
どうしてこのスレはこうも文盲が多いのか
[]
[ここ壊れてます]

133 名前:デフォルトの名無しさん mailto:sage [2016/08/25(木) 20:30:02.71 ID:aAEQc8xp.net]
メンバのクラスはコンストラクタが動かないからポインタで持たせるといいよと言ってる奴は結構いるから困る

134 名前:デフォルトの名無しさん [2016/08/25(木) 20:45:21.63 ID:HcIHj1Mt.net]
>>129
そんなやつ見たことねー

135 名前:デフォルトの名無しさん mailto:sage [2016/08/25(木) 20:54:49.89 ID:dURn6wW4.net]
そんな奴おらへんやろ〜って漫才師、こだまひびきって言うのか。
今ググって分かった

136 名前:デフォルトの名無しさん mailto:sage [2016/08/25(木) 21:19:05.54 ID:aAEQc8xp.net]
>>130
ガチだぞ
うちの会社のソースを見たらみんなポインタで持ってて、上司に何でこんなことをしているのかと聞いたらそうじゃないと使えないからとか返ってきた
しかも暗黙のコーディング規約になっているらしく初期化リストを使おうとしたら変な文法使うのやめてとか言い始めた

137 名前:デフォルトの名無しさん mailto:sage [2016/08/25(木) 21:41:30.58 ID:Auzyp/YA.net]
c++書いちゃいけないレベルの奴が無理して書いてると一瞬でコードが負債化するな
こんな職場少なくないんだろうな
おとなしくゆとり向けのjavaかc#にしときゃいいのに

138 名前:デフォルトの名無しさん [2016/08/25(木) 21:49:20.87 ID:gyF7bTdS.net]
>>132
おまおれ・・・つーか、もしかして知り合い?



139 名前:デフォルトの名無しさん mailto:sage [2016/08/25(木) 21:50:34.75 ID:rkw+skCq.net]
怖いな
もちろんスマポも禁止でデストラクタでデリートしているのだろうな。

140 名前:デフォルトの名無しさん mailto:sage [2016/08/25(木) 22:02:34.44 ID:sWxqL1bB.net]
コンストラクタで代入しているのはまだカワイイもんで、K&RのCとC++の区別すらついてないのがゴロゴロいるよ

固定長配列しか使えない
構造体、配列をmemsetで初期化
algorithmヘッダの関数を知らない
全部forでぐーるぐる
Cスタイルのキャストしか知らない
引数のconst参照渡しを知らない
コードにconstが一切出てこない
変数は関数の頭でまとめて宣言

141 名前:デフォルトの名無しさん mailto:sage [2016/08/25(木) 23:01:19.36 ID:aAEQc8xp.net]
STL(標準ライブラリ全てのこと)は使わないでねと言われる、しかしMFCは使う
1人だけVS6.0を使っている
新しいバージョン使いましょうと言ったら、内部で新しいライブラリが読み込まれているかもしれないからバグが怖いと言って拒否される
君の書いたコードがコンパイルできないんだけどと言うから見に行ったら、古い仕様でfor文内の変数宣言が重複宣言扱いになってるせいだったが、これおかしくない?変数はfor文の外で宣言しないとダメだよとアドバイスされた
Gitは使いたくないらしく共有フォルダにzipで置いておかないと成果物として認められない
その処理は標準ライブラリで簡単にできると言っても使わなくてもできるでしょとと言って自力でやろうとする
GUIのクラスに様々な処理をべったりと書く
それぞれを部品と見なしてもっと抽象化するように書くと良いですよと説得しようとしたら理屈はいいからと言って一蹴される
C#に移行する案が出ると俺に勉強しろというのかと言って腹を立てる

142 名前:デフォルトの名無しさん mailto:sage [2016/08/25(木) 23:08:56.49 ID:bqd04CsU.net]
stlおせーからな
そうりゃそうだろ
内もつかわねーよ

143 名前:デフォルトの名無しさん mailto:sage [2016/08/25(木) 23:13:44.51 ID:i0nCiEhg.net]
え?

144 名前:デフォルトの名無しさん mailto:sage [2016/08/25(木) 23:14:18.40 ID:i0nCiEhg.net]
凡人がSTLの開発効率と速度を超えるのは容易ではないと思うんだが。

145 名前:デフォルトの名無しさん mailto:sage [2016/08/25(木) 23:30:57.44 ID:sWxqL1bB.net]
「STLが遅い」という人はほとんどの場合
「デバッグビルド時になんか知らんけどvectorが生配列に比べて遅い」
という意味でおっしゃっています

146 名前:デフォルトの名無しさん mailto:sage [2016/08/25(木) 23:32:50.42 ID:aAEQc8xp.net]
>boostなんて使う理由がわからん
>stlおせーからな
自信過剰なのか使い方がわからないのか

147 名前:デフォルトの名無しさん mailto:sage [2016/08/25(木) 23:39:01.25 ID:bqd04CsU.net]
>>140
STLのソースみてみろよ
アルゴリズムなんて偉そうに言ってるわりには単にループしてるだけじゃんw

148 名前:デフォルトの名無しさん mailto:sage [2016/08/25(木) 23:43:44.66 ID:i0nCiEhg.net]
>>143
ループがアルゴリズムじゃなかったらなんなんだ?
STLのすごいところは手続きの一本化だと思ってるが。



149 名前:デフォルトの名無しさん mailto:sage [2016/08/26(金) 00:00:25.29 ID:5SQKnTXv.net]
STLってがっかりしているポーズに見える

150 名前:デフォルトの名無しさん mailto:sage [2016/08/26(金) 00:00:26.86 ID:zzW4nWtw.net]
テクい実装をすることや複雑な問題を解くことだけがすごいことらしい

151 名前:デフォルトの名無しさん mailto:sage [2016/08/26(金) 00:14:11.18 ID:XypgEzC7.net]
count_if
なんてループで回して、比較してるだけじゃん
数十秒でかける処理をわけのわからんライブラリを使う理由がわからん

152 名前:デフォルトの名無しさん mailto:sage [2016/08/26(金) 00:16:33.63 ID:mRE0T9bN.net]
>>147
訳が分かってないだけだ。
共通理解というものを重視しないんだなぁ。いやすぎ。

153 名前:デフォルトの名無しさん mailto:sage [2016/08/26(金) 00:21:54.93 ID:0ZeIadI8.net]
>>147
標準ライブラリをわけのわからん呼ばわりするのは流石に笑う

printfはわけがわかるの?
atoiは?

標準ライブラリの使い方すら知らない人間が書いた関数はわけがわからんから使いたくないなぁ

154 名前:デフォルトの名無しさん mailto:sage [2016/08/26(金) 00:21:58.15 ID:zzW4nWtw.net]
C++が使えるというのは標準ライブラリも知っているということでもあるからな
誰が見ても一行で何をしているか分かるということが重要だ

155 名前:デフォルトの名無しさん mailto:sage [2016/08/26(金) 00:25:24.95 ID:XypgEzC7.net]
おまえらわけわか

156 名前:デフォルトの名無しさん mailto:sage [2016/08/26(金) 00:29:45.40 ID:mRE0T9bN.net]
>>151
こっちから見ればなんで素養のわからんあんたのコードつかわにゃならんのだ。ってこと。
関数名見れば機能はわかるということを破棄してるあんたと仕事したくない。
共通理解って言葉が理解できないって恐ろしいことだ。

157 名前:デフォルトの名無しさん [2016/08/26(金) 01:02:45.66 ID:s3V0ZpLS.net]
無駄に長くて読みにくいコード書いてそう

158 名前:デフォルトの名無しさん mailto:sage [2016/08/26(金) 02:10:25.32 ID:jGd0g2RH.net]
コピペしまくりのコードとかまとめろってかんじ



159 名前:デフォルトの名無しさん mailto:sage [2016/08/26(金) 02:40:37.07 ID:mRE0T9bN.net]
多分、>>152みて職場で無関係な奴に当たり散らすんだぜ。
盲目って怖い。

160 名前:デフォルトの名無しさん mailto:sage [2016/08/26(金) 06:15:21.48 ID:9s6WK35L.net]
>>129
そんなこと言うお前はもちろん
メンバー初期化の順番が何によって決まるのかを
調べずに言えるんだろうな?

161 名前:デフォルトの名無しさん [2016/08/26(金) 06:18:57.25 ID:zQpNEvET.net]
age

162 名前:デフォルトの名無しさん mailto:sage [2016/08/26(金) 08:41:47.22 ID:G0uj5hQB.net]
>>156
あたかも自分は知ってるって感じのものの言い方だなw

163 名前:デフォルトの名無しさん mailto:sage [2016/08/26(金) 08:51:08.73 ID:Xz0onrQ7.net]
クイズ好きだね

164 名前:デフォルトの名無しさん mailto:sage [2016/08/26(金) 08:52:16.33 ID:zYo2bKWf.net]
まあゴテゴテに凝ったフレームを使うより単純な自分実装のが
良いこともあるわな。
釘打つのに巨大ハンマーは必要ないってこともある。

165 名前:デフォルトの名無しさん mailto:sage [2016/08/26(金) 09:42:17.11 ID:3Yp6hByU.net]
std::使っておけばドキュメンテーション楽じゃん、とは思わないのかね?

166 名前:デフォルトの名無しさん [2016/08/26(金) 09:44:55.75 ID:ZYJ50bjn.net]
標準ライブラリは巨大ハンマーと言うよりは、ネジとか家庭用電源差込口とかに近い、まさに規格化された共通部品じゃないかと思うんだけどな。

167 名前:デフォルトの名無しさん mailto:sage [2016/08/26(金) 09:54:56.48 ID:+34Dv1b8.net]
自分実装のはずなのに、半年1年後
「誰だよこれやったのは?」って言いたくなる

168 名前:デフォルトの名無しさん mailto:sage [2016/08/26(金) 09:57:17.75 ID:G0uj5hQB.net]
速いならいいがな
遅いのにあえてSTLを使う理由がわからん



169 名前:デフォルトの名無しさん mailto:sage [2016/08/26(金) 09:58:29.62 ID:3eEs1ucA.net]
iostreamみたいなウンコ大作がネジとか何の冗談

170 名前:デフォルトの名無しさん mailto:sage [2016/08/26(金) 10:00:15.98 ID:3eEs1ucA.net]
ああ、screwedにかけたのかw

171 名前:デフォルトの名無しさん mailto:sage [2016/08/26(金) 10:01:25.74 ID:3Yp6hByU.net]
速いのがいいならsproutでも使えば

172 名前:デフォルトの名無しさん [2016/08/26(金) 10:11:56.38 ID:ZYJ50bjn.net]
別に標準ライブラリと同じインタフェースにしといてくれれば、あとは勝手にしてくれていいんやで。

173 名前:デフォルトの名無しさん [2016/08/26(金) 10:14:12.77 ID:ZYJ50bjn.net]
あと、標準ライブラリといったらiostremって発想もどうかと思う。
まあ、一番叩きやすいってのは確かだし、俺自身も使ってるないから擁護もできないのだけれども。

174 名前:デフォルトの名無しさん [2016/08/26(金) 10:16:18.07 ID:ZYJ50bjn.net]
iostreamは確かに使いにくい。
あれならprintf使うのも仕方ない…

175 名前:デフォルトの名無しさん mailto:sage [2016/08/26(金) 10:22:03.58 ID:JmjWOqaY.net]
printf > boost::format >>>>>>超えられない壁>>>>>> iostream

176 名前:デフォルトの名無しさん [2016/08/26(金) 11:08:04.55 ID:R92D0kaL.net]
なぜいつまでたってもフォーマットを指定してstd::stringにするライブラリが標準入りしないのか

177 名前:デフォルトの名無しさん mailto:sage [2016/08/26(金) 11:12:41.32 ID:mRE0T9bN.net]
putfって止まってるの?

178 名前:デフォルトの名無しさん mailto:sage [2016/08/26(金) 12:40:42.69 ID:3eEs1ucA.net]
>>172
モウロクしたハゲがiostreamを否定されて屈辱的だとかスネちゃうからだろ



179 名前:デフォルトの名無しさん mailto:sage [2016/08/26(金) 12:59:54.61 ID:3Yp6hByU.net]
>>174
「侮辱的だ」と繰り返すばかり

180 名前:デフォルトの名無しさん [2016/08/26(金) 13:16:58.62 ID:R92D0kaL.net]
streamの何も考えずガンガン流し込めばいいというスタイルは悪くないと思う
ただ特に標準出力に関してはデータを整形したいケースが多いから噛み合ってない

181 名前:デフォルトの名無しさん mailto:sage [2016/08/26(金) 13:22:39.50 ID:FOeYYSc0.net]
何も考えず?
iostreamってstd::size_tを流し込めること保証されてたっけ

182 名前:デフォルトの名無しさん [2016/08/26(金) 13:28:03.42 ID:XS8ZF2FO.net]
std::cout << std::hex << std::setw(2) << std::setfill('0') << int('A');
printf("%02x", 'A');

183 名前:デフォルトの名無しさん mailto:sage [2016/08/26(金) 18:00:13.51 ID:ZiaxvSyE.net]
https://t.co/wOBgDeY9iG
これわかる人いる?
deleteしたポインタにnullいれてないとおもったんだけど、それではないらしい…

184 名前:デフォルトの名無しさん mailto:sage [2016/08/26(金) 18:10:38.59 ID:PiJ4eTCv.net]
ヌルポチェックの外でメンバ関数呼び出している。

185 名前:デフォルトの名無しさん [2016/08/26(金) 18:21:32.60 ID:RLEpnGOr.net]
>>179
こんな超絶クソコード作る奴の頭がそもそも虫湧いてるので答えなんてないと思うよ
なんだよnewと対になっていないdeleteとか、しかもdeleteの前に無意味なnullチェックしてるし

186 名前:デフォルトの名無しさん [2016/08/26(金) 18:23:08.82 ID:RLEpnGOr.net]
前提条件が曖昧すぎて問題にすらなっていない
マルチスレッド環境なら話にならないコードだし

187 名前:デフォルトの名無しさん mailto:sage [2016/08/26(金) 18:26:56.70 ID:3Yp6hByU.net]
for (auto charactor はfor (auto& charactor でなくていいんだろうか?

188 名前:デフォルトの名無しさん [2016/08/26(金) 18:35:20.55 ID:RLEpnGOr.net]
ViewPortのコンストラクタにnullptrが渡される可能性があるなら
ViewPort::Updateは何もする必要がないのであって、Updateの冒頭でnullチェックしてreturnすればいいだろ
とにかく問題作った奴が馬鹿丸出し過ぎてイライラする



189 名前:デフォルトの名無しさん mailto:sage [2016/08/26(金) 18:36:33.86 ID:ZiaxvSyE.net]
色々思いつくけど >>180 が当たりっぽい
腑に落ちないw

190 名前:デフォルトの名無しさん mailto:sage [2016/08/26(金) 18:52:19.14 ID:wMnlcyg3.net]
rule of three(five)を無視しといてバグとか語るなって感じだが
>>182のいうように想定してる不具合実演のサンプルコードなのか実用コードの一部なのかすら
わからんのではどうにもなあ

191 名前:デフォルトの名無しさん mailto:sage [2016/08/26(金) 20:37:16.13 ID:dDBcLzC2.net]
>>178
これなw
いいかげん、正式な「1byte幅の整数型」が欲しいね。

192 名前:デフォルトの名無しさん mailto:sage [2016/08/26(金) 20:45:01.75 ID:Xz0onrQ7.net]
参考にしたいからお前らの頭の良い実装を見せてくれ
これくらいなら数分で書き直せるだろ

193 名前:デフォルトの名無しさん mailto:sage [2016/08/26(金) 23:13:22.52 ID:mRE0T9bN.net]
>>179
描画完了通知がNullチェックしてない??

>>187
現在策定中。

194 名前:デフォルトの名無しさん [2016/08/27(土) 08:43:16.25 ID:SmFG8gRK.net]
      ク    ク || プ  //
      ス  ク ス  | | │ //
       / ス    | | ッ //   ク   ク  ||. プ  //
       /         //   ス ク ス _ | | │ //
         / ̄ ̄\     /  ス   ─ | | ッ //
       /  _ノ  .\     /         //
       |  ( >)(<)       ___
.        |  ⌒(__人__)     ./ ⌒  ⌒\
        |    ` Y⌒l    /  (>) (<)\
.         |    . 人__ ヽ /  ::::::⌒(__人__)⌒ \
        ヽ         }| | |        ` Y⌒ l__   |
         ヽ    ノ、| | \       人_ ヽ /
.         /^l       / /   ,─l       ヽ \

195 名前:デフォルトの名無しさん mailto:sage [2016/08/27(土) 12:49:21.98 ID:06SnK2FS.net]
>>179
デストラクタでわざわざnull代入するかどうかよりdelete前にnullチェックしていることをつっこもうぜ

196 名前:デフォルトの名無しさん mailto:sage [2016/08/27(土) 13:15:37.85 ID:s3YfawhT.net]
nullptrだったら描画開始しちゃダメなんじゃないの?

197 名前:デフォルトの名無しさん mailto:sage [2016/08/27(土) 21:26:23.95 ID:mslVqKaF.net]
null をdelete しても無視されるから無駄って事かな

198 名前:デフォルトの名無しさん mailto:sage [2016/08/27(土) 22:04:43.54 ID:sEFObQol.net]
>>189
ソースは?



199 名前:デフォルトの名無しさん mailto:sage [2016/08/27(土) 22:19:45.68 ID:nxWT+PHC.net]
あってもなくても動作に影響しないものがあってもそこはバグとはいわないだろう

200 名前:デフォルトの名無しさん [2016/08/27(土) 22:42:36.92 ID:OFUg9SIZ.net]
バグとは言われないがゴミコードとは言われるだろう。

201 名前:デフォルトの名無しさん mailto:sage [2016/08/28(日) 01:03:52.09 ID:IZ16EciY.net]
>>194
https://cpplover.blogspot.jp/
上経由で知ったが、
www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0257r1.pdf
これだと思う。

202 名前:デフォルトの名無しさん [2016/08/28(日) 01:09:59.02 ID:3Myecdh+.net]
delete前のnullptrチェックなあ
assertならわかるんだけどね

203 名前:デフォルトの名無しさん mailto:sage [2016/08/28(日) 01:19:06.19 ID:jX9FVgVh.net]
お前らが理想のコードに書き直してくれるのを待ってるんだが

204 名前:デフォルトの名無しさん mailto:sage [2016/08/28(日) 01:37:02.68 ID:qNvxLYrv.net]
お前らが知ったかぶりばかりなのが分かった。
別にdelete前にnullチェックするのは悪いことではないし、
newと対になってないdeleteとかも指摘としては噴飯もの。
まああえて言えばdelete後にnull代入しておくべきだが。

問題はforeachでautoになってるところだろ。
これだとvector内の要素ではなく、そのコピーに対して操作してることになる。
明らかに意図していない動作だろう。

205 名前:デフォルトの名無しさん mailto:sage [2016/08/28(日) 01:39:40.85 ID:IZ16EciY.net]
バグは1つではない説。

206 名前:デフォルトの名無しさん mailto:sage [2016/08/28(日) 01:39:43.61 ID:60yVMOKI.net]
>そのコピーに対して操作してることになる。
あの超絶クソコードの中では一番どうでもいい点だな

207 名前:デフォルトの名無しさん mailto:sage [2016/08/28(日) 01:41:06.73 ID:qNvxLYrv.net]
他のはバグの温床にはなりえても、あのコードだけではバグとは言えない。
お前ら学校のテストの問題とかでもケチつけてたタイプだろ?w

208 名前:デフォルトの名無しさん mailto:sage [2016/08/28(日) 01:45:52.06 ID:7bU6M/B0.net]
>>200
デストラクタ内でのdelete後にnullptrいれるのって何かメリットあるの?
通常の関数なら二重delete防止のためというのは分かるんだけど
デストラクタは複数回呼ばれないよね?



209 名前:デフォルトの名無しさん mailto:sage [2016/08/28(日) 01:50:09.68 ID:qNvxLYrv.net]
>>204
デストラクタ以外のどこか別の場所でdeleteされる可能性があるからだろう。
viewObjは外から渡された変数だから、知らないところでdeleteされてる可能性もある。
そのための防止だね。徹底するならデストラクタ内でもちゃんとnull代入しなきゃだめだけど。

210 名前:デフォルトの名無しさん mailto:sage [2016/08/28(日) 01:52:56.61 ID:60yVMOKI.net]
>>199
甘えてんじゃねーよこのウンコ量産野郎

211 名前:デフォルトの名無しさん mailto:sage [2016/08/28(日) 01:53:52.21 ID:7bU6M/B0.net]
>>205
なるほど
この問題の場合はそうですね

212 名前:デフォルトの名無しさん mailto:sage [2016/08/28(日) 01:54:04.96 ID:60yVMOKI.net]
>>205
バカですか?

213 名前:デフォルトの名無しさん mailto:sage [2016/08/28(日) 01:54:21.49 ID:lPJVAstL.net]
>>205
別の場所でdeleteされてる可能性があるとするなら、null代入があってもなくてもダメでしょ?
何言ってんの?

214 名前:デフォルトの名無しさん mailto:sage [2016/08/28(日) 01:55:42.67 ID:60yVMOKI.net]
デストラクタ以外のどこか別の場所でdeleteされてたなんてキチガイじみた状況に
nullチェックが役に立つとかどういう頭してんだよ

215 名前:デフォルトの名無しさん mailto:sage [2016/08/28(日) 01:55:50.77 ID:qNvxLYrv.net]
>>209
ごめん。一定レベル未満の人には回答しないことにする。
そこまでは面倒見切れん。

216 名前:デフォルトの名無しさん mailto:sage [2016/08/28(日) 01:56:03.58 ID:Ux2eHzia.net]
>>200
描画だけだから状態を変更しない可能性は高いし
vectorにいれてるくらいだからコピーコストは十分に低いんじゃないかと無理矢理

217 名前:デフォルトの名無しさん mailto:sage [2016/08/28(日) 02:00:10.83 ID:qNvxLYrv.net]
>>212
もちろん値型やstringとかならコピーでも問題はないよ。
でも状態を持った型だってしつこいくらいアピールされてるでしょ。
notifyして状態切り替えてうんぬんの箇所はその根拠となるよう書かれたもの。
問題を読めれば難しくはないはず。

218 名前:デフォルトの名無しさん mailto:sage [2016/08/28(日) 02:01:04.63 ID:jX9FVgVh.net]
デストラクタで解放することが分かってるのに他の場所で解放するのはクラスの使用者の責任ではないのか



219 名前:デフォルトの名無しさん mailto:sage [2016/08/28(日) 02:01:08.18 ID:60yVMOKI.net]
こういうバカが次から次に湧いてくるからアプリケーション層ではnewもdeleteも書くなって言ってるの
あの糞コードみたいなnewとdeleteが対になっていないようなのはその設計思想自体がバグであって
論ずる必要などはなく、こういうことやるバカは速やかにプロジェクトから排除するべし

220 名前:デフォルトの名無しさん mailto:sage [2016/08/28(日) 02:02:18.11 ID:lPJVAstL.net]
>>205
あ、クラス内の別の場所でdeleteを追加した場合にnull代入が要るって話してんのかな?
それだと>204への答えにはなってないし、>179の「問題」はクラス定義が全部見えてるのに、
コード追加でバグる可能性を考え始めたらきりがないでしょ。

コード変更による多重deleteの心配するなら、他の問題への対処も含めてunique_ptrを使えばいい話しだし。

221 名前:デフォルトの名無しさん mailto:sage [2016/08/28(日) 02:04:40.29 ID:qNvxLYrv.net]
>>216
>>211

222 名前:デフォルトの名無しさん mailto:sage [2016/08/28(日) 02:06:59.88 ID:jX9FVgVh.net]
ここまで1行も無し
やっぱり口だけか
他のフォーラムじゃあり得ないな

223 名前:デフォルトの名無しさん mailto:sage [2016/08/28(日) 02:08:06.28 ID:a4amypBO.net]
最初からnullptrで渡されることがあるんじゃないの
nullptrチェックしても別の場所でdeleteされてるかどうかなんか判断出来なくない?
ポインタのポインタ使って他所でdeleteした時にnullptr入れてるならわかるけど

224 名前:デフォルトの名無しさん mailto:sage [2016/08/28(日) 02:09:26.72 ID:7bU6M/B0.net]
デストラクタ内でdelete&nullptr代入しておけばデストラクタ呼び出し後に
外でdeleteされても大丈夫と理解しました

でも、デストラクタ呼び出しより先に外でdeleteされてnullptrが代入されてない場合はダメですね

225 名前:デフォルトの名無しさん mailto:sage [2016/08/28(日) 02:27:55.51 ID:lPJVAstL.net]
>>220
大丈夫じゃないから、騙されないで。

226 名前:デフォルトの名無しさん mailto:sage [2016/08/28(日) 02:50:59.20 ID:a4amypBO.net]
ポインタがコピーされてるから内部と外部じゃ別物だよ
片方にnullptr代入したってもう片方は変わらない

これnewして直でコンストラクタに入れるんかな
それならコピーでもされない限り外部で消されることは無いけど

227 名前:デフォルトの名無しさん mailto:sage [2016/08/28(日) 02:56:39.81 ID:jX9FVgVh.net]
スマポだって外部でdeleteされることなんか考慮してない
正しい使い方をしない方に全ての責任があるから考慮する必要性がない

228 名前:デフォルトの名無しさん mailto:sage [2016/08/28(日) 03:50:58.71 ID:VK4fyJjM.net]
まさかポインターのコピーがわかってない奴がいようとは驚きだ
それより例外安全が考慮されていないのが気になって仕方ない



229 名前:デフォルトの名無しさん [2016/08/28(日) 03:54:18.30 ID:d5NA/60H.net]
また無意味な部分にツッコミを入れてるのか
バグを見つける為の例題なのであって
完全なコードを示してるわけではないってのが理解できないのかな

230 名前:デフォルトの名無しさん [2016/08/28(日) 04:21:07.87 ID:hSYh5tBq.net]
>>225
簡略化したはずのコードに無意味なnullポインタチェックがあるのはなんでなん?
簡略化する前ですら冗長なのに

231 名前:デフォルトの名無しさん mailto:sage [2016/08/28(日) 06:24:16.40 ID:a4amypBO.net]
速攻指摘されてるじゃん

232 名前:デフォルトの名無しさん mailto:sage [2016/08/28(日) 06:32:42.06 ID:VK4fyJjM.net]
>>226
>>225の理屈だと、矛盾以外の不足は「完全なコードじゃないから」になってしまうらしいから
本当は開始・描画・終了の全てにチェックがあったのを一部省略してるだけだろう

233 名前:デフォルトの名無しさん mailto:sage [2016/08/28(日) 07:20:04.01 ID:ERRoyT16.net]
>>197
論文見たら全てが策定中になっちゃうのかよ
おめでてーな

234 名前:デフォルトの名無しさん [2016/08/28(日) 07:40:09.72 ID:hSYh5tBq.net]
>>228
デストラクタでdeleteする前にviewObjに対してなにかしてるって事?
もしそうならもっと糞コードやん。
viewObj自身で片付けろよと。

235 名前:デフォルトの名無しさん mailto:sage [2016/08/28(日) 07:47:04.27 ID:ERRoyT16.net]
ビューポートがビューを破棄するクソ設計にこれ以上突っ込まないでw

236 名前:デフォルトの名無しさん mailto:sage [2016/08/28(日) 08:20:20.55 ID:lCXt6uga.net]
>>200
>>183

237 名前:デフォルトの名無しさん mailto:sage [2016/08/28(日) 21:30:38.37 ID:NaGSjNyA.net]
質問
実引数が2個以上必要なコンストラクタをexplicitにする意味ってある?

238 名前:デフォルトの名無しさん mailto:sage [2016/08/28(日) 21:34:04.63 ID:NaGSjNyA.net]
自己解決しました。
すみません忘れて



239 名前:デフォルトの名無しさん mailto:sage [2016/08/30(火) 08:09:06.98 ID:ftymYuoJ.net]
ハゲの好きそうなコード
f ( { p1, p2, p3 } ) // explicitだとエラー

240 名前:デフォルトの名無しさん [2016/08/30(火) 15:46:08.79 ID:0Xvfpf4x.net]
ハゲの嫌いなことは、言語に機能を追加すること。
もともとC with classesとか始めた張本人がハゲなんだけど、
まあ今のC++を見てると気持ちはわかるね。

241 名前:デフォルトの名無しさん [2016/08/30(火) 19:30:10.07 ID:0Xvfpf4x.net]
ハゲの論理を、ハゲロンという。
1価の陰イオンとなる第17族元素である。

242 名前:デフォルトの名無しさん mailto:sage [2016/08/30(火) 23:18:33.93 ID:lqTGpbVF.net]
もっと増やせと言いたいところだがこれ以上大きく変えるような機能はあるのか?
C#みたいなプロパティは欲しいけど

243 名前:デフォルトの名無しさん mailto:sage [2016/08/30(火) 23:37:14.11 ID:ocxqe0WR.net]
そんなんtemplateで書けばいいじゃん

244 名前:デフォルトの名無しさん mailto:sage [2016/08/30(火) 23:42:07.71 ID:xMG6EfaL.net]
は?テンプレートでC#のようなプロパティどうやって実現するんだ?

245 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 00:35:52.45 ID:ityOLHmm.net]
それっぽいのは出来なくはなさそうだけど
プロパティの簡潔さには程遠いな

246 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 00:39:34.42 ID:yHeo0PbI.net]
C#を知らんやつにも分かるように説明汁

247 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 01:23:54.91 ID:/ANAyxIk.net]
こんな感じか?
きっちり書くと更に手間かかるな
https://ideone.com/HVRzE1

C#だとこう書ける
https://ideone.com/idjL0A

248 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 01:38:11.88 ID:1fkGDbVO.net]
>>240
> は?テンプレートでC#のようなプロパティどうやって実現するんだ?
今年一の名言だなw



249 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 01:57:19.27 ID:6ukDv4b6.net]
>>243
ダッサ
お前C#のプロパティの便利さ全然理解してないね

250 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 01:59:51.36 ID:j3ifnVdn.net]
何が名言なのかさっぱり分からんのだが
こんな書き方で満足する人いるの?

251 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 02:07:02.38 ID:BDrnIBJY.net]
C++のstd::vector<bool>がクソ扱いされていることを
理解している気配は全く無いな

252 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 02:09:05.10 ID:BDrnIBJY.net]
むしろ今年一の名言は>>211

253 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 02:21:29.37 ID:/ANAyxIk.net]
>>245
アスペ

254 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 02:44:37.65 ID:AgvBQXnk.net]
プロパティって最初に採用されたのはVBっていうかCOMだよね確か。

255 名前:デフォルトの名無しさん [2016/08/31(水) 09:31:40.10 ID:+TzIiYAW.net]
プロパティも欲しいけど簡単に使える部分配列も欲しいな

256 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 09:57:4 ]
[ここ壊れてます]

257 名前:3.27 ID:WLaQrr/5.net mailto: >>243
なんじゃこりゃ。全然違うじゃん。
これをC#のプロパティと思ってるの?
もっと普通のケース(各メンバ変数にgetメソッドとsetメソッド)
で例示してくれよ。
[]
[ここ壊れてます]

258 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 10:03:12.25 ID:WLaQrr/5.net]
こういうコードをC#のプロパティのように
テンプレートで実装する方法を書けっつってるのに、
なんであんなひねくれた例が出てくるんだよw

class employee
{
public:
employee(int id, std::string name);
int GetID();
void SetID(int id);
std::string GetName();
void SetName(std::string name);
private:
int id;
std::string name;
}



259 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 10:03:54.93 ID:sRpVtXPN.net]
ほならね

260 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 10:14:08.99 ID:WLaQrr/5.net]
上のダサい例だとgetterやsetter書くよりコードも複雑化してるじゃねーか。
意味ねーじゃん。

261 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 10:40:08.79 ID:N4JrJ9XH.net]
プロパティやりたいならC++Builder

262 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 11:12:33.68 ID:utsO37AQ.net]
お手本はよ

263 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 11:18:56.64 ID:N4JrJ9XH.net]
こういうコードをC#のプロパティのように
テンプレートで実装する方法を書けっつってるのに、
なんであんなひねくれた例が出てくるんだよw

class employee
{
public:
employee(int id, std::string name);
__property int ID = { read = GetID, write = SetID } ;
__property std::string Name = { read = GetName, write = SetName } ;
private:
int id;
std::string name;
int GetID();
void SetID(int id);
std::string GetName();
void SetName(std::string name);
}

264 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 11:20:17.85 ID:N4JrJ9XH.net]
うわw赤の他人のコメントまでコピペしてしもうたw

class employee
{
public:
employee(int id, std::string name);
__property int ID = { read = GetID, write = SetID } ;
__property std::string Name = { read = GetName, write = SetName } ;
private:
int id;
std::string name;
int GetID();
void SetID(int id);
std::string GetName();
void SetName(std::string name);
}

265 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 11:40:45.52 ID:utsO37AQ.net]
標準で頼む

266 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 11:53:46.21 ID:N4JrJ9XH.net]
標準じゃないけどめっちゃ便利やよ

267 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 12:18:33.24 ID:XvHw9frf.net]
教えてください。

Qt creatorで作成しており、GUIのボタンからwin7の拡大鏡(magnify.exe)を起動したいと思っています。

問題は、shellexecuteやQProcessで実行すると拡大鏡の画面が真っ黒になり適切に使用できません。
キーボードから、winと+のショートカットでで起動すると問題なく起動すると真っ黒になることはないので、これを行いたいです。

そこで、GUIのボタンクリックでキーボードのショートカットを実行するほうほうがあれば教えていただきたいです。
よろしくお願いします

268 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 13:33:26.19 ID:6ukDv4b6.net]
Qtスレに行ってください
echo.2ch.net/test/read.cgi/tech/1438593408/



269 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 14:02:00.01 ID:XvHw9frf.net]
誘導ありがとうございます。

Qt抜きで、c++的には実現できないのでしょうか?

270 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 14:22:32.78 ID:mqymnS7Z.net]
Qt使ったこと無いけど呼び出し時の権限が足りないんじゃないかな

271 名前:デフォルトの名無しさん [2016/08/31(水) 14:25:22.52 ID:utsO37AQ.net]
とりあえずsystem("magnify");して同じ症状なら別の問題

272 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 16:18:18.52 ID:f/lfR+US.net]
プロパティ標準で書いたらこんな感じ?
getを使う時c#にはない()がいるけど
https://ideone.com/BazQ1D

273 名前:デフォルトの名無しさん [2016/08/31(水) 16:56:40.77 ID:/MnV3wL6.net]
リファレンサオブジェクトをpublicデータメンバで持てって?

274 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 17:50:46.05 ID:WLaQrr/5.net]
>>267
合格。絶対にこんなコード書かないけど、
プロパティの要件は一応満たしている。

275 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 18:02:51.48 ID:N4JrJ9XH.net]
vectorとかの配列リファレンサがこんな形だよな

276 名前:デフォルトの名無しさん [2016/08/31(水) 18:55:44.77 ID:gRHWeOr5.net]
ここを見てるとC++のダメさ加減がよくわかる。

277 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 19:41:02.78 ID:YUscqvM8.net]
不要だからコア言語に追加されなかったんだろう

278 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 20:06:57.16 ID:XvHw9frf.net]
>>266のアドバイスで、使い方が間違っていなさそうだったので、違う拡大鏡ソフトを使用することで解決しました



279 名前:デフォルトの名無しさん [2016/08/31(水) 20:41:02.91 ID:+TzIiYAW.net]
プロパティ不要とか苦行かよ

280 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 20:43:28.45 ID:YUscqvM8.net]
プロパティなんてあってもたいして使わない予感

281 名前:デフォルトの名無しさん [2016/08/31(水) 20:54:10.62 ID:/MnV3wL6.net]
実感じゃねえのかよ

282 名前:デフォルトの名無しさん [2016/08/31(水) 20:57:52.91 ID:ntcwlW+6.net]
プロパティ否定してる奴はエアプだってはっきりわかんだね

283 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 21:00:08.58 ID:NSLbELcw.net]
クラス書かないからわかんない。テヘペロ。

284 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 21:32:42.17 ID:viOT3sew.net]
Visual Studioだったら「共通言語ランタイム サポート」を有効にすればプロパティ使えるで(ゲス顔

285 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 21:48:33.01 ID:MERKTov5.net]
C++/CLIは別言語

286 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 21:59:28.02 ID:/ANAyxIk.net]
アクセス制限もいらないからな
余計なことして何が起こっても全て使用者の責任

287 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 22:34:19.56 ID:xAEFTakh.net]
全部グローバル変数にすると便利だよ

288 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 22:57:22.63 ID:YUscqvM8.net]
プロパティよく使うってひとは要するに属性を個別にコントロールすることが多いって事かね?



289 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 23:03:00.58 ID:6ukDv4b6.net]
>>283
そうかもね。設計が下手なんじゃないかな。
もっとも俺もC#ではプロパティ使いまくるけどね。大概のは{get; private set;}だな。

290 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 23:06:47.51 ID:gUL/+EZq.net]
は? 属性を個別にコントロールするのが設計の良し悪しとどう関係するんだ?

「C++で標準でできないことは出来る必要がないから、
 そもそも、やろうとする奴が悪いんだ」みたいな幼稚な思考だったらやめとけよ?
それは宗教だ。

291 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 23:10:36.99 ID:YUscqvM8.net]
>>285
俺は良し悪しは言ってないよ

292 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 23:23:15.94 ID:YUscqvM8.net]
まあ外部に
「このクラスは内部に属性A、属性B、属性Cを持ち、その状態とアクセスを管理します」
みたいな仕様を公開してるクラスだったらプロパティは使いたくなるだろうな。
でもどちらかというとそういうクラスは少ないような気がしたのさ。

293 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 23:36:37.26 ID:mzwgRQN4.net]
そんなほとんど起こらんようなケースについて抽象的な説明されてもよくわからんわ。

294 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 23:45:12.50 ID:YUscqvM8.net]
>>288
何が?

295 名前:デフォルトの名無しさん [2016/08/31(水) 23:51:01.09 ID:/MnV3wL6.net]
>>287
普通にprivateデータメンバじゃん、それ

296 名前:デフォルトの名無しさん mailto:sage [2016/08/31(水) 23:56:32.05 ID:YUscqvM8.net]
>>290
いや、それらの属性を持ってること自体を外部に公開してる。
privateメンバだったらそんなことは内部仕様にしか書かないでしょ。

297 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 00:14:02.16 ID:PJEueDDa.net]
簡潔に

「どんな属性を持ってるか自体を隠蔽するのが普通」

って書けばいいじゃん

298 名前:デフォルトの名無しさん [2016/09/01(木) 00:31:43.23 ID:8Xtys+zE.net]
プロパティって、何が便利なん?
C#はGUI作成程度しか使わない俺的感性だと、setter/getterで十分じゃね?と思うんだが、メリットをトクトクと語ってくれ。



299 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 04:18:24.20 ID:siIxmZ+U.net]
プロパティは
classの実装とインターフェースの分離が容易にします
プログラムの字面の変更なしで
後から小細工ができます
言語仕様に内包されたパッチ機能?w
>>293
十分だと思います
後から改変するとき小細工が出来て便利なのかな?

300 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 06:05:34.36 ID:quvSlm2c.net]
いや、setterとgetterがめんどいからプロパティがあるんでしょw

301 名前:デフォルトの名無しさん [2016/09/01(木) 07:26:09.87 ID:8Xtys+zE.net]
>>295
手間変わらなくね?

302 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 07:37:27.71 ID:d6w4LGKM.net]
>>296
C#のプロパティは超便利で手間が大きく違う
使ってみれば分かるよ
いまだにこんな便利なものが実装されていないJavaはゴミ

303 名前:デフォルトの名無しさん [2016/09/01(木) 08:36:37.64 ID:8Xtys+zE.net]
>>297
いや、使った事あるんだけど…
その上でわからないからトクトクとお願いしてる。

304 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 08:44:04.42 ID:7t+U5xjY.net]
そもそもsetterとgetterが必要なのかって話でしょ

305 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 08:45:24.36 ID:ZAvvKiiS.net]
手間はさほど変わらんと思うけどあとで読んだ時に他のメッセージ転送に埋もれない気はする

306 名前:デフォルトの名無しさん [2016/09/01(木) 08:51:59.38 ID:8Xtys+zE.net]
>>300
ああ、なるほどね。
意味論として、OOのメッセージとプロパティが、C#のメソッドとプロパティに相当するのか。
言われてみれば当然かも。
あざっす。

307 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 09:01:16.42 ID:DsNIQM1p.net]
超便利と書くからワケがわからなくなる
いちいちGetなんちゃらSetなんちゃらと書くよりも既読性が上がる

308 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 09:39:25.12 ID:DsNIQM1p.net]
既読性って何だ?w
可読性だったわw



309 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 09:52:32.53 ID:oseS/uHr.net]
引数0の関数は括弧省略できればいいんじゃないのか

310 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 10:08:05.72 ID:d6w4LGKM.net]
「超便利」が分かって貰えないとか
ほんとにC#のプロパティ使ったことあるんですかねえ(笑)

311 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 11:42:15.33 ID:n+lE1LxE.net]
使えば超便利、だがあまり使わない、って両立するけどな。

312 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 11:57:18.01 ID:f8G6zOLb.net]
listenerに出来るなら便利だけど、単なるsetter,getterじゃなあ

全部メソッドの方が統一感はあると思う。

313 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 12:08:36.30 ID:n+lE1LxE.net]
getter/setter(プロパティに相当するものを含む)を持つクラスと持たないクラスの比率ってどんなもん?
俺は1対5ぐらいだ。
だからあれば便利というのはわかる。

314 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 12:30:21.99 ID:LcnNSect.net]
>>296
手間は結構変わるよ。
まず、getter/setterを普通に定義するのより、
プロパティの方がコード量が単純に減る。
変数名と関数名の一致だとかも考慮しなくていいから、
保守もしやすい。

その上、利用時にはpublicメンバ変数のように使えるから、
呼び出し先のコードもすっきりする。

必須ではないから不要と思うなら使わなければいいけど。
便利機能ってだけだし。

315 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 12:31:26.62 ID:LcnNSect.net]
>>304
それはVBAとかそうだけど、ややこしいからやめてくれw

316 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 12:46:32.26 ID:d6w4LGKM.net]
>>298
単純な話こういうことを言ってるんだけど。。。

JavaやC++の場合
private int x;
public getX(){return x;}
public setX(int val) {x=val;}

C#の場合
public int X {get; set;}

手間は1/3以下になってる
ほんとに使ったことあるの?

317 名前:デフォルトの名無しさん [2016/09/01(木) 13:12:08.94 ID:+q6YP6fM.net]
あんなのが欲しい、こんなのが欲しいと、
みんな口々に勝手なこと言うのを
あれもこれもと言語に取り込む
ということをするかしないかというポリシーは
言語が違えば違って当たり前

C#でどうだからC++もどうせよとか
C#でどうだからJavaはゴミとか
そんなにC#が好きならC#だけ使ってればいい

318 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 13:23:01.35 ID:d6w4LGKM.net]
うるせー(笑)なんだかんだ言っても一番好きなのはC++だよ
高速性が求められる場面ではほぼ唯一の選択肢だし
他の言語に比べて不便なところがあったとしても、かゆいところに手が届く感は最強だし



319 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 13:37:36.32 ID:Zz5UEunk.net]
public変数とgetter/setter付きのprivate変数って何が違うの?

320 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 13:52:30.49 ID:d6w4LGKM.net]
>>314
get/set時にコードが介入できる

321 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 14:51:04.12 ID:nGqVI4Wr.net]
public変数なんか使ったら、まともにプログラミング出来ない。
これは、あり得ない選択

変数は出来るだけ、狭いスコープに閉じ込めるのが基本

322 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 14:52:33.38 ID:3wSPfZnR.net]
>>314
昔見た理屈だと、ゲッターセッターは間に正規化とか突っ込めるからセーフティなんだと。

323 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 15:42:38.63 ID:n+lE1LxE.net]
>>316
上段も下段もそれぞれ正しい

324 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 16:38:25.17 ID:f8G6zOLb.net]
>>314
c++の場合、表記が違うので入れ替えが大変。

325 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 16:52:35.75 ID:oseS/uHr.net]
直接変数に対して入出力してるだけのセッターゲッターでも将来を見越してわざわざ作ってるってことか?

326 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 17:03:57.26 ID:d6w4LGKM.net]
>>320
そういう場合も多いかもしれないけど、.Net環境においてはpublicプロパティにすることによる恩恵は多々ある
例えばDataGridViewに内容を表示するときなど

327 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 18:10:45.91 ID:3cPIMSrP.net]
>>314
public変数じゃ、変更されたタイミングで描画をアップデートするみたいな処理がやりにくくなる
needUpdateViewみたいなフラグをtrueにできるだけでも、getter/setterはあったほうがいい

単なる構造体に近いようなクラスでも、データの不整合を起こさないようにバリデーションが行えるという意味では重要
後から値の範囲を制限したくなるとか、複数の変数間で整合性のとれないケースを排除したくなるということはよくある
例えば、Personクラスが初めは性別と名前しかなかったところを、そこに「父」「母」「息子」「娘」みたいな属性を付けたくなったら、性別女で「父」は弾きたくなる
public変数だったらこれはできないけど、setter経由であればできる
「親」「子」にして性別と合わせて計算すればいいとかいう話があるかもしれんが、余談だがその場合はgetterで男女+親子の属性で「父」とかを取り出すことができるね

328 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 18:27:41.58 ID:zfFV4MMV.net]
getterやsetterの関数呼び出しならまだしも、propertyでファイルアクセスやらネットワークのやら時間かかる処理入れられると嫌な感じ



329 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 18:41:33.44 ID:L3a4bYLC.net]
>>323
それは利用者の予期を裏切るような実装をするなって話であって、
ゲッタセッターならよくてプロパティーではだめだって話じゃないと思うけど

330 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 19:29:54.38 ID:quvSlm2c.net]
>>312
C++も11以降がんがん新しい要素取り入れてるんだから、
今の仕様が絶対的なものじゃないぞ。今の仕様を絶対視するのは宗教だ。

331 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 19:36:30.23 ID:qC9ojyjS.net]
>>322
同性婚の夫婦が養子をとった時に破綻する先見性のない設計ですね w

332 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 19:46:48.63 ID:zfFV4MMV.net]
メンバ変数ぽく使えるより、指示すればgetter,setterを自動生成してくれる方がいいな。

参照とって書き換える関数に渡したらどうなるんだとか考えると、変数っぽく使えるのは混乱招くだけのような。

333 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 20:02:06.91 ID:f8G6zOLb.net]
>>326
不要な汎用化じゃね?
必要になってから修正でいいだろ。

334 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 20:16:20.03 ID:qC9ojyjS.net]
>>328
ネタに突っ込むならもう少し面白いやつ頼むわ

335 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 20:31:55.38 ID:n+lE1LxE.net]
setter/gettrrが要る要らないの話題になるとpublic変数の話題に転びがちだな。
ちょっともにょもにょする。

336 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 20:40:39.28 ID:n+lE1LxE.net]
外部から属性を設定せざるを得ない状況がけっこうあって、なかなかリファクタリングも難しいってことか。

337 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 21:41:16.10 ID:quvSlm2c.net]
>>327
C++でプロパティ導入するなら、getterの戻り値は参照かconst参照のどちらかに制限すれば、
その辺の問題は解決しそう。

338 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 23:31:36.63 ID:kyBhPm5k.net]
そういや、パッと見は普通のフィールド(メンバ変数)なせいで
実行速度とか気にせずに気楽に使ってしまいやすい、なんて弊害も多少あるみたいね。



339 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 23:49:26.27 ID:VuYRfyfh.net]
てかgetter/setterでもプロパティカプセル化が弱くなるから原則使わないのが基本だろ
フラグをプロパティ化してどうのこうのとか言ってるやついたけど、参照透過性なくなって状態遷移図保守の雇用を産みだしてるだけ

340 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 23:55:31.16 ID:quvSlm2c.net]
それはおかしいだろ。メンバ変数を外から操作する必要性は普通にある。
例えばWindowクラスとかどうすんの。メンバ変数変えられないWindowクラスとか欠陥品でしょ。

341 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 23:55:52.32 ID:oRYPM1bK.net]
>>334
言いたいことはわかるが、 外からの属性アクセスをやめたとしても、
実際に内部状態が変化するなら参照透過ではないよな?

342 名前:デフォルトの名無しさん mailto:sage [2016/09/01(木) 23:58:42.81 ID:VuYRfyfh.net]
>>335
お前がWindowクラスを書くのは自由だけど、C++なんだから数値計算ライブラリとかを想定して書けよ

>>336
もちろん

343 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 00:04:47.23 ID:q6GNZ6RD.net]
>>337
否定されてから急に話題を限定し出すってのは一番見苦しいパターンだぞw
素直に間違いを認めろよ。数値解析だっていくらでもそういう事例あるだろ。

344 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 00:23:31.33 ID:dxT5btnL.net]
あるかないかで言えばもちろんあるけど、外部主導の状態コントロールは避けたいので、
設計に時間をかけられるときはhetter/setterは減るだろう、ってだけ。

345 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 00:25:04.39 ID:dxT5btnL.net]
X hetter
〇 getter

346 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 00:32:46.64 ID:wMSGanuZ.net]
C++はプロパティないのでコード書くときは短く済ませたいんで
ゲッターはSize()、
セッターをSetSize()にして
Get省略してる

347 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 00:50:46.08 ID:VaOayOrf.net]
>>341
自分はSetも省略する
たまに引数の関係でできない時もあるけどさ

348 名前:デフォルトの名無しさん [2016/09/02(金) 04:12:21.27 ID:+CUdjKtm.net]
俺はオーバーロードになると関数ポインタとるのが面倒になるからsetぐらいは省略しないな



349 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 04:38:51.30 ID:17n5VyUh.net]
メンバ関数ポインタってほとんど使わないから気にしたことなかった…

350 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 06:31:01.77 ID:96M6CE+e.net]
>>342
ああ、引数の違いを利用すればsetもgetも省略できるのか。

int value(int val); ... メンバvalueの値の設定
int value(); ... メンバvalueの値の参照

同じ関数名で機能の異なるものを作るのは危険、
ということから思いつきもしなかったけど、
この使い方なら便利で有用かも知れないな。

351 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 07:16:35.65 ID:Vf4h0u1D.net]
>>345
> int value(int val); ... メンバvalueの値の設定
なぜに戻り値?

352 名前:345 mailto:sage [2016/09/02(金) 07:33:47.21 ID:96M6CE+e.net]
>>346
値の範囲制限とかする場合に、
戻り値に「実際に格納された値」を入れて返す。

あと瑣末なことだけど、
cout << a.value(val) << endl;
みたいに格納しつつ値も使う、ができてちょい便利。

353 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 07:35:34.05 ID:MC2dvnuP.net]
そう言うの、以前の値を返すのも多いから紛らわしいな。

354 名前:デフォルトの名無しさん [2016/09/02(金) 07:36:05.31 ID:sd/G3GoC.net]
std::exchange的な〜?

355 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 07:49:11.95 ID:Vf4h0u1D.net]
>>347
> 戻り値に「実際に格納された値」を入れて返す。

こっちはまだわからなくもないが

> 格納しつつ値も使う、ができてちょい便利。

みたいな設計はどうかと思う

356 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 08:01:45.25 ID:/uIui9G6.net]
そうだな
(a = b) = c;
みたいな20世紀の設計思想だな

357 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 08:01:48.98 ID:5Aji0+2+.net]
*this

358 名前:を返してしまう []
[ここ壊れてます]



359 名前: ◆SEdFBOkLSw mailto:sage [2016/09/02(金) 08:29:24.90 ID:Nu/77N8P.net]
>>352
メソッドチェーン出来て便利だよね。

360 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 08:44:56.31 ID:OksuLk+6.net]
演算子のオーバーロードみたいな使い方のポリシーでは
a.val(b.val() + c.val()) みたいなやつ

というかどうしてもプロパティが欲しけりゃ演算子オーバーロードで真似っこできるじゃん

361 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 08:48:54.95 ID:xzsbRhmn.net]
は? 演算子オーバーロードでどうやってプロパティの代用すんだよw
プロパティ分かってない奴か? コードを示して見ろ。

362 名前:デフォルトの名無しさん [2016/09/02(金) 09:12:04.14 ID:+CUdjKtm.net]
ideone.com/rZ2S2m
こんな感じか?

363 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 09:14:47.55 ID:OksuLk+6.net]
>>355
ググれば普通に出るが?
なんでそんなに必死なの
boost.2283326.n4.nabble.com/the-best-possible-c-properties-implementation-tt2626498.html

364 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 09:20:57.20 ID:OksuLk+6.net]
>>356
そうね、そういう感じ

365 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 10:36:49.94 ID:AFnhG1K/.net]
それじゃ仮想関数にできないじゃん。やり直し。
無理やりオーバーライドできるようにしなくていいよ。
既にコードも必要以上に複雑化しててgetter/setterの方がマシなレベルだし。

366 名前:デフォルトの名無しさん [2016/09/02(金) 12:07:39.19 ID:+CUdjKtm.net]
>>359
NVIって知ってる?

367 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 12:09:10.62 ID:rUpx5Cs1.net]
結局、プロパティは要らんわな。

タイプ量の問題ならマクロで解決出来るし。

368 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 12:26:51.71 ID:6Qab/oE8.net]
これからのC++にプロパティーは必須だな。
これからもどんどん新しい機能を取り入れてどんどん
わけがわからなくなるといい。



369 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 12:41:00.31 ID:1fpVQ5H8.net]
マクロは入力補完できないし衝突の可能性がある

370 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 12:49:08.18 ID:6Qab/oE8.net]
C++はマクロで出来ることをどんどん機能として取り込んで来たのに
いまさら後戻りはできない。

371 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 18:00:48.43 ID:96M6CE+e.net]
C#の「プロパティ」って機能がどんなのか知らないけど、
現在C++にないから不要な機能だ、と突っ張るのは危険かも知れないよ。

いつか「次の規格から『C#のプロパティ』と同様の機能が追加」と
発表されるかもしれない。これまでもそうやって肥大化してるじゃない。

372 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 18:28:49.74 ID:qjeLwgBZ.net]
Javaでもそうだけどgetter/setterは言語的には単なるメソッドでしかないが
C#のプロパティは言語的にメソッドとは違うものとして認識出来るようになっている
そこから様々な便利さが出てきている

373 名前:デフォルトの名無しさん [2016/09/02(金) 19:27:06.33 ID:nL/2u0CX.net]
>>364
マクロで出来ることではなく、
マクロに頼っていたことを、
マクロを使わずに出来るようにしてきたんだよ。

スコープに従わないオブジェクト指向の敵との戦いだ

374 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 19:37:33.13 ID:XrGCfAOV.net]
C++のテンプレートってポストプロセッサといっていいよね。
マクロみたいなもん。

375 名前:デフォルトの名無しさん [2016/09/02(金) 20:24:08.55 ID:8Rlh5aGL.net]
↓テンプレートとマクロは全く違うもの

376 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 20:41:05.83 ID:Wj/juS31.net]
ソースコードの書き換えという点では同じ。

377 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 20:49:32.19 ID:W5XwdQxs.net]
テンプレートはテキスト置換じゃないよ。
あれはコンパイルタイムに計算してるんだよ。

378 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 20:49:47.52 ID:1fpVQ5H8.net]
テンプレートが単なる置き換えだと思ってるのか



379 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 20:50:16.78 ID:BGbCtBYN.net]
マクロの親玉だ

380 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 20:52:42.81 ID:W5XwdQxs.net]
テンプレートもconstexprもある種の計算機のサブセットだからなぁ。

381 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 22:57:15.93 ID:Q3H4IaZb.net]
コンパイル時に計算できることなんてたかが知れてるし、使い道ないんだよな

382 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 22:59:57.14 ID:3Xz3H/8a.net]
いやいや…型チェックとかのなくすべき実行時オーバーヘッドがなくせるってだけで意味大有りだろ

383 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 23:04:13.81 ID:W5XwdQxs.net]
PURE関数が入ったら、constexprなんかは関数がハッシュに置き換わってそこから値置換になるかも。
コードを全部どけて数字一個になる日も近い。

384 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 23:12:20.33 ID:1fpVQ5H8.net]
まともにC++使ってて使い道無いとかどうやったらそう解釈できるんだ

385 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 23:30:26.24 ID:Q3H4IaZb.net]
コンパイル時に決まってるなら計算する必要ないじゃん

386 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 23:32:54.48 ID:1fpVQ5H8.net]
手動で計算してくれ

387 名前:デフォルトの名無しさん mailto:sage [2016/09/02(金) 23:35:19.44 ID:W5XwdQxs.net]
そしてたどり着くのだ。42に。

388 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 00:45:41.77 ID:WTZrMZ5J.net]
テンプレートなしだとマクロとvoid*でやりくりすることになるのかな
<algorithm>の中身がおそろしいことになりそう



389 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 02:05:00.69 ID:VnUB3qPQ.net]
>>381
43ですが

390 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 02:08:56.14 ID:VnUB3qPQ.net]
templateなんてデブなブタに過ぎんからな

391 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 02:12:17.57 ID:qWYFFL/S.net]
>>383
なんすかそれ。

392 名前:デフォルトの名無しさん [2016/09/03(土) 07:03:39.80 ID:ZkDRxv2v.net]
>>375
最適化を否定するのか?

393 名前:デフォルトの名無しさん [2016/09/03(土) 07:04:51.23 ID:ZkDRxv2v.net]
>>382
bsearchみたいにな

394 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 09:55:01.98 ID:MIqeGybs.net]
templateなんて実際に使えるレベルものを書ける人なんてほとんどいないだろ
使うことはあっても、書くことはないだろ

395 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 10:03:25.99 ID:2vnq4BB3.net]
ライブラリを作っていれば嫌でも使うが

396 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 11:15:11.07 ID:NvcWw3DB.net]
>>388
キミの周りではそうかもしれないけど、templateみたいな便利なものを使えないようじゃ現代のプログラマとしては失格だと思います
てかテンプレートってそんなに難しいか?

397 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 11:47:23.77 ID:KpYZ86nt.net]
標準コンテナくらいバカでも使える。
それだけでテンプレートのメリットは十分に享受できる。

398 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 11:48:35.81 ID:2vnq4BB3.net]
boost並みの実装ができないと書けていることにならないらしい



399 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 12:11:48.21 ID:NXr2sGOM.net]
>>388
汎用性があって他人も実際に使えるレベルとなると難しいかもしれんが、自分が使う範囲内では普通に書くだろう。
はじめからtemplateを書くんじゃなくて自分用のユーティリティとかをtemplate化することも含めればけっこうある。

400 名前:デフォルトの名無しさん [2016/09/03(土) 12:23:53.61 ID:ZkDRxv2v.net]
>>390
ほんこれ

401 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 12:35:37.51 ID:UwaIhkeW.net]
くだらねえな
もっと為になる話をしろやカス

402 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 12:54:22.03 ID:e++gk4lZ.net]
Boost並に使いこなせるか?って聞かれたら
謝るしか無いわ、ホントごめん

403 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 12:56:30.19 ID:2vnq4BB3.net]
為になる本ならたくさんある

404 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 13:22:16.46 ID:xlYZjvy0.net]
メソッドA->B->C->D->Eと呼ばれる階層が深い構造のシステムがあって、
Eの計算結果をAで取りたい要望が新しくでてきたときってみんなならどう実装する?

条件としては、
・AはwhileループでBを呼び出し続ける
・Eの最新の計算結果はループで毎回使う
・CがDをnewしてるから、単純なgetterとかじゃ取れない

1. 引数が増えるのは仕方ないが、A~Eに全て引数を追加する
2. Eでstaticなグローバル変数を作る。Aからはgetterで取得する

一応思いつくのはこのあたりなんだけど、もっとスマートなやり方ってあるかな?

405 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 13:25:09.63 ID:WhBzeO8K.net]
>>398
メソッドDをCがnewする?なんか説明が胡散臭いんだけど、普通に戻り値で返すのはダメなん?

406 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 13:31:49.96 ID:ftE9LPfh.net]
そんなことしてたら「この計算結果もほしいんだけど」ってなった時に
また

407 名前:困ることになる。

Contextクラスを追加して、計算に必要な情報はそこに集約させろ。
そうすればどの階層からでも必要な情報を取れる。
[]
[ここ壊れてます]

408 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 13:34:05.21 ID:xlYZjvy0.net]
>>399
すまん、説明が適当だった
CはDメソッドがあるクラスをnewしてるってこと
DClass dClass = new DClass()

C() {
dClass->d();



409 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 13:36:43.61 ID:xlYZjvy0.net]
>>399
ごめん、途中で送信しちゃった、

CはDメソッドがあるクラスをnewしてるってこと

C() {
DClass dClass = new DClass()
dClass->d();
}

戻り値はEから外部システムに送信が成功したかどうかを表すbool値がすでに返されてるんだ

>>400
Contextクラスか・・自分は使ったことないし、よく理解できてないからググってみるわ
ありがとう

410 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 13:40:54.20 ID:2vnq4BB3.net]
説明の意味が全く分からない
hoge B::get_E(){
  D *d = c.create_D();

411 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 13:47:29.68 ID:e++gk4lZ.net]
今後パラメータが増える可能性があるようなら、それらをクラスなり構造体なりにまとめて、
何らかの方法で渡すようにすれば、最小限のコード修正で済むよってことじゃない?

412 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 13:51:40.11 ID:2vnq4BB3.net]
>>402
そのCの戻り値にDの戻り値のEを入れてBが受ければいいんじゃないのか

413 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 13:58:09.73 ID:Px0qkqVR.net]
>>398
引数を追加する方法を取るとして、楽するならば
一旦引数を構造体にして、後で追加したい場合構造体のメンバーを追加する形にする
全部の関数はその構造体を引数にしていれば、好きな構造体メンバーを追加しても形は変わらない

414 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 13:58:29.96 ID:Px0qkqVR.net]
>>404
おれはや

415 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 13:59:56.32 ID:e++gk4lZ.net]
>>405
既に戻り値は他で使われてるらしいし
そのやり方だと、参照渡しなんかが現実的じゃない?

416 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 14:00:12.38 ID:WhBzeO8K.net]
>>402
「全て引数を追加する」がContextかなんかの参照引数を渡してまわる方法だと思ったんだけど、違ったんかな?
戻り値を変えたくないならそうするしかないと思うよ。

417 名前:デフォルトの名無しさん [2016/09/03(土) 14:01:01.19 ID:ZkDRxv2v.net]
>>395
気がついたやつがやれ
指図すんなクレクレ厨め

418 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 14:05:10.90 ID:2vnq4BB3.net]
>>408
戻り値なんてpairなりtupleなりでいくらでも増やせばいいじゃん
周囲に影響を出したくないならそこから特定の値だけを取り出す関数でも噛ませればいい



419 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 14:14:55.80 ID:4FUmxt1N.net]
コンポジションじゃ駄目なん?

420 名前: ◆SEdFBOkLSw mailto:sage [2016/09/03(土) 14:20:00.21 ID:WfmCkwdk.net]
Eの結果がどう欲しいかによるとは思うな。
Aだけが知りたいなら素直にEがログ残せば良いと思う。
中間層が知りたいなら返してやらなきゃならんだろうけど、B→Eが他の部分で使われてたら関連するのビルドし直しだしテストし直しだし、出し直さないといかんのでは?

421 名前:デフォルトの名無しさん mailto:sage [2016/09/03(土) 15:45:28.04 ID:KoWGZcqO.net]
はいはい池沼は去れ

422 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 06:52:12.75 ID:5SDmlLW2.net]
https://www.embarcadero.com/jp/products/delphi/downloads
現在、RAD Studio(Delphi、C++Builderのセット)が無料でダウンロード可能ですよ
右側のStarter Edition100% Offをクリックするとダウンロードページに飛べます。
(無料ダウンロードは、2016年8月22日から9月9日までの期間限定)

423 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 06:58:26.93 ID:5SDmlLW2.net]
すいません、C++Builderはこっちです
https://www.embarcadero.com/jp/products/cbuilder/downloads
現在、C++Builderが無料でダウンロード可能
右側のStarter Edition100% Offをクリックするとダウンロードページに飛べます
(無料ダウンロードは、2016年8月22日から9月9日までの期間限定)

DelphiとC++Buiderは別個にダウンロードが必要な模様

(無料ダウンロードは、2016年8月22日から9月9日までの期間限定)

424 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 07:03:58.75 ID:5SDmlLW2.net]
>>415はDelphiのみでした

425 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 07:28:40.73 ID:uvifPYcj.net]
リンク先ページを見たけど、これでダウンロードできるのは
「30日間だけ無料で使えます」バージョンじゃないのかな。

"Try C++Builder FREE for 30 days" って
ダウンロードできる期間が30日間、じゃないよね。
>>415-416 に出てる期間は30日には足りないし。

426 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 09:09:03.52 ID:xp6EP8jq.net]
スターターエディションの方じゃね?

C++ Builder
https://www.embarcadero.com/jp/products/cbuilder/starter/promotional-download

Delphi
https://www.embarcadero.com/jp/products/delphi/starter/promotional-download

427 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 09:17:51.17 ID:ZU1xzEkS.net]
>>390
簡単だと言い張って可読性の低いバギーなもん作ってよこす奴が多いから
テンプレートは嫌いなんだよ。
STLで十分。

428 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 09:56:16.37 ID:ZZxj7Xyl.net]
無能の言い訳にしか聞こえないな



429 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 10:13:47.98 ID:xp6EP8jq.net]
>>420
> 簡単だと言い張って可読性の低いバギーなもん作ってよこす奴が多いから

理由になってなくて笑た

430 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 10:22:29.27 ID:GcCwBDUy.net]
>>420
特定の人間でなく周りに多いのなら受けるお前の方に問題があるんじゃないか?

431 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 10:39:20.02 ID:GZCXAM8t.net]
類友なのに自分は違うって思ってるパティーン
最も傑作でおめでたい人種

432 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 12:40:13.35 ID:+mIHXAwk.net]
昔のオブジェクト指向と似たような議論だな。
別にフルに使いこなせなくても恩恵は受けられるだろうにw

433 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 13:31:30.85 ID:u29z8UDZ.net]
難しいから使うなって一生使えるようにならないよね
そういう進歩を捨てた人間は技術者とは認めてないわ

434 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 13:58:48.62 ID:6rO3xNqX.net]
>>420
最後の2行は2016年度最強の名言だな

435 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 14:05:26.02 ID:VQnaPYaY.net]
>>427
テンプラ屋でもやれば?

436 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 14:05:45.23 ID:X6kuqpOw.net]
べつに嫌いな機能が有ってもおかしくはないな。
プリプロセッサーが嫌いな人とか、iostreamが嫌いな人とか人それぞれ

437 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 14:06:53.24 ID:6rO3xNqX.net]
オブジェクト指向www
久しぶりに聞いたな

438 名前:デフォルトの名無しさん [2016/09/04(日) 14:07:38.02 ID:OnzMHuuE.net]
>>420
まずはSTLが何の略語なのか調べてみよう!



439 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 14:17:00.28 ID:xp6EP8jq.net]
>>429
嫌いな機能はあってもいいけどその理由が >>420 とかなのはねぇ

440 名前:デフォルトの名無しさん [2016/09/04(日) 14:45:42.58 ID:bYyi8Nkm.net]
C++を使う理由の90%がテンプレートでしょう
使わないならCでもやっててください

441 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 14:52:46.08 ID:VQnaPYaY.net]
C言語しか出来ない50代くらいのジジイたくさん居る
で、なぜかえばっている

442 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 14:54:45.23 ID:Zvr3allz.net]
便利だと言い張って可読性の低い醜悪なもん作ってよこす奴が多いからCPPは嫌いなんだよ。
テンプレートは最高。

443 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 15:16:44.85 ID:9+LtAjSl.net]
stlっていっても、実装見たら初学者でも書けるようなものがほとんどでしょ。
forで回して、比較してるだけとかwww
積極的に使う理由がない

444 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 15:23:23.36 ID:u29z8UDZ.net]
コピペすんな

445 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 15:58:19.56 ID:dwel9f30.net]
おいら最近はC#のほうが多くてC++はご無沙汰になってるんだけど
C++のテンプレートが使えたらなあって思うことはたまにある

446 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 16:51:50.12 ID:1H4SDZ6a.net]
は? C#にも名前は違うけどあるだろボケ

447 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 17:03:58.61 ID:u29z8UDZ.net]
ねえよ

448 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 17:05:46.48 ID:dwel9f30.net]
>>439
似たようなのはあるし、大体はそれで問題ないんだけど
テンプレートとは根本的な仕組みが違うので、特殊化とか微妙に出来ることに差があるのよね



449 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 17:12:09.12 ID:UDXdUcTk.net]
C#のジェネリックはCLIを一個しか生成せずに、型の違うオブジェクトが与えられたら
JITコンパイル時に生成してるもんな
だからサイズは小さいけどC++のtemplateとは根本的に考え方が異なる

おまけにオブジェクト同士を演算しようとするとコンパイルエラーになるので
dynamic、つまりリフレクションを使うしかないという

450 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 18:39:26.39 ID:c++wF4a4.net]
IDがC++だー

451 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 18:54:35.76 ID:ZZxj7Xyl.net]
>>443
おおすげーおめでとう

452 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 19:14:14.87 ID:1H4SDZ6a.net]
>>442
言語機構が違うから実装も異なるのは当たり前。
それがどう実用上影響するのかを書けよ。

当たり前だが、俺はC#のジェネリックと
C++のテンプレートの機能上の様々な相違点(例えばintを引数に取れないとか)は知った上で、
おまえさんの教育のために質問してるからな?
勘違いするなよ。

453 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 19:16:44.51 ID:1H4SDZ6a.net]
intを取れないってのは_
C++でできるtemplate<int N>
みたいなのがC#ではできないって意味な。

馬鹿が勘違いするといけないから。

454 名前:デフォルトの名無しさん [2016/09/04(日) 19:25:27.22 ID:OnzMHuuE.net]
>>443
おおっ!

455 名前:デフォルトの名無しさん [2016/09/04(日) 21:25:33.06 ID:pHvOGCAw.net]
>>439
> は? C#にも名前は違うけどあるだろボケ
ジェネリックとテンプレートが同じだといいたいのかな?
ガチなアフォ登場したなwww

456 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 21:27:10.35 ID:dwel9f30.net]
>>448
C++分かる人に使い方の説明しろと言われたら間違いなく
真っ先に「テンプレートです」って言うけどな

457 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 21:37:35.91 ID:ZdgSZwYz.net]
テンプレートはコンパイルタイム、ジェネリックはランタイムだ。

458 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 21:37:38.20 ID:xp6EP8jq.net]
>>443
スゲー、なんか羨ましいぜ



459 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 21:48:56.88 ID:I3Tx/JDs.net]
コンパイルタイムのくせにいちいち
typenameをつけまくらないといけない
クソ言語。
テンプレートパラメーターごとに特殊化が作られるんだから
その辺テキトーでもいいはずなのに。

460 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 21:54:49.52 ID:LHkeQq2D.net]
つか、型なんてコンパイル時なんて遅すぎだろ
普通は設計終わった段階で全て決定してるし。

461 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 21:58:44.17 ID:I3Tx/JDs.net]
まじかよ
俺今日vector<int>って書いたけど
vectorの設計後にインスタンス化しちゃったぜよ

462 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 22:00:39.11 ID:+mIHXAwk.net]
細かい違いはあれどジェネリックはC#版のテンプレートだろ

463 名前:デフォルトの名無しさん [2016/09/04(日) 22:16:41.22 ID:LHkeQq2D.net]
ジェネリックはC#版のテンプレート
名言頂きました

464 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 22:18:59.30 ID:ItsH+W+6.net]
ジェネリクスは汎化で、テンプレートはコンパイルタイムで、全くの別物じゃないの?

465 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 22:23:32.00 ID:r5JTAWNt.net]
言語機能の目的は似ているな
目的を理解せず仕組みを語りたがる中学生には違うらしいけど

466 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 22:24:22.75 ID:u29z8UDZ.net]
ジェネリックは基本的に算術演算子を使えないしメンバ関数も使えないからな
インターフェイスを定義してようやく特定の型のみ対応できる

467 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 22:27:35.01 ID:+mIHXAwk.net]
>>457
それは相違点の1つだろ。
テンプレートにせよジェネリックにせよ一番の本質は
「型引数を受け取って特化型を生成すること」だからな。

468 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 22:52:01.38 ID:r5JTAWNt.net]
>ジェネリックは基本的に算術演算子を使えないしメンバ関数も使えないからな
へー、初耳だ



469 名前:デフォルトの名無しさん mailto:sage [2016/09/04(日) 23:38:59.65 ID:c++wF4a4.net]
>>444,447,451
ありがとう
これを機にC++erになります

470 名前:デフォルトの名無しさん mailto:sage [2016/09/05(月) 01:54:37.65 ID:Zffp85C6.net]
>>461
おい、お前試してみてから言ってるんだろうな?

471 名前:デフォルトの名無しさん mailto:sage [2016/09/05(月) 10:51:16.59 ID:ece9l1SB.net]
>>458
目的が同じなら方法の違いは関係ないとでも?

472 名前:デフォルトの名無しさん [2016/09/05(月) 13:56:45.07 ID:4eC9RGW3.net]
>>433
それは60代から上のCOBOL世代
50代はC++バリバリ使うぞ
TCPL初版当時の若燕をなめんな

473 名前:デフォルトの名無しさん mailto:sage [2016/09/05(月) 14:43:22.97 ID:5jAupIQr.net]
「COBOLerがテンプレート目的でC++を使う」
「」

474 名前:デフォルトの名無しさん [2016/09/05(月) 15:38:04.05 ID:4eC9RGW3.net]
TCPL初版を見たこともないやつが
煽るつもりで自分の無知を晒しているなあw

475 名前:デフォルトの名無しさん mailto:sage [2016/09/05(月) 16:00:17.35 ID:NFX2QcZC.net]
C++(ベターC)

476 名前:デフォルトの名無しさん mailto:sage [2016/09/05(月) 16:25:11.01 ID:M0OvRWnI.net]
TCPL?
素直にターボCのこと?

477 名前:デフォルトの名無しさん [2016/09/05(月) 16:35:11.86 ID:4eC9RGW3.net]
the C programming languageのことじゃね
いいよ、そう思ってろ

478 名前:デフォルトの名無しさん mailto:sage [2016/09/05(月) 16:42:54.97 ID:/PewDBDd.net]
老害



479 名前:デフォルトの名無しさん mailto:sage [2016/09/05(月) 16:50:33.58 ID:S/r0zM88.net]
>>464
関係無いな
>>454に対する>>457のレスは話のすり替えに他ならない

480 名前:デフォルトの名無しさん mailto:sage [2016/09/05(月) 16:51:54.71 ID:S/r0zM88.net]
番号ずれた
誤 >>454に対する>>457のレスは
正 >>455に対する>>457のレスは

481 名前:デフォルトの名無しさん mailto:sage [2016/09/05(月) 19:14:07.88 ID:5F1Hp9JO.net]
TCPL なんて初めてみたわ

482 名前:デフォルトの名無しさん mailto:sage [2016/09/05(月) 19:40:32.27 ID:ZL7Oa3Lb.net]
きかんな

483 名前:デフォルトの名無しさん mailto:sage [2016/09/05(月) 19:46:24.46 ID:Oj+RV/HM.net]
>>467
東京コンテンツプロデューサーズ・ラボとか出てきたんだけどw
検索ですぐヒットしないような用語使うのは止めてくれよ

484 名前:デフォルトの名無しさん mailto:sage [2016/09/05(月) 19:56:37.92 ID:NFX2QcZC.net]
Effective C++3冊を読んでいないやつは老害

485 名前:デフォルトの名無しさん mailto:sage [2016/09/05(月) 20:36:14.34 ID:1ue4xWo4.net]
三冊もあんの?一冊にしてくれよ

486 名前:デフォルトの名無しさん mailto:sage [2016/09/05(月) 20:38:07.50 ID:MPm038QF.net]
>>470
普通K&Rって言わね?
何処の田舎モンよ?

487 名前:デフォルトの名無しさん mailto:sage [2016/09/05(月) 20:46:21.19 ID:32FGf11f.net]
>>478
Effective STLを含めれば4冊もあるぞ

488 名前:デフォルトの名無しさん mailto:sage [2016/09/05(月) 20:48:51.10 ID:1ue4xWo4.net]
STL何それうまいの?



489 名前:デフォルトの名無しさん mailto:sage [2016/09/05(月) 20:51:36.83 ID:IQvMB0/c.net]
仮に TCPL が『プログラミング言語C』(K&R)のことだとしても、
いきなりC++のスレッドで出てくると違和感があるのだが。

490 名前:デフォルトの名無しさん mailto:sage [2016/09/05(月) 20:56:18.25 ID:zRA0QsUX.net]
53ページを暗記する奴?

491 名前:デフォルトの名無しさん mailto:sage [2016/09/05(月) 21:02:31.55 ID:1ue4xWo4.net]
蟹チャーハン何それうまいの?
読んだことはないけど20世紀に信者がウザかった記憶だけはあるな
ANSIで標準化されたことを自分のレーゾンデートルを奪われたと勘違いして幻覚を見たかのような必死さが伺えた

492 名前:デフォルトの名無しさん [2016/09/05(月) 22:01:52.55 ID:4eC9RGW3.net]
>>479
よう、真性カッペw

493 名前:デフォルトの名無しさん [2016/09/05(月) 22:02:46.08 ID:4eC9RGW3.net]
あ、アンカー打ち忘れた
>>482も真性カッペな

494 名前:デフォルトの名無しさん mailto:sage [2016/09/05(月) 22:06:39.74 ID:32FGf11f.net]
おじさんくやしがりすぎやろ…

495 名前:デフォルトの名無しさん mailto:sage [2016/09/05(月) 22:18:16.67 ID:zRA0QsUX.net]
TCPLなんて検索しても全くヒットしないじゃん
SICPくらいヒットするように頑張ってからドヤ顔するんだな

496 名前:デフォルトの名無しさん [2016/09/05(月) 23:01:37.47 ID:4eC9RGW3.net]
かつて通用してて曖昧性が指摘されて後に死語化したものがヒットするわけねーだろ
こういうのは検索だけがソースなやつにはわかるわけがない

497 名前:デフォルトの名無しさん [2016/09/05(月) 23:03:21.14 ID:4eC9RGW3.net]
禿が、言語はそいつが何を考えることが出来るかを決めてしまう、
というのと同様、検索によって何を知ることが出来るかを決められてしまってるやつw

498 名前:デフォルトの名無しさん mailto:sage [2016/09/05(月) 23:04:11.29 ID:g7jOSJ0B.net]
the c++ program language



499 名前:デフォルトの名無しさん mailto:sage [2016/09/05(月) 23:05:08.72 ID:9BGJMvFR.net]
真っ赤になって弁明、無意味な連投、あとは草大量に生やせばパーフェクト

500 名前:デフォルトの名無しさん mailto:sage [2016/09/06(火) 00:08:40.53 ID:F5fS/nn6.net]
おいおい、自分で老害認定してるジジイをあんまりいじめるなよw

501 名前:デフォルトの名無しさん mailto:sage [2016/09/06(火) 02:59:46.82 ID:bgQCWsty.net]
死語をドヤ顔で使う老害なんて早く死ねば良いのに

502 名前:デフォルトの名無しさん mailto:sage [2016/09/06(火) 06:24:00.28 ID:AN+xYaOm.net]
TCPL って "The C++ Programming Language" のことなのかな?
++ がない方の書名(K&R)と紛らわしいわね。
…すると >>467>>470 はID被りの別人だったのか。

"Learning Standard C++ as a New Language"「標準C++を新しい言語として学ぶ」や
『プログラミング言語C++』(TCPL?)第4版の中で、ハゲ先生は
「新しい規格で便利な機能を使え」と言ってたはずで、
そこからすると「古い参考書を読んだことがある方が偉い」って
主張はなかなか賛成しにくいなぁ。

503 名前:デフォルトの名無しさん mailto:sage [2016/09/06(火) 07:12:19.22 ID:JRdVpVwV.net]
祝 void_t 標準入り

504 名前:デフォルトの名無しさん mailto:sage [2016/09/06(火) 08:22:00.35 ID:7VUHkvW+.net]
そういうのは規格化されてから言え
お前の脳内の標準などどうでもいい

505 名前:デフォルトの名無しさん mailto:sage [2016/09/06(火) 08:40:04.46 ID:0OEY122r.net]
void_tは決まったんじゃないのか

506 名前:デフォルトの名無しさん mailto:sage [2016/09/06(火) 08:50:04.45 ID:ewg0kDeB.net]
>>497
「次期C++1zでの標準化がほぼ確定したので・・・」
と細々と書かないと通じないのか?

507 名前:デフォルトの名無しさん [2016/09/06(火) 10:05:09.80 ID:ScDQQjzO.net]
>>495
偉いとか言ってねえぜ
相対評価ではなく絶対評価で
シッタカはクソ以下だつってるだけだ

508 名前:デフォルトの名無しさん mailto:sage [2016/09/06(火) 10:11:45.27 ID:F5fS/nn6.net]
The C++ Programming Language なら"TC++PL"な
www.stroustrup.com/glossary.html#GTC++PL#
用語がデタラメなジジイは話が通じなくて疎まれるだろ?



509 名前:デフォルトの名無しさん mailto:sage [2016/09/06(火) 10:42:23.06 ID:yUThNKeL.net]
TPPみたいになんでも略し杉w

510 名前:デフォルトの名無しさん [2016/09/06(火) 10:44:47.41 ID:ScDQQjzO.net]
あとからそうなったんだよ
ガキが知らないのは仕方ない
知らねーなら知らねーなりにしとくぶんには可愛げあるんだよ
それを尻が青いくせにジジイのふりをするからバカにしか見えないってだけさ

511 名前:デフォルトの名無しさん mailto:sage [2016/09/06(火) 11:17:08.98 ID:F5fS/nn6.net]
>>503
>>494

512 名前:デフォルトの名無しさん [2016/09/06(火) 11:20:23.27 ID:ScDQQjzO.net]
>>504
おまえが死ね
今からダンプに轢かれに出かけろ

513 名前:デフォルトの名無しさん mailto:sage [2016/09/06(火) 11:37:06.01 ID:ewg0kDeB.net]
略語ってどこまで通じるのか不安になるな。
sfineaやRAIIは大丈夫としても、TMPとかCPPとかって一般的なんだろうか?

514 名前:デフォルトの名無しさん mailto:sage [2016/09/06(火) 12:39:46.48 ID:bgQCWsty.net]
>>504
死語って言うより死産だよな
TCPL w

515 名前:デフォルトの名無しさん [2016/09/06(火) 12:58:22.50 ID:ScDQQjzO.net]
あー、禿のWebページでしばらく使ってたのも知らないわけね
そういうのはいくら検索しても出るわきゃねえしガキにゃ厳しいな

516 名前:デフォルトの名無しさん mailto:sage [2016/09/06(火) 13:49:15.29 ID:IyJPjQ2g.net]
必死で検索したようだが出てこなかったのかw
残念だったなw

517 名前:デフォルトの名無しさん [2016/09/06(火) 13:56:51.77 ID:ScDQQjzO.net]
おまえがな

518 名前:デフォルトの名無しさん mailto:sage [2016/09/06(火) 15:01:29.03 ID:sQOv13Gi.net]
くだらなすぎて俺にとってはどうでもいいけど
「"TCPL" "the C++"」でググると結構出てくるけどな例えば
https://www.allacronyms.com/TCPL/The_C%2B%2B_Programming_Language



519 名前:デフォルトの名無しさん [2016/09/06(火) 15:55:19.22 ID:ScDQQjzO.net]
デタラメとかぬかしてたクソガキ、息してるか?

520 名前:デフォルトの名無しさん mailto:sage [2016/09/06(火) 18:43:34.22 ID:R7REkw4z.net]
ハゲが自分のホムペで紹介した俺用語をさも普遍的な用語であるかのように語られても困るな

521 名前:デフォルトの名無しさん mailto:sage [2016/09/06(火) 19:48:01.80 ID:1XSUlqoQ.net]
>>508
で、使ってたと言う証拠は?
脳内にしかないとか言わないよな w

522 名前:デフォルトの名無しさん mailto:sage [2016/09/06(火) 19:54:58.70 ID:YAp6qqUR.net]
ここ相談室なんだけどみんな何の相談してるの

523 名前:デフォルトの名無しさん mailto:sage [2016/09/06(火) 19:59:18.61 ID:lMZiI53V.net]
自分の病気の症状についての相談

524 名前:デフォルトの名無しさん mailto:sage [2016/09/06(火) 20:18:59.06 ID:PHkuODAN.net]
void_t は何に使うの

525 名前:デフォルトの名無しさん [2016/09/06(火) 21:50:12.78 ID:ScDQQjzO.net]
>>514
あー、すまんな
俺んとこでは魚拓は脳内だけだ
だからお前は未来永劫見ることができない
いやーすまんすまん

526 名前:デフォルトの名無しさん mailto:sage [2016/09/06(火) 21:57:58.50 ID:VCItaBw6.net]
>>515
ここ見るとC++に関わる奴はどこか頭おかしいってわかるだろ?
つまりそういうことだ

527 名前:デフォルトの名無しさん [2016/09/06(火) 22:51:35.93 ID:EdXevder.net]
頭がおかしい(髪が変)

528 名前:デフォルトの名無しさん mailto:sage [2016/09/06(火) 23:12:54.88 ID:JRdVpVwV.net]
>>517
知ってるでしょ



529 名前:デフォルトの名無しさん mailto:sage [2016/09/06(火) 23:26:52.58 ID:sQOv13Gi.net]
void_tはSFINAEの定番パターンを標準化しただけ

530 名前:デフォルトの名無しさん mailto:sage [2016/09/07(水) 05:00:10.45 ID:MZvlar21.net]
>>518
要するに、単なる妄想だったってことかよ w

531 名前:デフォルトの名無しさん [2016/09/07(水) 08:16:26.88 ID:4YmObOwP.net]
いや現実だよ
おまえが物心つく前か生まれる前か知らんが
歴史上そういう事実があった

過ぎてしまった歴史がぎゃんぎゃん吠えることで変わるとでも思っているなら
それは隣国のメンタリティだね

532 名前:デフォルトの名無しさん mailto:sage [2016/09/07(水) 08:27:48.44 ID:W2drX/qt.net]
で、その歴史的事実が共有できる資料は?

533 名前:デフォルトの名無しさん mailto:sage [2016/09/07(水) 08:34:32.44 ID:uFAnWK01.net]
ただの事実と歴史とじゃ重要性が違う。
要するに記憶に留めるべき事実が歴史というわけだ。
逆に「そんなもん知らん」と一蹴されてしまう事実もありうる。

534 名前:デフォルトの名無しさん [2016/09/07(水) 09:00:25.57 ID:4YmObOwP.net]
>>525
保存してねえって言っただろ鳥アタマめ

535 名前:デフォルトの名無しさん mailto:sage [2016/09/07(水) 09:05:41.79 ID:WoQJVoSd.net]
いや、資料がないのに歴史だって主張して
それを共有できないって言うと歴史修正主義だって言う姿が
それこそおとなりさんぽいなあって思ってw

536 名前:デフォルトの名無しさん [2016/09/07(水) 09:06:18.84 ID:zaGYBHu2.net]
それはどこの国の歴史なんだろう?
tcpl "the c programming language"
でググると、中国系、朝鮮系では使われてるらしい

537 名前:デフォルトの名無しさん [2016/09/07(水) 09:40:41.09 ID:4YmObOwP.net]
>>528
別に主張なんかしてねえよ
事実を偽りなく述べているだけだ
魚拓の有無で変わったりしねえことだ

自分が見られないからってヤダジタすんなガキ

538 名前:デフォルトの名無しさん mailto:sage [2016/09/07(水) 10:32:53.78 ID:P2AyoRLU.net]
自分より年下と思われる人間をガキ呼ばわりしてるけど、年上が偉いという考え?
それって儒教っぽいな

儒教といえばお隣の国…あっ(察し



539 名前:デフォルトの名無しさん [2016/09/07(水) 10:39:46.68 ID:/D7wbjXh.net]
ここの住人がスルー力0なのは間違いないな

540 名前:デフォルトの名無しさん [2016/09/07(水) 11:24:34.86 ID:prfLhh2R.net]
ソースは脳内
そんな恥ずかしい主張ができちゃうなんてもしかして教育を受けてないのかな?

541 名前:デフォルトの名無しさん mailto:sage [2016/09/07(水) 11:50:26.76 ID:G0adIbkV.net]
暇つぶしが目的だから、スルーしたらつまらないんだろ

542 名前:デフォルトの名無しさん mailto:sage [2016/09/07(水) 12:09:49.06 ID:Z3ZB/oVu.net]
煽る暇人は2chだからどうしようもないが煽られて何日も踊っているのはさすがにバカだな

543 名前:デフォルトの名無しさん [2016/09/07(水) 12:41:12.31 ID:pAK1tPG0.net]
暇つぶしなのではなくお互い必死なんだよ
クールを装ってさもどうでもいいように演じてるけどお互い顔真っ赤だよ

544 名前:デフォルトの名無しさん [2016/09/07(水) 12:54:37.05 ID:4YmObOwP.net]
>>531
なんだおまえ、ガキって書いてあるのを見るたびに自分が卑しく思うのかw

>>533
記録を俺んとこでは残していないってだけだ
誰かが証拠を持ってきたときにもボロが出ないように言ってるぞ

そんときゃおまえが恥ずかしくて出てこれないわけだが

545 名前:デフォルトの名無しさん mailto:sage [2016/09/07(水) 12:55:16.53 ID:Ur9IZRDe.net]
なんかスレ伸びてると思ったらまーたゴミどうしの罵り合いかよ
くだらないことで熱くなる奴は脳みそ壊れていくんだというのが如実に分かるよ

546 名前:デフォルトの名無しさん [2016/09/07(水) 13:08:27.65 ID:prfLhh2R.net]
>>537
俺になんか恥ずかしい要素あったか?
スレ違いの書き込みしたことくらいかな

547 名前:デフォルトの名無しさん mailto:sage [2016/09/07(水) 13:11:15.34 ID:v93B1UIW.net]
誰かが証拠を持ってきたときw
自分の無能を示しておいてなんとも思わんのだな

548 名前:デフォルトの名無しさん [2016/09/07(水) 13:58:33.58 ID:LPRQdItN.net]
バーカ



549 名前:デフォルトの名無しさん [2016/09/07(水) 15:57:42.39 ID:4YmObOwP.net]
>>540
禿のWebページの魚拓をログ化していなかったのを無能と言ってくれるのか
さぞかし有能なおまえさんなら持ってるだろうからさっさと出せ

550 名前:デフォルトの名無しさん mailto:sage [2016/09/07(水) 19:25:39.09 ID:OYvFv6+r.net]
ソースは脳内というのは日常会話の殆どだな。
だから「アナタは私と異なる認識をお持ちなんですね」でしかない。
それを「アナタは証明できないからそれは嘘です」にすり替えるのは詭弁

551 名前:デフォルトの名無しさん mailto:sage [2016/09/07(水) 20:06:01.39 ID:1kliuuT7.net]
>>542
俺超有能だけどそんな資料なかったよ
つまり君の言ってたことは全部君の妄想ね
はい終了

552 名前:デフォルトの名無しさん mailto:sage [2016/09/07(水) 20:12:54.95 ID:2w88FCBz.net]
>>508
> あー、禿のWebページでしばらく使ってたのも知らないわけね

が正しいとしてもここにいる人が知らないような略語をどや顔で出すのは頭おかしい
まあどうみても >>511 辺りを間違えて出しちゃって引っ込みつかなくなってるだけだろ w

553 名前:デフォルトの名無しさん [2016/09/07(水) 20:34:12.89 ID:4YmObOwP.net]
>>545
では、つかってよいりゃくごをあんたはどうやってはんだんしてるんだ?
あたまおかしいとまでおおきくでるならそれなりのきじゅんはあるんだろうな?
さいじゅうどのていのうにあわせるのがぴーじーのしめいとでもかんがえているなら
あふぉだなくそだなだんぷにひかれてしねばいい

554 名前:デフォルトの名無しさん mailto:sage [2016/09/07(水) 22:13:15.14 ID:Ur9IZRDe.net]


555 名前:続ければ気が済むんだよこのゴミどもは []
[ここ壊れてます]

556 名前:デフォルトの名無しさん mailto:sage [2016/09/07(水) 22:37:17.77 ID:YLqxd+vc.net]
自己反映なメタ表現とは高度な技を

557 名前:デフォルトの名無しさん mailto:sage [2016/09/07(水) 22:47:20.81 ID:Mf7TDnfn.net]
そんなことよりvoid_tの話をしようぜ。
SFINAEの話だけど。
SFINAEってconcept的な使い方以外にどんな使い方があるの?

558 名前:デフォルトの名無しさん mailto:sage [2016/09/07(水) 23:19:03.95 ID:LPRQdItN.net]
知らねえよバーカ



559 名前:デフォルトの名無しさん mailto:sage [2016/09/07(水) 23:20:48.09 ID:YLqxd+vc.net]
ワードサラダにマジレス

560 名前:デフォルトの名無しさん mailto:sage [2016/09/07(水) 23:29:54.18 ID:yR890zwI.net]
>>549
concept的な使い方ってどんなの?
漠然とパターンマッチ的なものをイメージすればいいのかな

561 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 00:02:15.19 ID:w601usbW.net]
良くあるのがメンバーの有無で処理を変えるパターンかな。
俺も良くわからんが。

562 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 00:12:42.51 ID:sU4tW1UK.net]
enable_ifと組み合わせて使うんじゃない?

563 名前:デフォルトの名無しさん [2016/09/08(木) 01:13:18.16 ID:NYidnx0p.net]
int と longの違いって何ですか?

564 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 01:15:30.19 ID:p3dWf/BM.net]
歴史?

565 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 02:02:44.82 ID:NonfcYWK.net]
>>555
データモデルによりサイズが異なる(かもしれない)

566 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 04:16:44.74 ID:6JK6uF4x.net]
>>546
正論を言われて反論できなくなったら子供じみた態度でひねくれる
ガキだなw

567 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 04:47:35.75 ID:rBeNUfmR.net]
アルツハイマーの症状の一つの幼児化だね

568 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 05:23:55.94 ID:vt8xUZJ5.net]
酢を飲め



569 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 06:23:15.75 ID:siaRBrBq.net]
>>546
つかってみてだれもしらなさそうならおとなしくひっこめろ、ばーか

570 名前:デフォルトの名無しさん [2016/09/08(木) 07:39:36.05 ID:TmgW3MRN.net]
>>561
やだね
C++スレでC++関連の用語を知らない無知野郎に合わせる必要はない

571 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 07:54:49.83 ID:P8D+cYPH.net]
まじかよ
お前ひとりでつらいだろ?

572 名前:デフォルトの名無しさん [2016/09/08(木) 08:11:01.20 ID:cE384uJ3.net]
ガイジ

573 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 08:36:52.70 ID:QwMnHPC3.net]
用語とか言い出しちゃったよ、この人 w

574 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 09:31:44.41 ID:y1qiR/+w.net]
[[deprecated]]

575 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 11:11:48.25 ID:BaIwaWl+.net]
このスレ的にはK&R初版でC学んだことを自慢してる奴より AT&T cfont のレファレンスでC++学んだ俺の方が偉いはず

576 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 11:25:42.94 ID:ik/GfLoL.net]
なんでその程度でエラぶれるの?w

577 名前:デフォルトの名無しさん [2016/09/08(木) 12:08:58.27 ID:TmgW3MRN.net]
cfrontは俺も使っていたが
cfontて何だ? Courier Newか何かか?

578 名前:デフォルトの名無しさん [2016/09/08(木) 12:28:42.58 ID:NCg12FAS.net]
古ければ古いほど劣っているからな?
古参が全く自慢にならない世界だぞ



579 名前:デフォルトの名無しさん [2016/09/08(木) 12:44:06.52 ID:TmgW3MRN.net]
プログラムのバージョンと
プログラマの経験年数を
一緒にするのかよ

580 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 12:47:14.04 ID:P8D+cYPH.net]
経験年数と優秀さを一緒にしてはいけない
経験年数10年と20年では10年の方が優秀なことが多い

581 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 12:48:47.71 ID:NCg12FAS.net]
>>571
経験のバージョンが古い

582 名前:デフォルトの名無しさん [2016/09/08(木) 12:53:20.28 ID:TmgW3MRN.net]
>>572
ソースplz

583 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 14:10:36.68 ID:P8D+cYPH.net]
ソースは俺の観察

584 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 14:11:54.76 ID:p2bVgJ9p.net]
自分のソースは脳内だけど人にはソースを求める白痴

585 名前:デフォルトの名無しさん [2016/09/08(木) 15:27:51.19 ID:TmgW3MRN.net]
>>576
脳内じゃない
ここは誰が何と言おうとおまえが間違っている

おまえそもそも事実を知らないんだろ
だから俺の言うことのどこがどう間違っているのか具体的な指摘ができない
もっとも知ってたら指摘するところがないはずなんだが

586 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 16:46:16.67 ID:vI60taJg.net]
経験十年積めば大抵のことはできるし対応できるだろうが
経験二十年にはかなわないだろう

587 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 16:59:40.04 ID:rBeNUfmR.net]
archiveから探してこいよ、認知症のジジイ

588 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 17:00:00.79 ID:y1qiR/+w.net]
んなこたあない



589 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 17:59:18.64 ID:P8D+cYPH.net]
>ここは誰が何と言おうとおまえが間違っている

真実を知っているのがこの世で自分だけだなんて
もう生きててつらいだろうな

590 名前:デフォルトの名無しさん [2016/09/08(木) 18:09:20.62 ID:Ig68v84V.net]
プログラムの経験年数なんて関係ない。
重要なのはどれだけトラブルの経験を積んだかだ。

女性経験が豊富なのと同じだ プw

591 名前:デフォルトの名無しさん [2016/09/08(木) 18:15:13.55 ID:TmgW3MRN.net]
>>581
逆だ
知らないのがおまえくらいなんだよ
当時を知っている人が身近にいたら聞いてみろ

>>582
童貞乙

592 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 18:21:23.76 ID:p2bVgJ9p.net]
>>583
当時を知ってる人が身近にいたから聞いてみたけどそんなことはなかったってみんな言ってる。
つまり嘘つきはお前。はい論破。

593 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 18:23:14.02 ID:Ou19mRgF.net]
何日も平日の昼間にくだらんいい争いしなきゃならないとか仕事かよ

594 名前:デフォルトの名無しさん [2016/09/08(木) 18:25:06.25 ID:Ig68v84V.net]
プログラミングを半年もやらなかったら、けっこうな部分を忘れる世界だし、
進化も激しい世界だから、経験を引き継いで発揮できるのはせいぜい五年くらいだろう。

595 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 18:30:38.43 ID:P8D+cYPH.net]
年を取ると物忘れが激しくなる。
「誰が何と言おうと」と自覚しておきながら3時間後に
「知らないのがおまえくらい」と言い出しちゃうぐらい
だから>>584はもう責めないでw

596 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 19:01:10.30 ID:aq+STl42.net]
相談室っていうか病室だな・・・

597 名前: []
[ここ壊れてます]

598 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 19:09:24.56 ID:69NbtRcU.net]
大抵、経験20年とかになってくると老眼とかで大量の情報を高速に見るとかが出来なくなってそう
経験10年なのに目が悪くなってきて辛いです



599 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 19:34:58.14 ID:y1qiR/+w.net]
void_tの話を聞くほうが建設的だ。

600 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 19:40:42.54 ID:ik/GfLoL.net]
だからさ、型名に_t付けるなよ
システムハンガリアンかよ

601 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 19:48:21.97 ID:y1qiR/+w.net]
>>591
using ***_t = ***::type;
ってパターンもダメ?

602 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 19:56:47.42 ID:ZGDN5kDf.net]
>>577
もう楽になりなよ...

603 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 20:17:46.69 ID:rBeNUfmR.net]
頑固になるのもアルツハイマーの症状の一つだね

604 名前:デフォルトの名無しさん [2016/09/08(木) 20:50:28.56 ID:TmgW3MRN.net]
>>593
は? 苦しい屁理屈でへとへとなのはおまえだろ

605 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 20:58:33.03 ID:p3dWf/BM.net]
同じ穴のムジナが楽しく荒らしてるなぁ。
ただ一言いいたい。

カエレ!

606 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 22:14:31.27 ID:A7Pb5oFv.net]
うそ
かえらないで

607 名前:デフォルトの名無しさん mailto:sage [2016/09/08(木) 22:36:18.32 ID:siaRBrBq.net]
苦しい屁理屈 ⇒ >>577
そりゃお前の脳内の事実なんて誰も指摘できんわな w

608 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 00:55:13.72 ID:6Bh01W2V.net]
頑固になるとautoや{}の初期化や->の戻り値が許せなくなります
auto b = new auto(true);
char *p{};
auto main() -> int {}



609 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 01:02:58.35 ID:4oqKijqb.net]
>auto main() -> int {}
頑固じゃないけどこれやる奴は何がしたいんだろう

610 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 01:07:56.60 ID:6Bh01W2V.net]
これは頑固の良い例ですね
スタイルの統一とかそういうことを考えられず、変化を拒絶するようになります

611 名前:デフォルトの名無しさん [2016/09/09(金) 01:10:09.08 ID:kBQSHV64.net]
new auto();
なんて出来ないしな…

612 名前:デフォルトの名無しさん [2016/09/09(金) 01:18:20.19 ID:kBQSHV64.net]
>>601
じゃあ規格のexampleのスタイル統一から初めてくれよ。
何の意味があるのかしらんが、意味があるなら賛同者出てくるでしょ?

613 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 01:21:30.28 ID:Wiz5/g3s.net]
new auto(10)みたいに推論できる場合ならちゃんとできるみたいだけど
https://ideone.com/zPeSla

ただauto main() -> int {}を書くやつは正直、俺知ってるんだぜ自慢したい厨房にしかみえない
タイプ数長くなってんじゃん、何のために導入された書き方か分かってんのかね

614 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 01:23:35.62 ID:6Bh01W2V.net]
これも頑固の良い例ですね
「言語仕様に複数のスタイルが存在してもせめて自分のコード内は統一しよう」
みたいな考えを示唆しているのに、感情的になって関係無いことを言い出すのが特長です

615 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 01:27:12.55 ID:6Bh01W2V.net]
auto main() ->int{}についてはハンをおしたように
「文字数が多い」と言い出すのも特長です
今まで同じレスを見たこともある人も多いのではないでしょうか
「スタイルの統一という観点からはあってもおかしくない」と説明されても
他人が使うことすら許せず否定に躍起になるのが特長です

616 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 01:35:22.25 ID:6Bh01W2V.net]
もちろん新しい記法が良いことばかりではありません
auto b{true};は書けてもnew auto{true}は書けないなど一貫性に乏しい所も有ります

617 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 01:36:37.09 ID:Wiz5/g3s.net]
別に他人がそう書くのを許せないわけじゃないよ
ただ俺はそう書くやつに対してはおかしなやつとかネガティブな印象を持つというだけ
今まで多くの同じようなレスがあったということは俺と同じ印象を持つ人が多いということだと思うよ

618 名前:デフォルトの名無しさん [2016/09/09(金) 01:40:41.63 ID:kBQSHV64.net]
>>605
言語仕様に複数のスタイルとかいう話ではなく規格のコード例ですらそんな書き方必要でなければしてねえよという話
どっちが頑固なんだかね



619 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 01:40:48.56 ID:6Bh01W2V.net]
これも頑固の良い例ですね
とに新しいスタイルを見ると相手を非難しないと気が済まないのが特長です
>>608のレスにも「おかしなやつ」という攻撃的な単語が見られますが、これも一例と捉えてよいでしょう

620 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 01:41:50.71 ID:uFCjw0pQ.net]
autoつかわなくても書ける場所でこれ期バカしにauto使うヤツはバカなんだと思う

621 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 01:44:15.73 ID:uFCjw0pQ.net]
あとで型名明記するとかなんの為にauto使っているのかバカなんだと思う

622 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 01:52:18.15 ID:6Bh01W2V.net]
これも頑固の良い例ですね
型推論のautoとtraining-return-typeの先頭のautoは違うのですが
とにかく理解以前で拒絶してしまっているのが特長です

でも確かにauto f() -> auto {}みたいな書き方はかなり変人かも知れませんね

623 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 01:53:27.43 ID:4oqKijqb.net]
結局auro main() -> int{}はお遊びなのか?

624 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 02:00:06.38 ID:uFCjw0pQ.net]
>>613
本末転倒だってんだよバカ

625 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 02:00:54.91 ID:p4LGwUo/.net]
ぶっちゃけID:6Bh01W2Vってまじであの書き方がスタイルの統一のという理由が第一で導入されたと思ってそうなんだけどそうでもない?
>>612の言わんとしてることが理解できてない気がする

626 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 02:09:08.65 ID:6Bh01W2V.net]
そうですね
テンプレート関数の戻り値のために導入されたことは良いとして、
>>612の言わんといていることはplaceholder typeとtrailing-return-typeの混同による不適切な見解ではないか」と述べているのに
「理解できていない気がする」とあやふやなのは不思議ですね

これらも頑固なことによる反射的な拒絶の一面なのかも知れません

627 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 02:16:06.31 ID:6Bh01W2V.net]
また「導入の目的とは別にスタイルの統一の観点からはあっても良いのではないか」
という説明を受けても「目的が違う」と思考停止して否定ありきで考えてしまうのも特長です

本日は600から続く一連の自演レスでその片鱗が伺えたと思います

628 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 07:33:30.80 ID:H3RR5zb8.net]
そもそもスタイルの統一にこだわる必然性はない。
タブとインデントの話と同じで混在したってかまわない。



629 名前:デフォルトの名無しさん [2016/09/09(金) 07:36:21.12 ID:SVVRFbIW.net]
タブとインデントを混同するやつは見つけ次第殺せ

630 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 08:00:45.68 ID:z8Otf9Pu.net]
どうしてこんな釣り耐性よわいの。
A派とB派の対立じゃなくて
Bスタイルを否定すんな派とBスタイル否定派
は主観の押しつけあいで論破できるわけねーし。

631 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 08:09:04.86 ID:H3RR5zb8.net]
>>620
そういうのってなんか自閉症ぎみなんじゃないの?

632 名前:デフォルトの名無しさん [2016/09/09(金) 08:35:47.51 ID:G0RBn0pa.net]
trailing-return-typeを、4文字以下では使わない
なんてやってると
int abs(int);
auto abs(float) -> float;
てな具合になるよなあ

ぎりぎりアウトな
char* begin(); を
auto begin() -> char*; にしながら、
俺なにやってんだろって気になることがある

633 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 08:42:02.98 ID:oGuibT0g.net]
>>620
同意する
そういう奴はたいてい他でもいいかげんだからプログラマーには向いてないことを自覚してほしい

634 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 08:55:13.21 ID:H3RR5zb8.net]
んなこたーない

635 名前:デフォルトの名無しさん [2016/09/09(金) 11:10:43.31 ID:kBQSHV64.net]
>>623
>trailing-return-typeを、4文字以下では使わない
なんで?

636 名前:デフォルトの名無しさん [2016/09/09(金) 11:25:30.49 ID:G0RBn0pa.net]
int abs(int); を
auto abs(int) -> int; にするメリットは?
autまでタイプした時点でやんなってくるぜ俺は
auto exit(int) -> void; とかナメとんかくらって気ぃしね?

637 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 11:50:52.32 ID:xpG9Ka1d.net]
スタイルの統一という意味では、新しいC++では
普通の関数とメンバ関数を
obj.func();
func(obj);
のどちらのスタイルでも相互に呼び出せるようにするかもしれない
って話だけど・・・
メタプログラミングの観点から見ればどちらの表記でも呼び出せたほうが
便利なのは火を見るよりも明らかだが

それはそうとして
スタイルを統一したいって言ってる頑固な約一名は
これも統一するつもり?
つまり普通の関数やメンバ関数の呼び出しを全部
obj.func(); もしくは func(obj); に統一するつもりなのかって話
で、世の中には引数を取らない関数、例えばabort()などもあるし
fgetsみたいにFILE構造体が引数の最後に来るような変態関数もあるので
統一するならCスタイルの func(obj); になると思うわけだけど
そうすると、全部 method(obj) の形式で書くつもりか?
この書き方だとエディタの補完が効かないので激しく作業効率が悪いわけだが

638 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 11:50:58.44 ID:CsE6YZtW.net]
>>627
メリットはないだろうね



639 名前:デフォルトの名無しさん [2016/09/09(金) 11:52:48.11 ID:kBQSHV64.net]
>>627
4文字って何って話だよ

640 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 11:57:16.30 ID:CsE6YZtW.net]
スタイルの統一ってメタプロのためでしょ?
普通に書く場合はどっちだっていいし、見た目の統一なんてさらに気にするポイントじゃないし。

641 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 12:01:21.07 ID:xpG9Ka1d.net]
というかそもそも、
統一しなくてもよいように、そのために
どちらの表記でもよいようになっている
もしくはそうする予定なのに
統一する意味あんの?

642 名前:デフォルトの名無しさん [2016/09/09(金) 12:08:44.98 ID:G0RBn0pa.net]
>>629
autoが4文字だろ?
これより長いstd::basic_string<char,std::char_traits<char>,std::allocator<char>>とかなら
autoにすると短くすっきりするが、
4文字より短い例えばintをautoにしてもそういう効果がないばかりか
厳密には1文字損してるだろって話だよ

643 名前:デフォルトの名無しさん [2016/09/09(金) 12:09:29.33 ID:G0RBn0pa.net]
アンカー間違えた
s/>>629/>>630/gっと

644 名前:デフォルトの名無しさん [2016/09/09(金) 12:12:46.72 ID:kBQSHV64.net]
>>633
float f();

auto f() ->float;
って書いたら一文字損してるって思うの?
どういう計算???

645 名前:デフォルトの名無しさん [2016/09/09(金) 12:21:26.23 ID:G0RBn0pa.net]
>>635
逆だよ
それは1文字得してる

646 名前:デフォルトの名無しさん [2016/09/09(金) 12:26:40.05 ID:kBQSHV64.net]
何言ってるのかわかんねー
文字の数を数えれないのかな…

647 名前:デフォルトの名無しさん [2016/09/09(金) 12:27:41.92 ID:G0RBn0pa.net]
std::basic_string<char,std::char_traits<char>,std::allocator<char>>とかなら
autoにすると短くすっきりする

これの意味わかる?

648 名前:デフォルトの名無しさん [2016/09/09(金) 12:36:32.00 ID:kBQSHV64.net]
>>638
戻り値の型がそれだったとして
trailing-return-typeを使うと文字数は6文字(autoと ->)増える事に変わりないだろ?何言ってるんだ?



649 名前:デフォルトの名無しさん [2016/09/09(金) 12:40:28.34 ID:G0RBn0pa.net]
>>639
まさかと思ったが、やはりそういうことか
よし、おまえはtrailing-return-typeを使うな

これにて一件落着

650 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 12:49:10.42 ID:tc9dXmwp.net]
引数に依存しないならどっちだって同じさ。
->以下を省略するのは別な話

651 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 12:51:16.50 ID:4oqKijqb.net]
聞きたいんだけど引数無しのコンストラクタが無いクラスってあり?
絶対にコンストラクタで引数を入れないといけない

652 名前:デフォルトの名無しさん [2016/09/09(金) 12:51:31.27 ID:CB2F3RXF.net]
autoが本当に役に立つのはこういうケースだな

okns.webcrow.jp/text/CPP0xFAQ.html.ja#auto

変数の型が template 引数に強く依存している場合は、auto なしにコードを書くのは本当に難しくなるだろう。 例えば:


template<class T, class U> void multiply(const vector<T>& vt, const vector<U>& vu)
{
// ...
auto tmp = vt[i]*vu[i];
// ...
}
tmp の型は T と U の乗算結果になるが、それが正確に何型であるか人間の読み手が見出すのは難しい。 しかし、もちろんコンパイラは、自身が扱っている適切な
T と U が何型であるかを知っている。

653 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 12:52:12.20 ID:CB2F3RXF.net]
ageたスマン

654 名前:デフォルトの名無しさん [2016/09/09(金) 13:05:31.22 ID:kBQSHV64.net]
>>643
autoではなくautoキーワードを使った機能の一つであるtrailing-return-typeの話してたんだけど

お前の例を借りるなら
template<class T, class U> auto multiply(const vector<T>& vt, const vector<U>& vu) ->decltype(vt*vu)
こんな感じで引数の名前を返り値の型の決定に使いたい時の為に導入された。あとはlambda

655 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 13:23:41.38 ID:EcclX7iE.net]
>>642
「デフォルトコンストラクタが存在しないクラスを作ってもよいか?」
あるいは「クラスは必ずデフォルトコンストラクタを持つべきか?」
という質問かな。

外部から何かの値を指定しないと正常な状態にならないって対象なら
デフォルトコンストラクタなしの方が、間違った使い方をされなくて済む。
具体的には…今すぐ思いつくのは、
「ファイル名を指定、コンストラクタ中でファイルを開くクラス。
デストラクタでファイルを閉じる」とか(そもそも良い設計か分からんけど)。
この場合はデフォルトコンストラクタじゃ意味ないよね。

656 名前:デフォルトの名無しさん [2016/09/09(金) 13:28:11.41 ID:kBQSHV64.net]
>>642
普通にある。
例えばstd::lock_guard

657 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 14:32:40.92 ID:QrmkumON.net]
>>642
あり?といういか引数無しがデフォルト

658 名前:デフォルトの名無しさん [2016/09/09(金) 14:54:03.88 ID:aqM9pKJ0.net]
>>648
コンストラクタで絶対に引数をとらなければならないクラス設計はありかなしかという話だろう。



659 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 15:04:50.30 ID:QrmkumON.net]
>>649
あっそうかwちゃんと読んでなかった
ありかなしかで言えば「あり」としか言えない

660 名前:デフォルトの名無しさん [2016/09/09(金) 15:05:33.87 ID:G0RBn0pa.net]
ビルトインにだって初期値必須のものがあるくらいでねえ
そもそもなぜ初期値を指定するのかという目的論をすっ飛ばしたべき論に価値はあるのか

661 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 16:15:29.42 ID:iGJJBn3T.net]
最近、生のconstructorは晒さずに、面倒でもfactoryかbuilder用意したほうが良い気がしてきた。

662 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 18:00:44.85 ID:6P7ccOtX.net]
>>651
そんなのあったっけ?

663 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 18:52:54.42 ID:Sz+zzzeN.net]
>>653
参照

664 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 19:28:06.08 ID:xbXKfh8v.net]
複合型をビルトイン型と称すとは
頭の悪さに恐れ入る

665 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 19:54:51.32 ID:2SLUNITP.net]
ビルトインをビルトイン型と見間違うとは
目の悪さに恐れ入る

666 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 20:18:37.35 ID:Sz+zzzeN.net]
>>655
ビルトイン型って知らないけど Fundamental Types のことを言ってる?

667 名前:デフォルトの名無しさん [2016/09/09(金) 20:24:24.90 ID:G0RBn0pa.net]
N3797でbuilt-inを検索すると...
oeratorsが必ずついてくるな
そりゃ悪かった

class宣言せずに使える型、そう言いたかっただけだ

668 名前:デフォルトの名無しさん mailto:sage [2016/09/09(金) 21:49:08.07 ID:Hwi6cA5k.net]
const int i{100}; // 初期値必須



669 名前:デフォルトの名無しさん mailto:sage [2016/09/10(土) 13:58:51.44 ID:qsgFq9Gu.net]
関数の引数と戻り値はstd::stringとかではなくconst char*を使うべきというのを見つけたんだけど正しいのか?

670 名前:デフォルトの名無しさん mailto:sage [2016/09/10(土) 14:05:38.05 ID:fEVz11Vc.net]
C++で作られたdll(関数が色々定義されてるやつ)をC++の別プログラムAに読み込ませる
プログラムAに対してjavascriptで使用する関数を指定してってのをやりたいけどできるのかな

プログラムAはただjavascriptを指定するだけと結果出力
javascriptはどの関数をどんな引数で実行するかを指定する
スクリプトってのをよく理解してないからアドバイスほしい

671 名前:デフォルトの名無しさん mailto:sage [2016/09/10(土) 14:15:01.34 ID:TwDosbdA.net]
>>660
ソイツはバカ

672 名前:デフォルトの名無しさん [2016/09/10(土) 14:26:38.33 ID:pUoIS14d.net]
>>660
fstreamをstringに依存させないために
C++98ではopenの引数がconst char*だが
C++11ではstringを渡せるようになったので
fs.open((string(

673 名前:デフォルトの名無しさん [2016/09/10(土) 14:27:46.41 ID:pUoIS14d.net]
fs.open((string("filename") + ".ext").c_str(), ios_base::in)が
fs.open( string("filename") + ".ext , ios_base::in)で
済むようになり結構便利だね
stdの作者じゃない一般ユーザな俺らにとって、
std同士での相互依存は別に構わんのに無駄に不便だったのがC++98

独善的な「正しさ」を誰も喜ばない例だと思うぜ

674 名前:デフォルトの名無しさん [2016/09/10(土) 14:28:54.01 ID:pUoIS14d.net]
あ、引用符が閉じてない・・・ 許せ

675 名前:デフォルトの名無しさん mailto:sage [2016/09/10(土) 20:03:47.79 ID:fxMjDbn4.net]
右辺値参照が使えるようになったし、クラスオブジェクトをそのまま返してもオーバーヘッドにはならんでしょ

676 名前:デフォルトの名無しさん mailto:sage [2016/09/10(土) 20:40:19.15 ID:LBKbagU5.net]
typedef enum
{
kOne = 1,
kTwo,
kN
}e;

const int n[kN]={0,100,200};

template <int N> class A
{
public:
int a[N];
};

int main()
{
A<n[kOne]> a;
return 0;
}

こんな感じのやりたんだけどnが非constだって怒られる
なにか代案ありません?

677 名前:デフォルトの名無しさん mailto:sage [2016/09/10(土) 20:45:26.68 ID:QhorBMPI.net]
>>667
constexpr int n[kN]={0,100,200};

678 名前:667 mailto:sage [2016/09/10(土) 20:51:12.77 ID:fvQgZoM4.net]
うちのVS2010ちゃんがそんなもの知らないと言っております



679 名前:デフォルトの名無しさん mailto:sage [2016/09/10(土) 20:57:30.16 ID:QhorBMPI.net]
>>669
template<int N> struct constant { static const int value = N; };
template<int N> struct n;
template<> struct n<kOne> : constant<100> {};
template<> struct n<kTwo> : constant<200> {};

A<n<kOne>::value> a;

680 名前:667 mailto:sage [2016/09/10(土) 21:00:17.01 ID:fvQgZoM4.net]
>>670
よさそう
ありがとうございます

681 名前:デフォルトの名無しさん mailto:sage [2016/09/10(土) 23:13:18.30 ID:LzJTocys.net]
>>660
それはその言葉の真意を理解すれば正しくもあり正しくもなし

682 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 00:28:13.04 ID:bDOLl/8E.net]
引数はともかく、戻り値を常にconst char*にするのはつらい
メンバ変数で持ってるものだったらconst char*で返せるけど
関数内でジェネレートした文字列だったらどうするんだ?

683 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 00:32:24.15 ID:bDOLl/8E.net]
void func( char *output, int max_buffer )
↑こんなインターフェースもあり得るけど
呼び出すときに一体バッファサイズをどのぐらい用意すれば良いんだ?
という問題が出る
関数内でmallocして返す方法もあるけど
呼び出しもとで開放しなきゃならないから嫌だ
std::string使いましょうよ

684 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 00:44:49.84 ID:T7xxiiqM.net]
うちの会社にいるレガシープログラマもクラスを引数にするのを嫌うな

685 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 01:12:15.86 ID:NvSd/4YA.net]
税金泥棒は、RMPについて何も理解できていない
分からないくせに、ひたすらコピペを繰り返す
突っ込んだ話を始めると、チンプンカンプンで付いて来れなくなる

686 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 01:30:52.05 ID:Y3qTK8mc.net]
gccはC++11のmoveとかつかわんでも、呼出側がスタックに用意したところに
せっせと返値を書き込んでるのでクラスを返値にしたところでcopyとか余計なことはしないな。

687 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 06:19:48.63 ID:Cz5G8II8.net]
コピーする必要がなかったかも知れないのにコピーしておいて余計なことはしていないとな

688 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 08:52:00.54 ID:uFO7Kr12.net]
返り血にmove使うと事態は悪化



689 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 10:11:38.91 ID:5FDuUIWg.net]
拭き取ろうと擦れば擦るほど赤く血塗られた範囲が広がって…。

690 名前:デフォルトの名無しさん [2016/09/11(日) 13:09:13.01 ID:QVUfpLVG.net]
特定の関数があるなしで呼び出す関数をわけたいのですけど方法はありますか

template<typename T> void hoge(T val)
{
val.hage(0);
}

template<typename T> void hoge(T val)
{
val.husa(100);
}

691 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 13:55:18.24 ID:KOEkGnWi.net]
SFINAE使えばできる

692 名前:デフォルトの名無しさん [2016/09/11(日) 14:53:31.90 ID:h0ayt47M.net]
コードではSSE命令をまったく使わず、コンパイラ最適化でSSE使ってもらいやすくする方法って
どこかに書いてありますか?

693 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 15:31:44.83 ID:9/O5tJ2a.net]
type_traitsのテストクラスばかり使っていたらSFINAEの書き方忘れた

694 名前:デフォルトの名無しさん [2016/09/11(日) 15:50:46.32 ID:hGR6Mbre.net]
>>683
https://msdn.microsoft.com/ja-jp/library/7t5yh4fd.aspx

695 名前:デフォルトの名無しさん [2016/09/11(日) 22:14:42.57 ID:OIs9p1U8.net]
void func( char *output, int max_buffer )

これはさ、max_bufferで指定した範囲で対応出来るようにするための引数だろ
呼び出す側でintの範囲なら自由に決められるに決まってるだろ

696 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 22:19:35.02 ID:m0F7Ld2f.net]
↑アスペ

697 名前:デフォルトの名無しさん [2016/09/11(日) 22:20:45.93 ID:OIs9p1U8.net]
いやいや、outputの最大値を一緒に渡すのは常識だろう

698 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 22:25:57.81 ID:2EFm3ZKd.net]
要するに、
char b[128];
func(&b[16],128-16);
ってやって、特定の範囲で処理できるのも利点だろうといってるんだと。
あんまりやらないけど。



699 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 22:34:43.72 ID:T7xxiiqM.net]
文字列クラスでもできるけど

700 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 22:37:36.83 ID:2EFm3ZKd.net]
substrだっけか?

701 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 22:38:54.98 ID:m0F7Ld2f.net]
『要するに』
超能力者>>689のオツムが心配だ

702 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 22:40:38.21 ID:2EFm3ZKd.net]
チガッテマスカ?

703 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 22:43:30.84 ID:m0F7Ld2f.net]
>>693
>>689の解釈は
『max_bufferで指定した範囲』
『intの範囲なら自由に』
という表現と整合しない。

704 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 22:45:10.47 ID:2EFm3ZKd.net]
オーバーフローを指定するような間抜けなことをわざわざするんかいな。

705 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 22:46:59.51 ID:m0F7Ld2f.net]
>>695
>>688は「intの最大」でなく「outputの最大」と言っているのだが

706 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 22:48:58.46 ID:2EFm3ZKd.net]
>>686の頭にはなんか特殊用途でもよぎったんじゃね?
俺が懇意すぎたかな・・・。Orz

707 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 22:51:16.46 ID:m0F7Ld2f.net]
深い意味はない
単に>>674を見て並んでいた単語に連想した自分の知識を反射的に書き込んだだけ

708 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 22:54:31.75 ID:2EFm3ZKd.net]
俺は>>686ではない。それはそうかもな。
俺はC++ではstd::まで書くStl派なので、このところ生配列は使ったことがない。
というか、オーバーフロー怖くて使いたくない。



709 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 23:01:21.72 ID:67F7MmNh.net]
生配列を使ったことないってことはないだろ
インターフェースにstlのコンテナとかを露出したらコンパイラ依存になっちゃうじゃん
てか高速に処理したくてスタックに配列を積みたいときとかどうするわけ?

710 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 23:04:52.03 ID:2EFm3ZKd.net]
競プロ解いてるだけだから問題にならん。
まぁ、しばらく黙るわ。

711 名前:デフォルトの名無しさん [2016/09/11(日) 23:09:47.79 ID:OIs9p1U8.net]
俺が言いたかったのはだね、

void func( char *output, int max_buffer )

のようにchar *outputを渡すような時は、
バッファオーバーフローを防ぐために一緒にサイズも渡すってのが、
C言語での使い方では常識化してるって事だ。

712 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 23:12:11.14 ID:m0F7Ld2f.net]
わざわざ補足しなくても
そんなことはみんな知ってるから

713 名前:デフォルトの名無しさん [2016/09/11(日) 23:14:19.23 ID:OIs9p1U8.net]
>>674 が変な事言ってたからだ

714 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 23:17:06.20 ID:67F7MmNh.net]
競プロでSTLコンテナなんて使うか??
アルゴリズムとかはそのまま使えるけどコンテナは普通生配列か必要に応じて自前の使うだろ?

715 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 23:19:39.01 ID:2EFm3ZKd.net]
ガチ勢じゃないからね。
最近ではリングバッファほしい位で満足してるよ。
STLコンテナで解けないなら、アルゴリズムが悪い事が多い。

716 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 23:20:05.58 ID:m0F7Ld2f.net]
>>704
>674の懸念は別に変じゃないぞ
変なのは>>674を理解できなかったお前だ

717 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 23:20:10.89 ID:T7xxiiqM.net]
>>700
規格準拠度が低いクソみたいなコンパイラを使わない

718 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 23:22:00.72 ID:m0F7Ld2f.net]
どうしたいきなり
>>700も関係無いことを言いだして



719 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 23:22:32.77 ID:m0F7Ld2f.net]
誤 700も
正 700と

720 名前:デフォルトの名無しさん [2016/09/11(日) 23:23:32.91 ID:OIs9p1U8.net]
>>707
いやいや、おかしいよ。
void func( char *output, int max_buffer )
を使うのにバッファを意識しないプログラムとかありえないだろ

バッファがどのくらいか分からんのに
void func( char *output, int max_buffer )
とか間違ってるだろ。

これCの使い方だぞ

721 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 23:28:22.83 ID:T7xxiiqM.net]
>>705
競プロなんていうマイナー分野の話なんかしてないし
実行時間のほとんどはアルゴリズム依存なんだから1%未満のオーバーヘッドが影響するわけが無い
固定長配列はarrayを使うべきだし、動的にサイズを変えないといけない場合vectorでまとめて確保して普通のnewした配列として使えばいい
他人の競プロのコード見たら使いまくってるしな

722 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 23:39:10.29 ID:m0F7Ld2f.net]
>>711
よくわかった
>>674の『バッファサイズをどのぐらい用意すれば良いんだ?という問題が出る』
を単語レベルに近い連想で文を捉えるから珍妙な解釈になる
レスを100回読み直せ

723 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 23:46:15.15 ID:M5lO5IQC.net]
ID:2EFm3ZKdの背伸びが痛々しい。
このスレで一番出来ない子が何をいっちょまえにレスしてんだか…。
なぁーにが「競プロ解いてるだけ」だよド素人が。

724 名前:デフォルトの名無しさん [2016/09/11(日) 23:48:48.59 ID:OIs9p1U8.net]
>>713
だからよ、
>バッファサイズをどのぐらい用意すれば良いんだ?という問題が出る
って言うような疑問がおかしいんであって、

void func( char *output, int max_buffer)

はサイズを指定して使うもんだ。それ以外にあるかよ。
パターンもパターンやんけ。

バッファサイズがわからん状態で、、
void func( char *output, int max_buffer)ってのはあり得ないんだよ

725 名前:デフォルトの名無しさん mailto:sage [2016/09/11(日) 23:49:06.36 ID:2EFm3ZKd.net]
>>714
はっはー。おだいじんさまぁ〜。

726 名前:デフォルトの名無しさん [2016/09/11(日) 23:54:09.86 ID:IuKZJB78.net]
>>715
別の関数で必要なサイズを返すのか?
変更が別スレッドだったら、さらにロック、アンロックの関数がそれぞれ必要になるな。

727 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 00:00:05.72 ID:JmiC7f4k.net]
じゃー背伸びついでに言っとくわ。
その関数voidだから失敗したかどうかわからんから、バッファ入力サイズを推定できない。

728 名前:
ドキュメント読め。
[]
[ここ壊れてます]



729 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 00:03:56.69 ID:JmiC7f4k.net]
チッ間に合わなかった。

730 名前:デフォルトの名無しさん [2016/09/12(月) 00:04:01.94 ID:GwVwE6OL.net]
いやいや、
void func( char *output, int max_buffer)
ってのは

char *output に結果を返すんだよ。
そんなのもわからんのか。

max_bufferはオーバーフローを防ぐための物だ。
何を言ってんだ一体

731 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 00:04:29.54 ID:hz43BbCS.net]
例外使わないのか
初心者なのかレガシープログラマなのか

732 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 00:04:37.05 ID:Tu0jZEI4.net]
>>715
その部分の日本語の理解が間違っているとわざわざ教えてやっているのに
他にどういう理解があり得るのかも考えずゴミレスを繰り返すとは
アスペなだけでなくて荒らしのつもりなのか?

733 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 00:05:58.76 ID:JmiC7f4k.net]
>>720
そんなちゃんぽん仕様にしなくても戻り値一個設定すれば済む話じゃないか。
汚いと思う。 []
[ここ壊れてます]

735 名前:デフォルトの名無しさん [2016/09/12(月) 00:07:03.07 ID:GwVwE6OL.net]
Cやってたらvoid func(char *output, int max_buffer)なんてパターンだろ。
基本中の基本だろ。

736 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 00:08:06.86 ID:JmiC7f4k.net]
染まってるのか。
まぁいいや。
黙るって言ったから黙る。

737 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 00:08:07.10 ID:WISOHly2.net]
723 : デフォルトの名無しさん 2016/09/12(月) 00:05:58.76 ID:JmiC7f4k
>>720
そんなちゃんぽん仕様にしなくても戻り値一個設定すれば済む話じゃないか。
汚いと思う。

738 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 00:09:36.24 ID:Tu0jZEI4.net]
バッファサイズ指定の関数で溢れた時に例外をスローするのは珍しいな
Visual C++の_s関数の配列オーバーロードはそんな仕様だった気もするが



739 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 00:09:38.22 ID:WIrRwO5G.net]
>>715
https://msdn.microsoft.com/ja-jp/library/cc429127.aspx
バッファサイズを指定できても、結果を正しく格納するのに必要なバッファサイズはわからない
ってことはあるんだよ。

740 名前:デフォルトの名無しさん [2016/09/12(月) 00:11:17.09 ID:GwVwE6OL.net]
void func( char *output, int max_buffer)
これはさ、max_buffer以内で絶対に納めるって前提があるんだよ。
その為のmax_bufferだぞ。

max_bufferの指定が間違ったらエラーなんだよ。
他にどういう使い方あるんだよ

741 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 00:11:25.69 ID:XcxNhSoL.net]
>>728
マクロでパスの最大規定されてる

742 名前:デフォルトの名無しさん [2016/09/12(月) 00:13:42.09 ID:GwVwE6OL.net]
結果を正しく格納するのに必要なバッファサイズが、max_bufferだろ。
char *outputのサイズがmax_buffeなんだよ

char *outputがオーバーフローしないように、max_bufferを上限に処理をして、
char *outputで返せばオーバーフローしないって仕組みなんだよ。

743 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 00:14:04.49 ID:Tu0jZEI4.net]
まさか>>728のやさしいレスを見てもまだ世迷い言が続くとは
これはホンモノだ

744 名前:デフォルトの名無しさん [2016/09/12(月) 00:18:26.76 ID:GwVwE6OL.net]
おまえなにもわかってないだろ。
何ひとつ自分で説明してないだろ。

745 名前:デフォルトの名無しさん [2016/09/12(月) 00:21:57.49 ID:U6Ajls88.net]
>>732
老害プログラマによくいる切り捨てられても気にしない、切り捨てによって発生したバグが確認されて初めてバッファーサイズをプログラム内の定数値で変更する人なんでしょ。

C++使ってるなら正しく処理する為には多大な面倒が発生する手法なんて使うなって事なんだけど老害にはそれが理解出来ないらしい。

746 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 00:22:27.92 ID:/3fOrQXc.net]
max_bufferがあるからバッファオーバーフローを防ぐことが出来る
逆にmax_bufferが効果を発揮する状況というのは
結果を正しく格納するのに必要なバッファサイズがmax_bufferを越える時だ
従って>>731の最初の行は間違っている

747 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 00:23:39.94 ID:XcxNhSoL.net]
最大値をどうすればいいのかって話でしょ
728の例だと別の場所で最大値は決まってる
でもバッファサイズ3とか小さすぎると欲しい情報は帰ってこない
当然オーバーフローはしないけど

748 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 00:27:04.07 ID:feiUf+9B.net]
バッファっていう概念がちょっとズレてんのかもな
Cやってる人はコップでプールの水をすくうとき
コップがバッファだ
コップの大きさで回数を重ねてすくう
コップを最大まで大きくしなきゃいけないとか
必要なコップサイズは、などとは考えない
それがバッファ



749 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 00:28:34.40 ID:Tu0jZEI4.net]
>>730
文脈を理解できない低能は去れ

>>733
健常者なら『レスを100回読み直せ』で理解できると思ったので敢えて説明しなかった失礼
では説明してやろう
<呼び出し側>
 vector<char> result(★);
 func ( &result[0], result.size() );
>>674はこの★をどう決定するかが
呼び出し側コードを書く者の負担になると言っている

750 名前:デフォルトの名無しさん [2016/09/12(月) 00:28:41.75 ID:GwVwE6OL.net]
だからよ、C++の使い方で
void func( char *output, int max_buffer)
を使おうとすれば、Cのバッファを意識する使い方以外に無いだろ。

それをストリングクラスの代わりに
void func( char *output, int max_buffer) を使う手ももあるが、
バッファのサイズをどうするかが問題、とか言ってるから、

そういう使い方はしないし間違ってるって言ってんだろがよ

751 名前:デフォルトの名無しさん [2016/09/12(月) 00:30:38.58 ID:GwVwE6OL.net]
void func( char *output, int max_buffer)
これはよ、char *outputのサイズを意識しない限り、動かせないプログラムだよ

このサイズが分からない時に、
void func( char *output, int max_buffer) を使うってのは無いんだよ
それをあるって言うから、無いって言ってんだよ 👀
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)


752 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 00:35:45.75 ID:XBLhc0H+.net]
>>740
一旦これだけは言っておくが
おまいの言っていることは正常でしかもごくあたりまえのこと
おそらくその点を繰り返す必要はもうないし
そのことはみんな分かってる

読み込む前にサイズ分からないものがあるよね?
そのときは固定サイズじゃ読み込めないよね、
的なことをおまいの相手は繰り返し言ってるんじゃないか?
配列に対するベクタの利点みたいな部分を言いたがってる気がする

753 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 00:40:53.14 ID:XcxNhSoL.net]
最大値がどっかで決まってるか、outputにヌルいれると必要なサイズ返るとかが普通じゃね
その関数だけじゃ必要なサイズがわからんというお話
パスが欲しいのにバッファ小さすぎてドライブレターだけ返ってきても意味無いわけで

754 名前:デフォルトの名無しさん [2016/09/12(月) 00:43:58.37 ID:GwVwE6OL.net]
void func( char *output, int max_buffer)
を使う前にはサイズを把握してないと駄目ってだけだよ。

それが把握できんのにこういうCライクな使い方は間違ってるって俺は言ってるだけだよ

755 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 00:47:09.50 ID:hz43BbCS.net]
C言語的なインターフェイスは不便だからC++らしく書きましょう

756 名前:デフォルトの名無しさん [2016/09/12(月) 00:47:23.61 ID:U6Ajls88.net]
>>743
格納サイズを把握してたらmax_bufferなんて要らなくね?

757 名前:デフォルトの名無しさん [2016/09/12(月) 00:51:26.47 ID:GwVwE6OL.net]
>>745
いやオーバーフロー対策の最大値だから
引数で明示的にサイズを渡しましょうって取り決めだ

758 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 01:02:10.22 ID:Tu0jZEI4.net]
>>743の達した結論が
>>674とほぼ同じに思えてならない



759 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 01:10:30.26 ID:hz43BbCS.net]
いまさらそんな40年前からある常識を言われも困る

760 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 01:13:36.21 ID:WIrRwO5G.net]
>>730
>728 で挙げた MSDN のページにそんな規定は見当たらないんだけど、どこ見て言ってるの?
MAX_PATH の類のことを言ってるなら、よくある勘違いだろうと思うんだ。
https://www.google.com/search?q=GetModuleFileName+MAX_PATH
d.hatena.ne.jp/satosystems/20100807/1281152224

761 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 06:52:52.36 ID:y21Asc3i.net]
MAXPATH があてにならんのは確かだが
サイズ取得せずにリトライするのもダメ臭が

762 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 08:08:53.69 ID:46mLPt5D.net]
書き込んだサイズを返すくせに必要なサイズを
調べる機能が規格に無いstd::mbstowcsはクソ

763 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 09:10:27.05 ID:HZgwCDH3.net]
プログラミングのコードを書く時のタブvsスペース戦争がついに決着
www.gizmodo.jp/2016/09/tab-vs-space.html
www.gizmodo.jp/images/2016/09/160901coding2.jpg
www.gizmodo.jp/images/2016/09/160901coding3.jpg

764 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 09:38:06.48 ID:y21Asc3i.net]
優れたデータから生まれるクソ同然な解説

765 名前:デフォルトの名無しさん [2016/09/12(月) 10:27:38.72 ID:CKtP/5ek.net]
おまえTAB派かw

766 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 11:33:25.20 ID:+YsVO5lS.net]
タブスペース混在で起きる問題とは?

767 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 12:31:33.38 ID:ZblQazo2.net]
タブ幅が決まってないのが一番の問題だな。2,3,4,8みんなバラバラ。

768 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 13:20:51.17 ID:s5J5+4ba.net]
pythonが致命傷を負う



769 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 13:57:05.61 ID:x7GAwvaf.net]
>outputにヌルいれると必要なサイズ返るとかが普通じゃね

必ずしもそれが有効かどうかわからないから困る
必要なバッファサイズを取得してから実際に文字列を取得するまで
関数を二回呼び出す必要があり

770 名前:Aここに時間差があるのが問題
マルチスレッドで問題になる
取得したバッファサイズは既に古い情報になっている可能性がある
これを解決するにはLockするしかない
obj->lock();
size_t buffer_size = obj->func( nullptr, 0 );
std::vector<char> output( buffer_size );
obj->func( outputr.data(), output.size() );
obj->unlock();
こんなコードはまさに糞であるということ
しかも、lock、unlockをし忘れても、たまたまのタイミングの物で、そこそこ動きそうというのが怖い
つまり、ほんの短い期間の間に、文字列が更新されて取得したバッファサイズが無効になるほうが珍しいだろう
しかし、ありえないことではない
1000回に1回だけ失敗するというのが一番怖い

これに比べれば、関数内でnew char[]して返すほうが、まだいくらかマシに思えるぐらい
しかしこれをやると、帰ってきた文字列は自分で開放しなければならないのか
あるいは開放してはダメなのか、解放関数はdelete[]なのかfreeなのかあるいは別の専用関数なのか
ということが関数ごとにマチマチになり、非常に煩雑になる

std::string output = obj->func();
のほうが断然良い、誰の目にも明らか、短い、シンプル
lock、unlockを呼び出し元が保証しなければならないのは良くない
必要な処理が一発の関数呼び出しでキマるように設計すれば、同期処理はobj内に隠蔽できる
こちらのほうが良い
単に文字列取得するだけでlock、unlockが必要というのは狂気の沙汰
>>700のような特殊な場合を除いては、ね
[]
[ここ壊れてます]

771 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 15:42:12.58 ID:tjH2oYJX.net]
ってか

void func( char *output, int max_buffer)

なんてI/Fを書いちゃってることが問題なんじゃねーの?
これでなんとかしようって考えたって生産性ないし

772 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 16:16:50.47 ID:ZblQazo2.net]
cのIFだから古臭いのはしょうがない。

効率悪くなってもstd::string吐くようにラップして二度と触らないのが吉。

773 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 16:45:03.11 ID:+C5a7cGR.net]
void func( char *output, int max_buffer)
これ、ニワカが作ったダメな見本

普通
size_t func( char *output, size_t max_buffer)

774 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 17:01:45.51 ID:2Vwoh4uN.net]
ゴミが得意気に難癖つけてて笑える

775 名前:デフォルトの名無しさん [2016/09/12(月) 17:58:57.32 ID:KCLSxXC3.net]
同じ意味じゃんw

776 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 18:06:15.51 ID:5/ctHFsj.net]
マルチスレッドのリテラシーも無いのにクソみたいな長文をドヤ顔で貼り付ける>>758が哀れで仕方ない
2回のfnucの呼び出しの間にバッファーが変更される状況では単独の呼び出しすら破綻していることが理解できないらしい

777 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 18:13:03.76 ID:Brz5tLm8.net]
彼に限らず何らかの問題意識を訴える子が
なぜか突然マルチスレッドを絡めてくるのはもはや伝統芸
そして一通り話を聞いてみると
「そうだね、排他だね」としか言いようがないことも毎度

778 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 18:27:11.87 ID:x7GAwvaf.net]
std::string output = obj->func();
の場合、funcの中で排他処理をしていれば、呼び出し元は排他処理について気にしなくてよい
アトミックな操作ということになる
文字列の取得にかかわらず、アトミックが期待される処理は
分解せずに一つの関数で実現すべきである
personオブジェクトの取得なら、person = obj->get_person(); とすべきであり
person.set_name( obj->get_persion_name() );
person.set_age( obj->get_persion_age() );
のように分解してしまうとアトミックでなくなるから、やはりロックが必要になる
外からオブジェクトをロックする、そういうI/Fをobjに用意するということは
何時でも何処でも好き勝手にロックできるというわけで
使い方を誤るとデッドロックを引き起こす可能性がある
ロックの順番はクラス設計者が明確に管理し、隠蔽すべき

さて、文字列取得を二つの関数に分けて行うとアトミックな操作でなくなるから
呼び出し元で排他処理をしなければならなくなる
obj->lock();
size_t buffer_size = obj->func( nullptr, 0 );
std::vector<char> output( buffer_size );
obj->func( output.data(), output.size() );
obj->unlock();
これは非常に面倒なので君らは直ぐにでもstd::stringを返すラッパーを書く
そうすれば結局同じことになるので、初めからstd::stringを返せばよい
もとより文字列の取得はアトミックであることが期待されるわけだから
一回の関数呼び出しで行うのが筋である



779 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 18:43:38.31 ID:5/ctHFsj.net]
一生懸命考えた結果がコレか?
呼び出し側が自らコンカレントな使い方する前提でロック必須と言われてもねぇ
その内vectorのremove&eraseイディオムにも排他が必要で狂気の沙汰とか言い出しそうだな

780 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 18:44:31.77 ID:x7GAwvaf.net]
どれだけの処理を一つの関数で行うべきかは
どこまでの処理がアトミックと期待されるか、による
文字列の取得はアトミックであることが期待されるので
一つの関数でアトミックに実行すべき、となる
場合によればアトミックの範囲がもっと広がることもある
例えばpersonの情報が欲しいとき、名前と年齢を別々に取得するのはよくない
名前の取得と年齢の取得のそれぞれが独立して排他処理してあって正しく動いたとしても
全体として名前と年齢のペアが一致しなくなる可能性があるから
だからこの場合、personの情報は一つの関数呼び出しで行い、アトミックである必要がある

なので、一つの関数で実行すべきこと、アトミックに実行すべきこと、は
文字列の取得なんかよりは大きな範囲、粒度になることはある
大きくなることはあり得るということ

が、間違っても、文字列の取得などというプリミティブな処理を
バッファサイズの取得と文字の取得の二つに分割したほうが良い
とはならない

781 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 18:50:01.82 ID:x7GAwvaf.net]
>>767

>必ずしもそれが有効かどうかわからないから困る

と書いた通り、すべての場合とは言っていない
困る場合があるといっている
そして、困る場合での話である

782 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 19:40:26.75 ID:5/ctHFsj.net]
なるほどつまりは>>765だな
この論法は非constメンバー関数を使ったイディオムに広く使えそうだ

「〜って普通だろ?」
 ↓
「必ずしもそれが有効かどうかわからないから困る(長文略)」

783 名前:デフォルトの名無しさん [2016/09/12(月) 21:04:54.81 ID:U6Ajls88.net]
>>767
呼び出し側だけとは限らんでしょ。
非同期でデータメンバーを更新しつつ、更新通知をだすクラスとか

784 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 22:29:31.42 ID:2Vwoh4uN.net]
一発でstringやらvectorで返すなら常識的に言ってロックは必要ないわな
何話してるのか分かってない奴が力んでるな

785 名前:デフォルトの名無しさん mailto:sage [2016/09/12(月) 23:29:00.60 ID:3LkOVCr7.net]
タブ幅は8である。但し、一度タブキーを叩くと4つのスペースが入る
但しそれで8つのスペースとなるときはそれを一つのタブに換える

786 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 00:03:18.93 ID:ZWXE0Cz9.net]
いやタブとスペース混ぜるのは論外でしょ

787 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 00:39:27.54 ID:UjtLBJZw.net]
混ぜると誰かがコード整形したときに全部差分に出るから邪魔

788 名前:デフォルトの名無しさん [2016/09/13(火) 00:51:46.06 ID:nTkG/AQ9.net]
>>772
そんな事でロックが必要かどうか決まらないと思うが何を言ってるんだ?



789 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 01:06:54.89 ID:TGJSQl0M.net]
VZエディターとか混ぜてたな

790 名前:デフォルトの名無しさん [2016/09/13(火) 01:20:10.44 ID:7Uxx8QPD.net]
基本的にインデントが何段階も必要な入れ子はよくない
許容範囲は2つまでだな

791 名前:デフォルトの名無しさん [2016/09/13(火) 02:29:06.46 ID:qRIDBJHy.net]
論点がずれてんじゃんw

792 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 04:10:18.62 ID:ifCWTkZq.net]
>>775
差分取るときホワイトスペース無視すればいいだろ

793 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 05:08:48.43 ID:E9px3zRx.net]
std::get_temporary_buffer ってなんであんなクソ仕様で作ったの

794 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 05:14:57.49 ID:ifCWTkZq.net]
それ知らんかったけどクソだからC++17でdeprecatedになるのか

795 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 07:08:31.21 ID:fa0Yw14i.net]
引数の異なる関数を関数テーブルにまとめる方法ヘルプミー

796 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 07:11:36.75 ID:jvr3tDVu.net]
型が違うから難しくね?同名でオーバーロードするんじゃだめなんかい。

797 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 07:21:28.20 ID:6YUjJJm0.net]
テーブルの別の要素で引数と返り値の型を記憶しておき、任意の関数ポインタ型にreinterpretして保存
呼び出し時は記憶した引数と返り値のの型に対応する関数ポインタ型にreinterpretしてから呼び出す。

798 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 07:56:45.02 ID:BC6G6r/f.net]
>>783
それどうやって使うつもりなの?



799 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 08:09:28.64 ID:LgTr6ZxA.net]
>>785
やはり別物で統一して記憶させるしかないか…
要は入れてから後にキャストだよね

>>786
関数群30ぐらいあるからそれを管理しやすくしたい
別にenumで関数名入れておくのと
関数名に対応したインデックス拾ってくる関数を用意しておいて
後に使いやすく

800 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 08:11:50.46 ID:jvr3tDVu.net]
酷い設計って言っていい?

801 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 08:20:36.44 ID:BC6G6r/f.net]
>>787
> 後に使いやすく

ごめん、全然使いやすくなるイメージがないんだが...
単にまとめときたいだけならクラス作って静的メンバ関数でいいような気がするし

802 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 08:29:56.17 ID:LgTr6ZxA.net]
>>789
関数名を別ファイルから取り出して動的に動かすためにはこれしかなかった
まとめておいてプログラム内で処理ならそれで良いけど
今のところそうなってるからそれに会わせるしかないんだ

803 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 08:32:38.69 ID:jvr3tDVu.net]
可変長引数取る関数内でスイッチするのと大差なさそう。

804 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 08:33:59.57 ID:Dh1MHapU.net]
>>791
はぁ??

805 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 08:39:26.37 ID:LgTr6ZxA.net]
>>791
結局どこかで分岐処理によるキャストするからほぼ変わらん気もする
これに関連する話だけど

int (*func)(void*)みたいな関数ポインタがあって
引数二つにするにはどうやってキャストしたら良いんだろうか

806 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 08:43:25.81 ID:kwiFGb/T.net]
まず関数の型をtypedefしようぜ。

807 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 08:47:38.13 ID:GD/RUd4Y.net]
windows のマクロまみれのメッセージディスパッチと同じようなことじゃろ

808 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 08:57:44.86 ID:jvr3tDVu.net]
ideone.com/BWJoEi
こういう感じのこと思いついたけど、できんかった。テヘペロ。
関数複製するんだから通ってほしいなぁ。
なんかテンプレマジックで通らんかなぁ。



809 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 09:02:38.95 ID:jvr3tDVu.net]
これができたら、ファクトリーメソッドがパラダイス。

810 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 09:51:20.93 ID:jvr3tDVu.net]
特定の型のパラメータパックってできなかったっけ?
Anyのパラメータパック食わせれば解決するんだけどなぁ・・・。

811 名前:デフォルトの名無しさん [2016/09/13(火) 11:14:43.16 ID:nTkG/AQ9.net]
やりたいことにたいして少し大仰だが、Boost.Pythonのようなものでインタプリタからどうやって型安全に関数を実行してるか見たら少しは参考になるんじゃない?

812 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 12:49:03.21 ID:BC6G6r/f.net]
>>790
> 関数名を別ファイルから取り出して動的に動かす
なら初めからそう書いてよ
使いやすさ云々じゃないじゃん
関数名を特定するのはいいけど引数は関数毎にバラバラなんでしょ?
結局どこかで分岐が必要な気がする
それとも引数は Variant みたいななんでも入れられる変数の配列にしてしまうとか

813 名前:デフォルトの名無しさん [2016/09/13(火) 17:00:07.27 ID:dUelqKgA.net]
>>783
#include <functional>

double foo(double x) { return x; }
int bar(int x) { return x; }

int main()
{
std::function<double(double)> table[2];
table[0] = foo;
table[1] = bar;
}

814 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 18:18:50.00 ID:LmZnag12.net]
>>801
コードサンクス
ただこれはintとdouble型に対してだからできるんじゃないのだろうか

>>800
そういうことだね
だからどこかでキャストし直す必要がある…はず
あらかじめどこかにパターンを定義しておいてそれはもうスイッチ文に頼るしかないかなって考えてる

815 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 18:20:35.88 ID:LmZnag12.net]
>>797
俺もパラダイスを目指している
Cならエラー出ずにできるみたいなんだよね
C++でxmlをjsonにパースしたり
jsonを簡単に読み込む方法ってあったっけ?
ないならC#も考えないとな…

816 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 19:01:39.86 ID:bDDPvjQm.net]
実行時に文字列を比較して分岐することのどこにパラダイスを見いだせるんだよ

817 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 20:22:41.37 ID:BC6G6r/f.net]
>>803
調べてないけどライブラリぐらいあるんじゃね?

818 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2016/09/13(火) 21:57:21.43 ID:7T7m5n2i.net]
質問です。

placement newの関数の宣言と定義はどこに書くのが正解ですか? よろしくお願いします。



819 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 22:04:54.99 ID:6F1+hrdF.net]
>>805
picojsonとやらを使ってみた
便利なんだけど配列二つあると積む現象が起きてしまった…

820 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 22:23:58.73 ID:eOd6ZBDo.net]
jscriptで読めるから
WSHでアプリで実行

821 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2016/09/13(火) 22:34:06.63 ID:7T7m5n2i.net]
ReactOSというOSの開発をしています。
ヘッダー<new>と<crtdbg.h>のnewの宣言が衝突していて、<new>が使えません。
どうしたら正しく配置newが使えますか?

822 名前:デフォルトの名無しさん [2016/09/13(火) 22:52:09.89 ID:7Uxx8QPD.net]
自分のソフトの販売権がカシオが取得とかねつ造してたやつだ

823 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2016/09/13(火) 22:59:05.82 ID:7T7m5n2i.net]
わかりました。ReactOSのSTLかCRTのコードが間違っているということですね。
配置newは<new>をインクルードしたら使えなければおかしい。

824 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 23:06:52.68 ID:7T7m5n2i.net]
自分の商品の販売権をどう決めようが勝手でしょう。会社名を出したのは悪かったが。

825 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 23:08:15.35 ID:jz2gr8q/.net]
ライバル会社かなにか?

826 名前:デフォルトの名無しさん [2016/09/13(火) 23:15:36.33 ID:7Uxx8QPD.net]
>>812
おまえカシオが権利を所有とか書いてたんだろ
カシオと専売契約交わしたみたいに書いてたろ

カシオが知らんと思うてか 

827 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 23:21:08.73 ID:7T7m5n2i.net]
>>814
誤解です。メールで交渉中でした。

828 名前:デフォルトの名無しさん [2016/09/13(火) 23:29:04.40 ID:7Uxx8QPD.net]
>>815
うそつけこら。おまえがメール送ってただけやろが。
往生際が悪い。全部バレとんねん 

狭い業界でごまかせるとおもうなよ



829 名前:デフォルトの名無しさん mailto:sage [2016/09/13(火) 23:33:01.44 ID:7T7m5n2i.net]
すみません

830 名前:デフォルトの名無しさん mailto:sage [2016/09/14(水) 00:03:18.61 ID:3NkcLiKm.net]
反省してます

831 名前:デフォルトの名無しさん mailto:sage [2016/09/14(水) 01:01:49.61 ID:QlIAHX1m.net]
なんやなんや

832 名前:デフォルトの名無しさん mailto:sage [2016/09/14(水) 02:49:36.41 ID:Xhtlj9Sh.net]
マトラボスレ勢いなさすぎ。
誰かイコライザのコーディング教えてくれや

833 名前:デフォルトの名無しさん mailto:sage [2016/09/14(水) 03:15:05.48 ID:Pl2/S2ti.net]
イコライザってなに?

834 名前:デフォルトの名無しさん mailto:sage [2016/09/14(水) 03:18:25.05 ID:EjX8GKMV.net]
信号処理

835 名前:デフォルトの名無しさん mailto:sage [2016/09/14(水) 03:53:21.14 ID:qczVS6OA.net]
FFTか。言葉しかしらん。

836 名前:デフォルトの名無しさん mailto:sage [2016/09/14(水) 04:57:26.35 ID:8Y7m8SBN.net]
高速フーリエ変換か

837 名前:デフォルトの名無しさん mailto:sage [2016/09/14(水) 08:16:10.34 ID:58JMlqKS.net]
placement newの関数を自分で書く素振りを見せながら
newをインクルードとか、何言ってんだか。
標準ヘッダーが衝突するなら処理系作った奴に聞け

838 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2016/09/14(水) 11:33:48.49 ID:3NkcLiKm.net]
>>825
ありがとうございます。



839 名前:デフォルトの名無しさん mailto:sage [2016/09/14(水) 18:34:08.81 ID:O92aoqkR.net]
CppUnitによるテストって登録件数が多くなった場合…なんとかならんもんかね
1000を越えるとかマジで嫌なんだが

840 名前:デフォルトの名無しさん mailto:sage [2016/09/14(水) 18:59:00.04 ID:EjX8GKMV.net]
何が嫌なんだ
時間がかかるってことなら分割したらいいじゃないか

841 名前:デフォルトの名無しさん mailto:sage [2016/09/14(水) 19:15:10.96 ID:O92aoqkR.net]
>>828
コードがめっっっちゃ汚くならね?
1000個テストするなら1000行似たこと連続で書くんでしょ?

842 名前:デフォルトの名無しさん mailto:sage [2016/09/14(水) 19:27:01.68 ID:EjX8GKMV.net]
>>829
テストコードも名前を付けてモジュール化すればすれなりに見やすくはなるんじゃないか
どこで何のテストをしているか見つけやすくなるし

843 名前:デフォルトの名無しさん mailto:sage [2016/09/14(水) 19:57:41.83 ID:C1VR7bWr.net]
>>830
ファイル分割するってことだろうか?

844 名前:デフォルトの名無しさん mailto:sage [2016/09/15(木) 00:14:31.25 ID:SldeaLfO.net]
別にそれCppUnit 固有の問題じゃねーじゃん。
お前のテストコード作成全般の問題だろ。

845 名前:デフォルトの名無しさん mailto:sage [2016/09/15(木) 01:28:50.14 ID:NSWALpAD.net]
>>829
「似たこと連続で」ならマクロでも何でも使ってまとめりゃいいだろ。

846 名前:デフォルトの名無しさん [2016/09/15(木) 06:31:33.82 ID:eCorjc8D.net]
ideone.com/VtKz07

nonbiri-tereka.hatenablog.com/entry/2014/06/25/093327を見て勉強中なのだが、
なぜ、test_addでaddをラップしてるのかがわからない
addに引数を持たすことが出来ないのか。
また、addの足し算が引数をaが1-100だった場合、今の俺では100個記述することになる
マクロを使用とかすれば解決できそうだけど、適切に使う方法が思いつかないんだ…
外部ファイルとかからの読み込みでも良いので何かしらヘルプ・・・・

void FunctionTest::test_add(){

CPPUNIT_ASSERT_EQUAL(3+2,func->add(3,2));
}

この部分を何個も書いて
CPPUNIT_TEST(test_add);//メンバ関数の登録ってのを

CPPUNIT_TEST(test_add);//メンバ関数の登録
CPPUNIT_TEST(test_add1);//メンバ関数の登録
CPPUNIT_TEST(test_add2);//メンバ関数の登録
.....となってしまう

847 名前:デフォルトの名無しさん mailto:sage [2016/09/15(木) 08:43:36.54 ID:wjxOqoMl.net]
コンパイル時と実行時の違いがあるから直接指定はできないよ。
lambdaとかbindでいけんじゃね?試してないけど。

848 名前:デフォルトの名無しさん mailto:sage [2016/09/15(木) 09:20:50.32 ID:Dfv6m4lx.net]
凝ったことをした挙句テスター自体にバグ仕込んでテスト無効とか馬鹿らしいから
1回きりと割りきってシンプルに書くという考えもある



849 名前:デフォルトの名無しさん [2016/09/15(木) 10:13:14.67 ID:dJJn2WBE.net]
template<typename...Args> void hoge(Args...args){}
hoge({1,2,3});
としたら
hoge(std::initializer_list<int>)
のように推論して欲しいのですが何故できないのですか

850 名前:デフォルトの名無しさん mailto:sage [2016/09/15(木) 10:40:36.62 ID:krf6YZ+h.net]
ideone.com/zJhotB

851 名前:デフォルトの名無しさん mailto:sage [2016/09/15(木) 10:41:24.48 ID:krf6YZ+h.net]
投稿を暴発してしまった。
自動では推論してくれないみたいだねぇ。なんでだろう・・・。

852 名前:デフォルトの名無しさん mailto:sage [2016/09/15(木) 14:05:17.34 ID:OOrl8bCH.net]
勝手に変換されても困るべ

853 名前:デフォルトの名無しさん mailto:sage [2016/09/15(木) 16:06:02.66 ID:qnepHcI/.net]
C++PRIMER 5TH KINDLE版でシコシコするのはどう思いますか。
尼ではさっぱり人気がないようですが。

854 名前:デフォルトの名無しさん mailto:sage [2016/09/15(木) 16:40:29.83 ID:gyul79OX.net]
あの手の本は意味がないよ
どんだけ、言語の仕様に詳しくなっても何の得にもならんからな

855 名前:デフォルトの名無しさん mailto:sage [2016/09/15(木) 19:22:13.92 ID:BBoNUH+R.net]
熱い江添批判

856 名前:デフォルトの名無しさん mailto:sage [2016/09/15(木) 20:07:08.11 ID:95/CUQAP4]
おっと江添の悪口はそこまでだ

857 名前:デフォルトの名無しさん mailto:sage [2016/09/15(木) 20:07:39.04 ID:axqGMSjf.net]
おっと江添の悪口はそこまでだ

858 名前:デフォルトの名無しさん mailto:sage [2016/09/15(木) 20:59:53.90 ID:XkA1sBZN.net]
少なくとも言語仕様を把握してない奴にライブラリは作って欲しくない



859 名前:デフォルトの名無しさん mailto:sage [2016/09/15(木) 21:49:37.24 ID:7lTxlp13.net]
つまりハゲはライブラリ作るな

860 名前:デフォルトの名無しさん mailto:sage [2016/09/15(木) 21:50:15.59 ID:umQizf+V.net]
言語仕様が
げんこつ塩ラーメン
に見えた

ちょっと夜食食ってくる

861 名前:デフォルトの名無しさん mailto:sage [2016/09/16(金) 06:27:51.21 ID:nhdK38ZD.net]
「言語仕様」→「げんごしよー」→「げんこつしおらーめん」
漢字の視覚情報として入力されたパターンを、
脳内でいったん音声情報に変換してから似た言葉に錯誤したのね。

俺の認識手順と違うみたいなので理解するのに手間取った。

862 名前:デフォルトの名無しさん mailto:sage [2016/09/16(金) 07:23:14.79 ID:1ml378Vd.net]
>>849
言語仕様の後にライブラリのラだけ見えたからさらに連想を促進した

863 名前:デフォルトの名無しさん mailto:sage [2016/09/16(金) 09:43:39.74 ID:wscqtQV8.net]
おまえらハゲを敬え

864 名前:デフォルトの名無しさん [2016/09/16(金) 10:02:58.29 ID:q1C1+fLl.net]
dnaimg.com/2011/06/07/personal-rocket/img_001.jpg

865 名前:デフォルトの名無しさん [2016/09/17(土) 19:36:33.08 ID:/lrAuukn.net]
ハゲ(笑)

866 名前:デフォルトの名無しさん mailto:sage [2016/09/17(土) 20:17:46.81 ID:n9MPs/HW.net]
ハゲが世界の技術を支えてる

867 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 00:04:19.65 ID:5e40+2Z7.net]
VSのリードプログラマもハゲだな

868 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 00:05:00.62 ID:+iC0HZAY.net]
ハゲが好きだなお前ら



869 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 00:23:27.97 ID:+IdphFbB.net]
ハゲは絶倫!

870 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 00:45:36.25 ID:5e40+2Z7.net]
質問なんだけどnewするとき例外処理する人はvectorとかでpush_backする時も毎回tryしてんの?

871 名前:デフォルトの名無しさん [2016/09/18(日) 02:44:35.25 ID:9+5kS6ok.net]
してると言えばしてるけど、多分君の思ってる感じではしてない。

872 名前:デフォルトの名無しさん [2016/09/18(日) 02:48:48.02 ID:9+5kS6ok.net]
例外は例外的にしか発生しないので、層の上の方の集約するポイントでcatchしてる。
あんまり細かくやっても意味ないしハゲる。

873 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 03:18:08.82 ID:+iC0HZAY.net]
つーか、例外発生する可能性のある箇所でcatchしないとかないでしょ

874 名前:デフォルトの名無しさん [2016/09/18(日) 03:29:47.07 ID:L03d0R0a.net]
あまり細かい事気にしてるとハゲるよw

875 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 03:43:50.19 ID:1yHXSEjx.net]
問い1「newするとき毎回try catchするバカはvectorのpush_backもtry catchするのか?」
答え「している可能性あり」

問い2「newするとき毎回try catchするバカは非noexcept関数の呼び出しも毎回try catchするのか?」
答え「バカの行動は一貫性が無いのでしていないだろう」

876 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 04:12:03.01 ID:CEGgaeCy.net]
// Aをnewしてveにpush_back
// push_backは落ちないようcatchのおまじない必須
try { ve . push_back( new A( new R(), new S() ) ); }
catch ( ... ) {}

877 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 04:50:42.33 ID:EIh/dcA1.net]
そんな基本的なコンテナのエラーを、catchしても、
プログラマーが回復させることは出来ない

強制終了されるままにしておいた方がいい

下手すれば、エラーログに書き込む際、さらにエラーが起きるかも

878 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 05:42:12.02 ID:+IdphFbB.net]
クラスの型が一致しなくてcatch出来なかった例外は一体何処へ吹っ飛んでいくのだろうか…



879 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 06:02:09.25 ID:+jQZdVYD.net]
NULLチェックしろよとチェックツール使った品質チームが指摘してくるんだが、そもそもnew失敗したら例外になるからNULLチェックまで来ねーだろ、お前のチェックチーム馬鹿すぎだろって突っ込みを誰もしないで数年

880 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 06:29:33.73 ID:CQAObZ4Q.net]
バカってなんでnewしたがるんだろう

881 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 06:44:28.23 ID:xYSNtktv.net]
>>867
チェックツールが古い仕様向けに作られているのだろうか。
newが失敗した場合はNULLが返る、だからnewの後は常にNULL(ポ)を確認せよ。

指摘を聞き流すだけでなく、チェックする部署の人に
ツールのバージョンだか設定だかを現状に合うように改めてもらったら?

882 名前:デフォルトの名無しさん [2016/09/18(日) 08:41:57.71 ID:TydQpzdL.net]
pimpl = new impl;
if(pimpl == nullptr) []()[[maybe_unused]]{throw std::bad_alloc();}();

883 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 08:48:34.25 ID:2blUzsBI.net]
c++ は最新仕様だけ覚えていればいいってもんではない。

884 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 09:21:00.65 ID:/1FlYzFJ.net]
>>868
make_uniqueはコンストラクター引数の補完が働かないので使いづらい

885 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 09:22:05.47 ID:6SQSBv8I.net]
仕様だけは詳しいが、実務は全くできない奴いるなw
正直最新の仕様なんかについてうんちく垂れるより、古い仕様でもきちんと動くほうがいい。

中には、よくわからずに使って、はまって納期遅れさせるバカもいるwwww

886 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 09:33:08.57 ID:1yHXSEjx.net]
日本語が理解できずに話をすり替えてしまう>>871みたいな低能や
例外処理の基本も理解できていない>>865みたいな低能が
その品質チームとやらにいるんだろう

887 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 10:19:05.24 ID:EIh/dcA1.net]
new にも、NULLを返すバージョンと、例外にするバージョンなど、色々あるんじゃね?

888 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 11:18:56.17 ID:WPlu++Kc.net]
例外処理って目的によって異なる
素直にシステムがエラー吐いて終了で問題ない場合
特定のエラーを検出して改善の為のログを残したい場合
止まると困るシステムの場合十分なリカバリー手段を用意して例外検出と復旧処理を行う

通常のアプリケーションにnew なんて使わないって書いてあったけど
プログラムの目的とエラーに対する必要な強度を仕分けして
全体としてどの様に例外処理を組み込むかって事だよね



889 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 14:08:31.95 ID:5e40+2Z7.net]
やっぱりC++って集団で使うのには向いてないんだよね
どのC++の話してるか分からないか

890 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 14:09:15.23 ID:EIh/dcA1.net]
ゲームエンジンの本には、自分でメモリプールを作っている例が、よく載っている

newをその都度呼ぶと遅いから、まとめて何十個分のメモリを確保する。
そしてその中から、今使う分だけを使う

でも、それぐらいの機能、既に誰かが、ライブラリを作っていそうなもんだが

891 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 14:14:46.13 ID:/A9gXhFE.net]
boost.pool

892 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 14:42:48.66 ID:5e40+2Z7.net]
もちろんメモリプールなんてたくさん出回ってるし今度標準にも入る
でもそれらの性能が十分とは限らない

893 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 14:43:41.47 ID:Qq7O8IvU.net]
昔、lokiとかあったやん?
使ったこと無いからしらんけど
あれにもメモリプールなかったっけ

894 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 15:03:20.15 ID:vvzKkhQt.net]
>>869
えええええええ

いつからそんなクソ仕様になったん…
例外じゃないのか

895 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 15:26:11.91 ID:vvzKkhQt.net]
と思ったけどC++て全部チェック例外だっけ
newのたびにtryさせられるよりsegmentation faultのほうがマシだな

896 名前:868 mailto:sage [2016/09/18(日) 16:16:16.34 ID:xYSNtktv.net]
>>882
勘違いさせたならすまん。>>869 で書いた
「newが失敗した場合はNULLが返る、だからnewの後は常にNULL(ポ)を確認せよ」
っていう方が古いC++でのnewの動作ね。
古いチェックツールがそんなエラーを返してるんじゃないの? という意図。

現在はnewの失敗は例外が返るのがデフォルト動作だよな。
nothrowで例外を出さないように指示したら今でもnullptrが返るけど。

897 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 16:24:41.60 ID:ygUqx6Ix.net]
>>883
C++は全てjavaでいう非チェック例外じゃないの?

898 名前:デフォルトの名無しさん [2016/09/18(日) 16:45:14.01 ID:/VzCUPpk.net]
お前らの例外話は何故いつもnewなのか



899 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 17:36:57.68 ID:5e40+2Z7.net]
newにおける例外の扱いのベストプラクティスが示されていないから

900 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 17:37:48.57 ID:+iC0HZAY.net]
ないものは自分で見つけんだよ

901 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 18:15:15.56 ID:sUrpOA8l.net]
ひょえー

902 名前:デフォルトの名無しさん [2016/09/18(日) 18:28:35.89 ID:L03d0R0a.net]
うはー

903 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 19:43:10.68 ID:1yHXSEjx.net]
>>886
newを見るとすぐtry catchで囲わないといけないと妄想してる882みたいな低能が多いからでは?
catchを見ると「近くにnewが有るはず」と脊髄反射したに相違ない

904 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 19:45:44.60 ID:XW30Cfu8.net]
それよりもnullチェックってどうやるのがスマートなんだ?
使ってるvector全部をif文にぶち込んでるコード見かけて驚愕したんだが

905 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 20:00:16.67 ID:aEHfUxVO.net]
vectorに挿入する前にチェックすればいい

906 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 20:06:12.23 ID:5e40+2Z7.net]
一部の用途を除いてnewが失敗する可能性は考えなくていい

907 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 21:15:21.06 ID:sUrpOA8l.net]
説明願います

908 名前:デフォルトの名無しさん mailto:sage [2016/09/18(日) 21:23:31.21 ID:ORSLx8xU.net]
VBのCSV出力が遅いんだけど
Cで書いたら速くなんの?



909 名前:デフォルトの名無しさん mailto:sage [2016/09/19(月) 01:02:18.86 ID:aveOgqLD.net]
むしろその手の処理はVBの方が速い

910 名前:デフォルトの名無しさん mailto:sage [2016/09/19(月) 01:04:42.68 ID:aveOgqLD.net]
>>885
んなこたーない []
[ここ壊れてます]

912 名前:デフォルトの名無しさん mailto:sage [2016/09/19(月) 12:39:37.38 ID:d/dsjAXw.net]
>>896
文字列連結を馬鹿みたいに繰り返して遅くなってるんじゃないの

913 名前:デフォルトの名無しさん mailto:sage [2016/09/19(月) 12:39:37.43 ID:d/dsjAXw.net]
>>896
文字列連結を馬鹿みたいに繰り返して遅くなってるんじゃないの

914 名前:デフォルトの名無しさん mailto:sage [2016/09/19(月) 12:51:32.58 ID:0BKQBe6K.net]
かなり大事な事ですねw
VBとかC#で遅いからといってCやC++にしたところで劇的に速くなる保証なんかないのにな
何の言語にしようがどうしようもないか自分の組み方がおかしいかどちらか

915 名前:デフォルトの名無しさん mailto:sage [2016/09/19(月) 13:10:11.98 ID:fA1B/38Y.net]
>>896
ファイル出力が遅いのかテキストの組み立てが遅いのか

916 名前:デフォルトの名無しさん mailto:sage [2016/09/19(月) 13:15:05.33 ID:3VQNeREi.net]
VBのCSVライブラリ使ってるなら、
規格(?)に準拠するようにいろんな処理してるから
かなり遅いっぽいぞ

エスケープが要らないとかダブルクォーテーションが要らないとか
条件を限定できるなら高速化の余地もあるんでないかい

917 名前:デフォルトの名無しさん mailto:sage [2016/09/19(月) 13:17:08.06 ID:MZBT2IFS.net]
>>899>>902>>903
おまえらこのスレで面倒見るつもりなのw?

918 名前:デフォルトの名無しさん mailto:sage [2016/09/19(月) 19:50:10.96 ID:urF+pqo3.net]
むしろ同じロジックでコードを書いて比較してほしい。



919 名前:デフォルトの名無しさん mailto:sage [2016/09/19(月) 19:55:07.34 ID:80/BHnqI.net]
アルゴリズムの選択を誤ればJavaにすら負ける
大事なのはアルゴリズム

920 名前:デフォルトの名無しさん [2016/09/19(月) 20:12:40.99 ID:sZXP+7ot.net]
Javaで適切なアルゴリズムを使うPGと同一人物が
C++で不適切なアルゴリズムをわざわざやるかよ
同一人物が使ってどっちが優れた結果を出せるかだろ

921 名前:デフォルトの名無しさん mailto:sage [2016/09/19(月) 21:10:21.81 ID:urF+pqo3.net]
ここではアルゴリズムってよりライブラリ依存だな。
CSVのパースは真面目にROC準拠でやろうとすると頭が禿げるぐらい面倒くさい。
現実に扱うCSVはもっと前提条件を少なくできるだろうから、
自分で簡易版のパーサーを実装した方がいいかも。

922 名前:デフォルトの名無しさん mailto:sage [2016/09/19(月) 22:22:17.19 ID:aveOgqLD.net]
ROCってのが何なのかわからんが
RFC 4180なら所詮ワンパスなのでそんなに難しくない。
C#で自作したものをブビライブラリと比較したら10倍程度の速さだった。
どうせTextFieldParser使ったんだろ

923 名前:デフォルトの名無しさん [2016/09/19(月) 22:40:37.56 ID:Kz778z8P.net]
CSVなんかただの記号区切りのテキストファイルだろ。
区切ってテキスト出力すりゃええだけじゃろ

924 名前:デフォルトの名無しさん mailto:sage [2016/09/19(月) 22:50:33.73 ID:w3ljrVli.net]
質問者は出力について悩んでいる人に
パーサーの自作をすすめる
これがクソスレのクオリティ

925 名前:デフォルトの名無しさん mailto:sage [2016/09/19(月) 23:03:23.99 ID:eTcqfU0K.net]
パーサー次第で出力に差が出るだろう、そんなことも分からんのか???

926 名前:デフォルトの名無しさん mailto:sage [2016/09/19(月) 23:41:33.03 ID:byZSyyWN.net]
テキトーな仕様のオレオレCSVの自作を勧める奴がいまだに存在するとは。

927 名前:デフォルトの名無しさん mailto:sage [2016/09/19(月) 23:45:11.41 ID:r/G6SK9c.net]
1行ずつ読んでいくんじゃないのか

928 名前:デフォルトの名無しさん mailto:sage [2016/09/19(月) 23:47:22.25 ID:pyTHmoe6.net]
オレオレ仕様のcsvが氾濫してるから今更どうしようもない
それが問題になるようなら保存形式にcsvを用いる事自体が間違い



929 名前:デフォルトの名無しさん mailto:sage [2016/09/19(月) 23:49:18.87 ID:r/G6SK9c.net]
csvってカンマ区切りということ以外の仕様ってあるのか?

930 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 00:09:05.24 ID:Em9B638f.net]
無い
オレオレの中でもメジャーなのに後付けでRFCが出来ただけ

931 名前:デフォルトの名無しさん [2016/09/20(火) 00:30:40.31 ID:o1tJ3Pdk.net]
>>907
普通に見たことあるけど
vectorじゃなくlist使って遅いとか
>>911
質問読めてない糞民が何言ってんだか

932 名前:デフォルトの名無しさん [2016/09/20(火) 02:23:46.55 ID:E+J9y3sP.net]
ポインタの無いC++を誰か作ってくれないかな…。

933 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 03:38:57.96 ID:MJf3DPDB.net]
>>919
C++なら、あんまりポインタ意識しなくてもできるでしょ。
ライブラリが吸収してくれるんだし。

934 名前:デフォルトの名無しさん [2016/09/20(火) 06:57:10.89 ID:83nQEiQC.net]
> vectorじゃなくlist使って遅いとか

Javaしか使えないやつの付け焼き刃か

935 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 07:29:03.31 ID:l/rjpK7G.net]
>>916
区切り文字(カンマと改行)をデータとして含む場合にどうするかについての仕様がある。
それが面倒くさいなら最初からタブ区切りテキストにしておけと思うが。

936 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 07:41:11.11 ID:h/QlA5En.net]
ここで休んでいくか
o.8ch.net/fg0j.png

937 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 08:17:39.33 ID:yT+pR0RD.net]
CSVは汎用性とか規格準拠とか考え始めると面倒らしいね。
カーニハンとパイクの有名な『プログラミング作法』第4章でも
素朴なプロトタイプから汎用ライブラリに磨き上げていくネタに使われてる。

引用符でくくられた文字列フィールドに含まれるカンマを読み飛ばすとか、
文字列に引用符文字を含ませる場合のエスケープ処理、
フィールド先頭以外にいきなり出てきた引用符文字はどう扱うべきか、
そういった問題。

結局、仕様のあいまいな部分は、データをExcelに処理させて
どう解釈するかを観察し、それに動作を合わせるという妥協策とか。
面白いけど奥深い(面倒くさい)話が載ってる。

938 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 08:23:33.04 ID:pi/Zyw6M.net]
面倒くさがりの俺はカンマのあとのスペースの扱いをどうするか考えるのをやめた



939 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 08:30:50.00 ID:nnGYYj6O.net]
実際問題、業務で扱うCSVがRFCにそってた試しがない
データ中に,とダブルクォーテーションがないこと前提で全フィールド囲みなしとか
データの改行かどうかはフィールド数から判断しろとか

940 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 08:34:47.14 ID:9l0NUqqb.net]
空白は有効な値として取り込みマズければ前処理でなんとかしてくれというのがかんたん

941 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 08:49:26.68 ID:pi/Zyw6M.net]
>>927
空白のあとの引用符出現とか考えると面倒

942 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 15:15:36.96 ID:sn1HJBVo.net]
裏でExcel立ち上げてそいつにCSV読み込ませる
ってのがスマートなやり方かもしれん。

943 名前:デフォルトの名無しさん [2016/09/20(火) 16:11:59.45 ID:83nQEiQC.net]
手作業でか? COM使えよ

944 名前:デフォルトの名無しさん [2016/09/20(火) 16:34:35.12 ID:83nQEiQC.net]
ところでさ
bitsetって複数ビットへのアクセスってできたっけか?
00001111 から
0001 のprvalueを得たり、
00000000 を
00011100 にするのに
bs(4,2) = 0b111; みたいなこと

945 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 18:42:56.25 ID:yRlSWmtK.net]
今すぐN4606をダウンロードして20.9を読め

946 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 19:03:07.64 ID:ChLW8Xs7.net]
C++標準についてですが
よく言われる「ゼロオーバーヘッド原則」はどのように守られているのでしょうか?
たとえば委員会はこの原則を明文化して守っていますか?
または原則が委員の思想や感情だけによって守られていますか?
今後のアップデートにより破られることはありますか?
D&Eには「思想も進化する」というような文が見られますが設計思想の変更プロセスはマニュアル化されているのでしょうか?

947 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 20:52:23.19 ID:DFwXwRkO.net]
ゼロオーバーヘッドの意味するところはなんなのか知らんが、
仮想関数使った時点で間接参照になって現代のキャッシュマシンには厳しいオーバーヘッドになっていると思いますけどね。

948 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 20:54:50.75 ID:ChLW8Xs7.net]
たぶんあなたは「ゼロオーバーヘッド原則」を何かわかっていないですね。
とにかく標準規格の委員会の設計方針のルールをしりたいのです



949 名前:デフォルトの名無しさん [2016/09/20(火) 20:58:56.89 ID:k+TyjvZt.net]
キタ━━━━(゚∀゚)━━━━!!

950 名前:デフォルトの名無しさん [2016/09/20(火) 21:04:19.73 ID:obZzfy4A.net]
そりゃ原則なんだから、原則守られるだろう。
原則Goto文が使われる事は絶対無いのと同じだ。

951 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 21:10:11.42 ID:3ENBAG3F.net]
てかここで聞く質問じゃないだろ。直接委員会にメール送れよ。

952 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 21:12:30.36 ID:DFwXwRkO.net]
>>938
知らないなら答えないでください
とかいいだすぞwwwwwww

953 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 21:16:42.79 ID:tBN6CcRw.net]
よし教えてやろう
その言語機能を使わない人にとって(マシン語レベルで)余分な命令が生成されないこと
ただしそれは書いたコードに対する局所的なもので
スタートアップ時の処理のオーバーヘッドやワーキングセットの肥大化によるキャッシュヒット率低下ついては触れないのが常

954 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 21:17:17.91 ID:5hgqMPTY.net]
あかんやつか

955 名前:デフォルトの名無しさん [2016/09/20(火) 21:57:22.02 ID:83nQEiQC.net]
>>932
それはともかく、おまえは氏ね

956 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 21:59:44.26 ID:26fGody7.net]
>>933
明文化されたルールはないんじゃない?ルールにするメリットないからやらないだろうし。

957 名前:デフォルトの名無しさん [2016/09/20(火) 22:01:25.46 ID:83nQEiQC.net]
ヘリコプターがシアトル付近を飛行中に、ナビゲーション・システムと通信系が故障してしまい、現在位置を把握することができなくなってしまった。
機長は、近くに見えた高いビルにヘリコプターを寄せ、周りを旋回しながら、副操縦士に「私は今どこにいますか?」と大きな紙に書かせ、それをビルの中の人間に見せるように命じた。
ビルの中の人間は、大きな紙に「あなたは今、ヘリコプターの中です」と書いて答えてきた。

958 名前:機長はにっこりと笑って手を振り、副操縦士に言った。
「あれはマイクロソフトの本社ビルだ。ここから東へ向かえば空港があるはずだ」
「どうしてマイクロソフトの本社ビルだと分かったんです?」
「奴らはいつも、技術的には完璧だが、まったく役に立たない答えしか寄こさないからさ」
[]
[ここ壊れてます]



959 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 22:15:01.88 ID:ChLW8Xs7.net]
>>943
そうですか。ありがとうございます。

960 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 22:16:07.34 ID:Em9B638f.net]
>>933
そんな自縄自縛ルールを明示したらjavaみたいになってしまうだろ。

961 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 22:26:54.29 ID:A2psZARz.net]
>>912
えっ

962 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 22:51:13.68 ID:9l0NUqqb.net]
>>940
そんな機種依存の最適化を気にするのも広い意味でオーバーヘッドや

963 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 22:54:34.83 ID:wtHZC2ze.net]
>>931
bitsetは改良したらもっと使われると思うんだけどなあ
boostみたいにサイズを動的に変えられるようにするのとバイト列として取り出せるようにして欲しい

964 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 23:04:57.83 ID:2u6BtGm8.net]
>>947
バカにふれるな

965 名前:デフォルトの名無しさん mailto:sage [2016/09/20(火) 23:45:29.10 ID:g6KAU3qV.net]
ゼロヘア・アラウンド・オーバーヘッドの略

966 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 01:01:45.84 ID:vGo10QGu.net]
>>933
江添に訊け

967 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 06:53:20.55 ID:t4AsfpX5.net]
>>949
サイズを動的に変えるとなるとメモリーアロケーションが必要になるからなぁ
上限を 32bit/64bit に制限する手もあるけど中途半端感が拭えないし...
そもそも普通にビット演算で事足りるし

968 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 09:03:47.17 ID:K2D2Rq8+.net]
>>933 は例の人物の再来って感じだなぁ。
前スレッド終盤から、このスレッド序盤で活動した人の口調(文体)に似ている。

自分が理解しているレベルにぴったり適合し、自分が理解できる説明をされないと
「そんなことは聞いていません」「もっと実のある回答をお願いします」などと
慇懃無礼な態度で読み手の神経を逆撫でする質問者がいたんだよ。


ちなみに >>933 の質問には答えられません。



969 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 10:48:52.21 ID:7D4j/v4w.net]
シュトラウプ(うろ覚え)さんに直接メールすれば答えてくれそう。
そんな英語力は無いんだろうけど。

970 名前:デフォルトの名無しさん [2016/09/21(水) 14:04:05.66 ID:6wq1WTZb.net]
>>949 >>953
thx
なさそうってことはわかった

971 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 20:33:55.57 ID:mzpKxj3U.net]
>>954
神経を逆撫でをしたレスには見えたが
回答者がアスペな回答をしたからだったと記憶しているが。
お前、その時の回答者か?

972 名前:デフォルトの名無しさん [2016/09/21(水) 20:59:57.83 ID:6wq1WTZb.net]
スルー検定中

973 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 21:04:36.22 ID:49I69gX0.net]
ここもワッチョイ入れた方がいいと思うよ
C#の初心者スレとか酷かったのが大分良くなったし

974 名前:デフォルトの名無しさん mailto:sage [2016/09/21(水) 23:57:14.58 ID:juClqO0A.net]
>>952
メールしてみゆ

975 名前:デフォルトの名無しさん mailto:sage [2016/09/22(木) 00:08:42.02 ID:G5ENlyOZ.net]
諸事情と成り行きでコンストラクタがこんな風になったんだけど糞コードですか?
hoge(bool type) : base(type ? static_cast<base>(new a) : static_cast<base>(new b)){}

976 名前:デフォルトの名無しさん mailto:sage [2016/09/22(木) 00:19:01.74 ID:RtaHiGLM.net]
>>961
ポインタがstatic_cast<base>できるのか?

977 名前:デフォルトの名無しさん mailto:sage [2016/09/22(木) 00:21:49.80 ID:G5ENlyOZ.net]
>>962
ミス
正しくはstatic_cast<base*>

978 名前:デフォルトの名無しさん mailto:sage [2016/09/22(木) 00:46:02.45 ID:Pt+3vwTk.net]
実装はどうでもいいが
boolを取ってそれによってインスタンスの性質が(大きく?)変わるコンストラクタというのが




979 名前:用者視点からの一般論では糞っぽい設計だな []
[ここ壊れてます]

980 名前:デフォルトの名無しさん [2016/09/22(木) 00:54:34.74 ID:6AgJgQbd.net]
static_castしてる意味が解らん

981 名前:デフォルトの名無しさん mailto:sage [2016/09/22(木) 01:00:01.33 ID:G5ENlyOZ.net]
>>965
三項演算子だから型を合わせないといけない

982 名前:デフォルトの名無しさん mailto:sage [2016/09/22(木) 01:44:09.82 ID:eab4XCGG.net]
hogeにcreate_aとcreate_bみたいなstaticメソッド作って、ユーザーコード側で参考演算子書かせりゃいいのに
馬鹿すぎてそんなことも思いつかないなら、今すぐコプログラマーやめろ(´;ω;`)

983 名前:デフォルトの名無しさん mailto:sage [2016/09/22(木) 01:59:14.64 ID:sh3eyHdy.net]
きっと何かのテンプレートか何かに渡すとかで
コンストラクタがあの形じゃなきゃダメな制約が云々でしょ

984 名前:デフォルトの名無しさん mailto:sage [2016/09/22(木) 02:01:04.64 ID:G5ENlyOZ.net]
>>967
これが全く良くないのは分かってるがやりたくなさすぎる仕事だったから横着しすぎた感はある

985 名前:デフォルトの名無しさん mailto:sage [2016/09/22(木) 03:01:20.41 ID:7BuONNwf.net]
>>145
S只
ST只
STL只

貞子

986 名前:デフォルトの名無しさん mailto:sage [2016/09/22(木) 04:45:30.88 ID:uum3cLOt.net]
new bって初心者っぽい

987 名前:デフォルトの名無しさん mailto:sage [2016/09/22(木) 05:28:33.71 ID:gyLxLatL.net]
>>967
参考にします

988 名前:デフォルトの名無しさん mailto:sage [2016/09/22(木) 07:30:27.01 ID:RG/iP2c6.net]
ファクトリーメソッドが要るとみんなは気付いているが
政治的問題でなし崩しになっていると見た



989 名前:デフォルトの名無しさん mailto:sage [2016/09/22(木) 07:40:14.43 ID:vdVnk2cw.net]
ファクトリーメソッドでいい引数の渡し方ってある?っていうか引数の設計?
パラメータばっか増えてうまくまとめられない。

990 名前:デフォルトの名無しさん mailto:sage [2016/09/22(木) 14:13:51.56 ID:7wkfE+LH.net]
>>974
条件がわからんけどbuilderパターン使うとか

991 名前:デフォルトの名無しさん mailto:sage [2016/09/22(木) 14:39:48.97 ID:sh3eyHdy.net]
俺も条件がわからんが
テンプレートのパーフェクトフォワードが使えるかもしれないね

992 名前:デフォルトの名無しさん mailto:sage [2016/09/22(木) 23:49:28.05 ID:vdVnk2cw.net]
サンキュー。

993 名前:デフォルトの名無しさん [2016/09/23(金) 02:38:31.47 ID:FrbFFvPo.net]
初めから読んでみたんですが、
このスレ恐い人もいますね。

994 名前:デフォルトの名無しさん mailto:sage [2016/09/23(金) 13:12:24.83 ID:z2QCychJ.net]
おっかない人が鉞持って茂みに潜んでることもあるので覚悟して臨んで

995 名前:デフォルトの名無しさん mailto:sage [2016/09/23(金) 13:37:45.42 ID:ircl/elV.net]
C++やる人は怖いのですね

996 名前:デフォルトの名無しさん mailto:sage [2016/09/23(金) 15:04:30.06 ID:z2QCychJ.net]
C++をやったから怖くなったのか、それとも怖い人はC++に魅入られるのか、それともその両方なのか、それはまだ判りません

997 名前:デフォルトの名無しさん mailto:sage [2016/09/23(金) 16:12:15.84 ID:1AYxo37g.net]
std::array<int,3> ia = {1,2,3};
なんでいちいちサイズをしていなきゃいけないの?
コンパイラは右式からサイズを知れるはずだよね

998 名前:デフォルトの名無しさん [2016/09/23(金) 16:43:56.15 ID:DI5cYQNa.net]
arrayがクラステンプレートだからだよ
テンプレート実引数を推定できるのは関数テンプレートだけ



999 名前:デフォルトの名無しさん mailto:sage [2016/09/23(金) 16:50:29.51 ID:Z6rdhOh4.net]
もともと生配列なんて狭いスコープ内に閉じた使い方しかしてなかったし、あえてstd::array に変える気が起こらん。

1000 名前:デフォルトの名無しさん [2016/09/23(金) 16:56:36.61 ID:SmlWzTAW.net]
arrayってoparator[]が境界チェック無いとか困る〜

1001 名前:デフォルトの名無しさん mailto:sage [2016/09/23(金) 17:02:31.08 ID:1AYxo37g.net]
>>983
そう・・・・
使い物にならんな、標準なんかにするなよw

1002 名前:デフォルトの名無しさん mailto:sage [2016/09/23(金) 17:04:21.59 ID:k0FhbiHl.net]
サイズとか取れて便利じゃん。俺ベクタしか使ってないけど。

1003 名前:デフォルトの名無しさん mailto:sage [2016/09/23(金) 18:19:30.71 ID:z2QCychJ.net]
"std::array<int> ia = {1,2,3}" という文字列を読んで、括弧内の要素数を数えて
std::array<int,3> ia = {1,2,3}として書き換えてくれるテンプレートメタプログラミングすればいんじゃね?

1004 名前:デフォルトの名無しさん mailto:sage [2016/09/23(金) 18:28:49.47 ID:Z6rdhOh4.net]
template<std::size_t N> の文脈の中でだったら不要だしな

1005 名前:デフォルトの名無しさん mailto:sage [2016/09/23(金) 18:41:44.36 ID:jjS354wW.net]
配列をstd::arrayに置き換えなくてはならなくなった。
と被害妄想してグチを2chで垂れるのは間違いなく人生負け組

1006 名前:デフォルトの名無しさん mailto:sage [2016/09/23(金) 19:45:39.19 ID:k/GEXWfz.net]
新しいコンパイラならstd::experimental::make_arrayが使えるんでねぇの?

en.cppreference.com/w/cpp/experimental/make_array

1007 名前:デフォルトの名無しさん mailto:sage [2016/09/23(金) 20:07:45.67 ID:1AYxo37g.net]
ベタに配列でよくね?

1008 名前:デフォルトの名無しさん mailto:sage [2016/09/23(金) 20:08:53.66 ID:1AYxo37g.net]
>>990
2ちゃんに居る時点で負けだろw



1009 名前:デフォルトの名無しさん mailto:sage [2016/09/23(金) 20:23:26.18 ID:Z6rdhOh4.net]
algorithmにbeginとendを渡すときでも生配列でいいしな

1010 名前:デフォルトの名無しさん mailto:sage [2016/09/23(金) 20:26:55.96 ID:x7wdola9.net]
シンタックスシュガー

1011 名前:デフォルトの名無しさん mailto:sage [2016/09/23(金) 21:01:07.45 ID:FB5yu9xq.net]
サイズ欲しい時に変数用意したり、演算したりするのが面倒だし、余分な処理になるからじゃないの?
std::arrayはサイズ変数を保持していないし、演算もしていないし
at()使えば範囲チェックしてくれるし、生配列にも直接アクセスできるし
凄く便利だと思うけどな

1012 名前:デフォルトの名無しさん mailto:sage [2016/09/23(金) 21:20:41.97 ID:kJ5RCJcw.net]
超薄型コンドームがでて、感覚上生挿入と変わらないことが統計学的に証明されていても、気持ちの問題だからと生を求める人がいる

1013 名前:デフォルトの名無しさん mailto:sage [2016/09/23(金) 21:39:11.65 ID:nEqelPbM.net]
はい

1014 名前:デフォルトの名無しさん mailto:sage [2016/09/23(金) 21:39:50.82 ID:tPpdE/S0.net]
難しいなぁ

1015 名前:デフォルトの名無しさん mailto:sage [2016/09/23(金) 21:49:35.34 ID:pyQwxOFM.net]
arrayのメリット:コピーができる

1016 名前:デフォルトの名無しさん mailto:sage [2016/09/23(金) 21:59:45.45 ID:x7wdola9.net]
std::copy

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






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

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

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