1 名前:デフォルトの名無しさん mailto:sage [2021/08/09(月) 10:57:31.60 ID:JaaB5Egp.net] 前スレ C++相談室 part156 https://mevius.5ch.net/test/read.cgi/tech/1621389313/
75 名前:デフォルトの名無しさん [2021/08/11(水) 15:08:15.20 ID:MU7UJMps.net] >>67 ありがとうございます >>64 >現物で調べるならVisual Studioの[F12]が簡単だと思う それで判るのは自分で定義した可能性の高い n の型ですよね? 知りたいのは v.begin() + n に要求されている型のことです
76 名前:デフォルトの名無しさん mailto:sage [2021/08/11(水) 15:28:09.46 ID:EWMgwFeS.net] >>68 やっぱりそうですよね じゃあ>>65 の2個目の中黒の内容については引用?? 例のコードではjoinableなんか使ってないし>>7 が書いたのを試しもせずに真に受けた感じなのかな
77 名前:デフォルトの名無しさん mailto:sage [2021/08/11(水) 15:29:37.31 ID:EWMgwFeS.net] >>69 v.begin().operator+(n)とでも書き換えてoperator+で[F12]しろということではなかろうか
78 名前:はちみつ餃子 mailto:sage [2021/08/11(水) 15:43:43.66 ID:QcAq7ivU.net] >>69 ランダムアクセスイテレータには difference_type (またはそれに暗黙に型変換出来る何か) を足すことができて、 その結果の型はイテレータ自身と同じ。 https://timsong-cpp.github.io/cppwp/n3337/random.access.iterators
79 名前:デフォルトの名無しさん mailto:sage [2021/08/11(水) 15:52:06.26 ID:SyYdmIb8.net] >>66 >thread::joinable()って別にスレッドが終了したかの判定ではなくない? 実際にそのスレッドが実行中か待ちか終了しているかを表しているわけじゃないことはその通り。 で、たぶんそれで十分だからjoinable以上の機能は用意されなかった。 ところがそれが役に立つ場面があるよと言ったのが前スレ>>997 このスレの>>35 と同一人物かどうかは知らんが。
80 名前:デフォルトの名無しさん mailto:sage [2021/08/11(水) 15:54:21.05 ID:19rzwYjH.net] >>71 そういうこと
81 名前:デフォルトの名無しさん [2021/08/13(金) 02:38:58.72 ID:tLa9gek2.net] char *mystrcat(char *a, char *b) { // a に b を結合して return a; } みたいな関数を shared_ptr<char *> mystrcat(shared_ptr<char *> a, char *b) { // a に b を結合して return a; } みたいな実装にするとき参照カウンタが無限に増える心配はありますか? shared_ptr<char *> mystrcat(weak_ptr<char *> a, char *b) の方が良いのでしょうか? あと hoge = mystrcat(NULL, hage); みたいに使用されるときは mystrcat の中で new してコピーして new したポインタを返したいのですが問題ありませんか?
82 名前:デフォルトの名無しさん mailto:sage [2021/08/13(金) 02:56:15.88 ID:nopi39s7.net] >>75 shared_ptr<char *> だと、たぶんやりたいことはできてない。 shared_ptr<char[]> の間違いなんだろうと思うけど、この時点でコンパイルすら試してないのが見て取れる。 参照カウンタの動きは挙げられたソースだけじゃ読み取れないけど、無限に増えるなんてことはまず起こらない。 shared_ptr の use_count() で取れるから試してみればいい。 問題があるかどうかも自分で試してみればいい。何を「問題」とするかこちらにはわからないし。
83 名前:デフォルトの名無しさん mailto:sage [2021/08/13(金) 09:51:25.31 ID:BE9FMbqU.net] 個別の事例で心配ない、問題ないという返答を得たとしても理解が深まらない。 shared_ptr のメカニズムを理解できないと何度でも心配になるだけ。
84 名前:ヌういう理屈で参照カウンタが無限に増えると思ったのかを説明してみて。 考え方に間違いがあれば指摘するよ。 [] [ここ壊れてます]
85 名前:デフォルトの名無しさん mailto:sage [2021/08/13(金) 11:40:57.21 ID:UG8FRdqC.net] char *mystrcat(char *a, char *b) { // a に b を結合して return make_shared<char []>(a); } じゃいかんの しらんけど
86 名前:デフォルトの名無しさん mailto:sage [2021/08/13(金) 14:30:41.36 ID:vEVo7A6C.net] 適当な質問者と適当な回答者 ゴミとゴミをあわせてもゴミはゴミ
87 名前:デフォルトの名無しさん mailto:sage [2021/08/13(金) 18:27:35.00 ID:tLa9gek2.net] shared_ptr<char []> c(a); return &c[0];
88 名前:デフォルトの名無しさん mailto:sage [2021/08/14(土) 08:57:21.71 ID:dlgzlAXX.net] namespaceってどのように使うものなんですか? 存在意義がわからない。
89 名前:デフォルトの名無しさん mailto:sage [2021/08/14(土) 09:56:52.00 ID:2Gpa2MRC.net] >>81 大規模ライブラリを設計するときに重宝する機能 詳しい経緯は知らないがグローバルスコープの識別子名の競合を回避する目的で導入されたと思う namespaceがないC言語時代にいくつからの大規模ライブラリを組み合わせたときに何が起きがちだったか知っていれば納得出来るはず どんな機能もそうだが、自分が必要と思った時に使えば良いだけだよ 存在意義が分からないならお前にとっては必要のない機能ということだから、気にする必要はない
90 名前:デフォルトの名無しさん mailto:sage [2021/08/14(土) 10:45:32.18 ID:MjnqNUAd.net] Cにnamespaceが導入されないのは何故なんです?
91 名前:デフォルトの名無しさん mailto:sage [2021/08/14(土) 10:48:18.77 ID:isR1pnnS.net] >>75 蛇足だけど、理由がなければshared_ptr<char[]>の代わりにshared_ptr<str>にしたほうがいいな。 // a に b を結合して return a がすごく怖い。
92 名前:デフォルトの名無しさん mailto:sage [2021/08/14(土) 11:05:20.03 ID:HmVXtcJk.net] >>83 namespace
93 名前:デフォルトの名無しさん mailto:sage [2021/08/14(土) 11:07:32.50 ID:HmVXtcJk.net] >>83 namespaceを導入するということは :: だのマングリングだのADLだの色々付いてくるからな
94 名前:デフォルトの名無しさん mailto:sage [2021/08/14(土) 11:09:29.69 ID:sh47n3w4.net] >>83 マングリングが必要になってしまうから、ってのが大きいだろうな。
95 名前:デフォルトの名無しさん [2021/08/14(土) 11:16:28.29 ID:Wd8wuOU/.net] C++を本格的に学ぼうと思って本を数冊買ったが、言語仕様が複雑な割には知らないとエラー起こすだろ っていう項目が多くてビビってる。あと、きれいなコードを書くのに尋常じゃない経験が必要なんじゃないか
96 名前:はちみつ餃子 mailto:sage [2021/08/14(土) 11:34:44.96 ID:xM4RG8+9.net] 全部知らなくてもわかる部分だけでまあまあ使えるというのが C++ の方針なので 最初から綺麗に書こうと思わないほうがいいと思う。 綺麗に書けないと考えるより汚くても普通なんだと考えると気が楽でしょ。
97 名前:デフォルトの名無しさん mailto:sage [2021/08/14(土) 11:41:20.52 ID:HmVXtcJk.net] 構造体の中に関数が書ける、というコアの中のコアな部分の使い方・考え方さえ憶えるというより慣れれば あと他のは追加で憶えればいいってだけ ただし、その追加が今とんでもない量になってて 禿本の初版からやってる俺でさえ憶えきれなくてもがいてる
98 名前:デフォルトの名無しさん mailto:sage [2021/08/14(土) 11:47:19.11 ID:fhp8ilcT.net] いいかい学生さん、 他人のコードをな、 他人のコードをいつでも読めるくらいになりなよ。 それが、人間えら過ぎもしない貧乏過ぎもしない、 ちょうどいいくらいってとこなんだ。
99 名前:デフォルトの名無しさん mailto:sage [2021/08/14(土) 13:15:40.19 ID:MjnqNUAd.net] >>88 エラーが起こったらまだマシだな イクときはだまってイクからな
100 名前:デフォルトの名無しさん mailto:sage [2021/08/14(土) 13:23:47.33 ID:sh47n3w4.net] 他人のコードを読んで学ぶのに一番向いてない言語だよなC++は。
101 名前:デフォルトの名無しさん mailto:sage [2021/08/14(土) 13:48:08.91 ID:fhp8ilcT.net] オーバーロードが悪いんですよ
102 名前:デフォルトの名無しさん mailto:sage [2021/08/14(土) 14:19:07.48 ID:EcmTnCEO.net] >>93 perl に比べたらまだマシ
103 名前:デフォルトの名無しさん mailto:sage [2021/08/14(土) 17:38:14.88 ID:sh47n3w4.net] perlは文法が複雑なだけで、知らない書き方に出会ったらそれを調べれば
104 名前:「い。 C++はコードの断片だけ見ても動作を想像できないことがあるから厄介。 [] [ここ壊れてます]
105 名前:デフォルトの名無しさん mailto:sage [2021/08/14(土) 18:45:25.98 ID:lbIZmRLc.net] ぶっちゃけスマートポインターって面倒だよね?
106 名前:デフォルトの名無しさん mailto:sage [2021/08/14(土) 18:54:41.75 ID:fhp8ilcT.net] スマポに限らず面倒なテンプレートクラスだらけだよ
107 名前:デフォルトの名無しさん mailto:sage [2021/08/14(土) 18:56:25.80 ID:fRH2bKcn.net] ぶっちゃけどんなときに面倒だと感じる?
108 名前:デフォルトの名無しさん mailto:sage [2021/08/14(土) 19:58:29.67 ID:x6Wgppy9.net] スマートポインタに慣れたら自分で解放しなきゃならないmallocやnewの方がよっぽど面倒
109 名前:デフォルトの名無しさん mailto:sage [2021/08/14(土) 20:04:27.45 ID:HmVXtcJk.net] >>98 クラステンプレートな
110 名前:デフォルトの名無しさん mailto:sage [2021/08/14(土) 21:41:33.25 ID:fhp8ilcT.net] autoが便利すぎて反復子の型を明示していたころのC++には戻れそうにない
111 名前:デフォルトの名無しさん mailto:sage [2021/08/14(土) 22:18:40.56 ID:cML6JT7R.net] 11よりは前は書きたくないね
112 名前:デフォルトの名無しさん [2021/08/15(日) 00:20:00.85 ID:YeWgyy60.net] QZ案外初心者やなw でも言ってることは全面的に賛成 ポインタや参照、クラス等の基本を抑えてからでないとスマポや、C++11からの要素(右辺値参照含む)の使い方もわからんと思う
113 名前:デフォルトの名無しさん mailto:sage [2021/08/15(日) 06:30:24.80 ID:AkVzvB4L.net] autoもそうだが ->戻り型やusingエイリアスもだね typedefには戻れない
114 名前:ハノン mailto:sage [2021/08/15(日) 09:34:41.47 .net] >>103 確かに罰ゲームの一種になるかも‥‥私も少しずつ採り入れていくようになっていますし >>104 もう永遠の初心者だと思っていますので、ならば、初心者の気持ちがわかるコメントでコントリビュートするのもありかと、ふつふつと
115 名前:デフォルトの名無しさん mailto:sage [2021/08/15(日) 14:37:33.11 ID:Qb5ISoeo.net] >>104 なにこれ? QZ「〜」 名無し「QZ初心者やな。でも賛成」 っていう自演をやろうとしたが、一個目のQZのレスをコテつけ忘れで投稿してしまったのか? あるいははちみつとQZを同一視している? いずれにせよとんでもない皮肉だな笑
116 名前:ハノン mailto:sage [2021/08/15(日) 15:29:20.83 .net] >>107 いちいち反応しなくてもよろしい >>108 つ鏡
117 名前:デフォルトの名無しさん mailto:sage [2021/08/15(日) 17:48:49.44 ID:pJ9UilRh.net] >>107 それ、以前俺が書いたカキコを勝手にコピペされただけだよ
118 名前:デフォルトの名無しさん mailto:sage [2021/08/15(日) 17:52:57.61 ID:/OoKg6VD.net] クッソささやかな体面保つためだけの自演も失敗とか本当にみじめないきものだな…
119 名前:デフォルトの名無しさん mailto:sage [2021/08/15(日) 18:00:11.34 ID:/ZNLC/hj.net] これか。どういう意図のコピペなんだろうかね。 https://mevius.5ch.net/test/read.cgi/tech/1594615908/595
120 名前:はちみつ餃子 mailto:sage [2021/08/15(日) 18:12:10.32 ID:oR5NZ4bd.net] >>111 ブラウザが記憶してたのを再度投稿してしまったとかそういうしょうもないミスじゃないかな。 JaneStyle のメモ欄で以前のレス内容を貼り付けたりそのまま投稿できたりする機能があるよ。
121 名前:デフォルトの名無しさん mailto:sage [2021/08/15(日) 18:15:56.65 ID:pJ9UilRh.net] だから勝手にコピペされたっつってんだろクソ餃子め >>104 は俺じゃないから 3行目を引用したかったのか変な自演したかったのかは知らん
122 名前:はちみつ餃子 mailto:sage [2021/08/15(日) 18:21:10.51 ID:oR5NZ4bd.net] >>113 すまぬ。 本人によるものでなくてもなんらかの意図でメモしてたものを うっかりということは起こりそうなデザインにはなっているので、 意図によるものでなくただのミスじゃねという部分が主旨。
123 名前:デフォルトの名無しさん mailto:sage [2021/08/15(日) 18:25:05.27 ID:pJ9UilRh.net] (´・ω・`)そうか
124 名前:デフォルトの名無しさん mailto:sage [2021/08/16(月) 15:03:34.95 ID:Gh+OcB3l.net] >>107 なんで突然はちみつ?
125 名前:はちみつ餃子 mailto:sage [2021/08/16(月) 15:17:56.99 ID:5E5Krdno.net] >>116 現時点でこのスレにコテ (+トリップ) 付きで書き込んでいるのがはちみつ餃子と QZ だけだからだろ。
126 名前:デフォルトの名無しさん mailto:sage [2021/08/16(月) 19:18:38.03 ID:QgSHgEhC.net] (unsigned) intの数を受けたら何らかの演算をして (unsigned) long longの数を返す、(unsigned) double の数を受けたら何らかの演算をして (unsigned) long double の数を返す、みたいのって逐一オーバーロードを書くしかないですよね? 要するに、大きいデータ型に格上げして何らかの演算をして返したいってことなんですが
127 名前:ハノン mailto:sage [2021/08/16(月) 19:34:40.64 .net] >>118 演算子のオーバーロードにしても関数のオーバーロードにしても、返り値の型を指定することは出来なかったかと 思いつくのは演算前の引数にあてがうキャストのオーバーロードですね
128 名前:デフォルトの名無しさん mailto:sage [2021/08/16(月) 19:55:44.02 ID:AiYiQHL1.net] 引数をテンプレートにして、引数Tのビット数と整数型かどうかを見て、一段階大きい型を戻り値の型とすることは出来る
129 名前:ハノン mailto:sage [2021/08/16(月) 20:16:27.49 .net] >>120 pls kwsk >>119 普通にコンストラクタのほうがいいですか‥
130 名前:デフォルトの名無しさん mailto:sage [2021/08/16(月) 21:59:33.60 ID:AiYiQHL1.net] ごめん、めんどい・・というか sizeof(T)と整数or浮動小数点数のbool(is_integralとかで取る)を受け取る構造体の中でtype(戻り値の型)を定義、とか考えてたけど 結局Tのサイズごとに特殊化するから手間変わらん、てのと 関数の中身が長くなるなら、オーバーロードした関数からテンプレート版(戻り値の型と引数の型がテンプレート)を呼んで、そこで中身書けば一回で済むね
131 名前:デフォルトの名無しさん mailto:sage [2021/08/16(月) 23:40:17.97 ID:cwTPPWgm.net] >>118 ふつうに long long や long double を引数で受け取るって演算して返す関数を書けば その通りの動作になりそうなんだけど、何か気に入らないの? 2つ関数書くのが嫌だってこと?(やりたいことが少なくとも2通りあるのに?)
132 名前:はちみつ餃子 mailto:sage [2021/08/17(火) 00:20:49.88 ID:yPn/BtRt.net] 大きい型というのは一段階大きい型という意味なのかな? 型の大きさは処理系 (アーキテクチャ) 依存だし、 ポータブルに書こうと思ったら思ったよりも面倒な感じ。 主要なアーキテクチャだけ対処できればいいなら 8 → 16 → 32 → 64 の拡張が出来ればいいので用意するパターンはそんなに多くはない。 ちなみに Windows の long double は double と同じ大きさだよ。
133 名前:デフォルトの名無しさん mailto:sage [2021/08/17(火) 02:08:49.72 ID:rNAqXouz.net] 何種類か関数があるならtraitsを作成するのもありじゃない?
134 名前:デフォルトの名無しさん mailto:sage [2021/08/18(水) 04:11:58.97 ID:ReVsRUuR.net] 関数読んだら1段階デカい型が返ってくるなんて使う側でも面倒が起きそうだな
135 名前:デフォルトの名無しさん mailto:sage [2021/08/18(水) 04:23:43.76 ID:TZ94eDdV.net] まぁ、戻り値にも使用できるテンプレートの追加の型を関数内でconstexpr的に定義出来たらいろいろ面白いことが出来そうではあるなw
136 名前:デフォルトの名無しさん mailto:sage [2021/08/19(木) 15:14:48.98 ID:9cCAU3aU.net] 話は勝手に変わるけど、 { 1,2,3,4,5 } のような書き方が initializer_list になる場合とならない場合を全て知りたいけど 良く分からないので、誰か教えてくれまいか。
137 名前:デフォルトの名無しさん mailto:sage [2021/08/19(木) 15:21:14.80 ID:9cCAU3aU.net] >>128 的を外しているかも知れないけど、その書き方をAと書くとすると、どんな文脈でも A自体が最初に必ずいったん initializer_list<T> になった後にそれぞれの文脈で処理されるという ことなのか、あるいは、 auto x {・・・}; auto x = {・・・}; auto x = TYPE {・・・}; func({・・・}); のようにいろいろな書き方や文脈が変わるとそもそも A は意味論的にすら initializer_list<T> を経由せずにそれぞれ独自に解釈されて処理される のか、どちらなんだろう????
138 名前:デフォルトの名無しさん mailto:sage [2021/08/19(木) 15:24:22.53 ID:9cCAU3aU.net] あと、良く分からないのが、 struct CPerson { ・・・ CPerson(int a, int b, int c) {・・・} //(1) }; とあった場合、 1. CPerson a{1,2,3}; 2. CPerson a={1,2,3}; 3. CPerson a=CPerson{1,2,3}; のどれを書いても多分、(1)が呼び出される気がするけど、 struct CPerson { ・・・ CPerson(initializer_list<int> a) {・・・} //(2) }; と書いた場合、1,2,3 はやはり全て(2)が呼び出されるのだろうか?
139 名前:はちみつ餃子 mailto:sage [2021/08/19(木) 16:38:31.07 ID:z/GAGLjl.net] >>129 > initializer_list<T> を経由せずにそれぞれ独自に解釈されて処理される initializer_list を経由しないことはある。 おおざっぱには initializer_list を受け取る文脈では initializer_list だし、 推論が必要なとき (auto やテンプレート) にも initializer_list に推論されるが、 そうでないときは initializer_list を経由しない。
140 名前:はちみつ餃子 mailto:sage [2021/08/19(木) 16:48:40.83 ID:z/GAGLjl.net] >>130 優先順位がある。 1. 2. 3. のいずれも initializer_list としての解釈が「優先される」。 initializer_list を受け取るコンストラクタが存在しなければ 三引数のコンストラクタが呼出される。
141 名前:デフォルトの名無しさん mailto:sage [2021/08/19(木) 16:54:44.67 ID:9cCAU3aU.net] >>132 なるほど。確認だけど、 1. CPerson a{1,2,3}; 2. CPerson a={1,2,3}; 3. CPerson a=CPerson{1,2,3}; 4. CPerson a(1,2,3); 5. CPerson a=CPerson(1,2,3); は、どれも3引数のコンストラクタで受け取ることは可能ということでOk? 1. 2. 3. は、initializer_list を受け取るコンストラクタでも受け取ることが可能? 4. 5. は、initializer_list を受け取るコンストラクタでも受け取ることは不可能??
142 名前:はちみつ餃子 mailto:sage [2021/08/19(木) 17:08:54.15 ID:z/GAGLjl.net] >>133 (initializer_list を受け取るコンストラクタが無ければ) いずれも 3 引数のコンストラクタが起動されるが、 5. は 3 引数のコンストラクタでオブジェクトを構築した上で a にコピーする。 (コピーコンストラクタ、またはムーブコンストラクタが起動する。) ただし RVO が有効な状況ではコピーやムーブはが省略されるので 5. は 4. と同じ。 そしてこの場合には関係ないが、波括弧によるコンストラクタ起動では引数の暗黙の型変換を許さない といった重要な違いがある。 (initializer_list を受け取るコンストラクタが有る状況でも) 4. と 5. は initializer_list とは解釈されない。
143 名前:デフォルトの名無しさん mailto:sage [2021/08/19(木) 17:14:28.81 ID:9cCAU3aU.net] >>134 1. 2. 3. は、initializer_list を受け取るコンストラクタでも受け取ることが可能? 4. 5. は、initializer_list を受け取るコンストラクタでも受け取ることは不可能?? については?
144 名前:はちみつ餃子 mailto:sage [2021/08/19(木) 17:19:50.55 ID:z/GAGLjl.net] >>135 それが区別できるだけのルールは既に提示したつもり。
145 名前:デフォルトの名無しさん mailto:sage [2021/08/19(木) 17:21:53.70 ID:9cCAU3aU.net] >>136 すまん。もう一度明言してくれるとありがたい。
146 名前:デフォルトの名無しさん mailto:sage [2021/08/19(木) 17:27:44.09 ID:td+NCu9W.net] template <int N> void test(std::bitset<N>& arg); int main() { std::bitset<1ull> lvalue; test(lvalue); } これ、Nが推定できないのはなんで?
147 名前:デフォルトの名無しさん mailto:sage [2021/08/19(木) 17:28:31.68 ID:td+NCu9W.net] すまん、自己解決 unsigned long long Nが正解だった
148 名前:はちみつ餃子 mailto:sage [2021/08/19(木) 17:30:02.71 ID:z/GAGLjl.net] >>135 > 1. 2. 3. は、initializer_list を受け取るコンストラクタでも受け取ることが可能? はい。 可能です。 > 4. 5. は、initializer_list を受け取るコンストラクタでも受け取ることは不可能?? はい。 不可能です。 ところで >>134 で、オブジェクトを構築した上でコピーするのは 5. と述べたけど 3. もそうやな。
149 名前:はちみつ餃子 mailto:sage [2021/08/19(木) 17:33:59.90 ID:z/GAGLjl.net] >>138-139 正解は size_t だよ。 size_t が具体的にどの整数型に対応するかは処理系定義なので もちろん unsigned long long と等価なこともあるだろうけど。
150 名前:デフォルトの名無しさん mailto:sage [2021/08/19(木) 17:40:36.29 ID:9cCAU3aU.net] >>136 念のため、その「述べた」はずのルールがどの文章だったのか教えてもらえれば ありがたい。
151 名前:デフォルトの名無しさん mailto:sage [2021/08/19(木) 22:54:32.78 ID:CH0dz2ka.net] vector<long long>を取る関数にvector<int>を渡すと、その引数はvector<long long>にキャストされる で、vector<int>を取る関数にvector<long long>を渡すのはNG この理解は合ってますでしょうか
152 名前:デフォルトの名無しさん mailto:sage [2021/08/19(木) 23:03:24.64 ID:/B0HDd6y.net] 間違ってる vector<long long>とvector<int>には何の関係もない intとstringに関係がないのと同じくらい関係ない
153 名前:デフォルトの名無しさん mailto:sage [2021/08/20(金) 11:13:55.26 ID:5K/SmrCp.net] pair<int, int> は pair<long long, long long>にキャストできるけど vectorにそういうコンストラクタはないな
154 名前:デフォルトの名無しさん mailto:sage [2021/08/20(金) 12:13:09.91 ID:ssGfr3Zr.net] >>103 VS6.0の頃は地獄だったよ forループの変数は生キノコるわ例外出たら自動変数の破棄全部ぶっ飛ばすわでMSはクソの集大成だと確信していたわ
155 名前:デフォルトの名無しさん mailto:sage [2021/08/20(金) 12:42:32.36 ID:5K/SmrCp.net] 例外処理が2系統、数え方によっては3系統あるのがね
156 名前:デフォルトの名無しさん mailto:sage [2021/08/20(金) 15:19:34.50 ID:Pb4opnB5.net] STOUT を STDOUT に空目してこそプログラマ脳 「ミロ」そっくりの缶ビール 子どもが誤飲し販売禁止に(豪) - Yahoo! JAPAN https://article.yahoo.co.jp/detail/1a7b2e0b9ab108ebf156f22e654f60634c39c88b 子どものみならず大人にも大人気のココア味の麦芽飲料「ミロ」は、世界中で愛されている。このほどオーストラリアの企業が、 ミロにそっくりのパッケージデザインで缶ビールを製造したことにより「子どもが間違えて飲んでしまった」という苦情が届いた。 これにより同製品の広告使用禁止が言い渡されたことを『news.com.au』などが伝えている。 問題の缶ビールは、豪ビクトリア州にある企業「Howler Brewing Company」の「Chocolate Milk Stout」というチョコレート風味の黒ビールだ。 缶のデザインは有名な麦芽飲料「ミロ」を真似たもので、お馴染みの緑色を背景に製品名や販売会社を示す文字の色やフォントまで同じデザインとなっている。 同社はこれまでにも、Instagramや炭酸飲料「スプライト」など認知度の高いロゴデザインを真似た製品を作り出している。
157 名前:デフォルトの名無しさん mailto:sage [2021/08/20(金) 17:52:50.79 ID:BMARPdQo.net] 関数オブジェクトじゃなくて関数を記述するメリットってなんかある? テンプレートは近々関数オブジェクトの方でも使えるようになるんでしょ?
158 名前:デフォルトの名無しさん mailto:sage [2021/08/20(金) 19:08:22.19 ID:n19OoAH+.net] >>149 タイプ数が少ない、くらいかね。
159 名前:デフォルトの名無しさん mailto:sage [2021/08/20(金) 20:12:20.52 ID:BMARPdQo.net] >>150 じゃあそのうち「関数はレガシーな書き方なので関数オブジェクトを使用するようにしましょう」とか言われるようになるの?
160 名前:デフォルトの名無しさん mailto:sage [2021/08/21(土) 00:32:59.41 ID:E2GGZp0E.net] >>149 複数の関数から呼ばれる関数どうすんのさ グローバル変数や引数にいちいち入れるの?
161 名前:デフォルトの名無しさん mailto:sage [2021/08/21(土) 00:37:37.24 ID:E2GGZp0E.net] >>146 forの変数スコープは回避策あったやん 98年発売なんでもうちょっとどうにか出来たのではとも思うが
162 名前:デフォルトの名無しさん mailto:sage [2021/08/21(土) 00:45:38.19 ID:E2GGZp0E.net] あ、すまんラムダじゃなくて関数オブジェクトか 確かにタイプ数くらいしか思いつかんけど テンプレートは既に使えるのでは?関数テンプレートに出来て関数オブジェクトに出来ないテンプレートの使い方あったっけ
163 名前:デフォルトの名無しさん [2021/08/21(土) 10:46:43.63 ID:+K/WXdke.net] >>148 日本でも煙草を真似したデザインのチョコレート菓子があったけど 間違って煙草食った子供が死んだとか裁判になったとか聴かないな おそらくあったんだろうな
164 名前:デフォルトの名無しさん mailto:sage [2021/08/21(土) 12:15:51.53 ID:t0h3aTQf.net] >>154 実体化の制御かね。 関数テンプレートは使用されない限りエラーにならない。 SFINAEもそうじゃなかったっけ?
165 名前:デフォルトの名無しさん mailto:sage [2021/08/21(土) 13:42:38.53 ID:E2GGZp0E.net] クラステンプレート内の普通のoperator ()だとそうだね operator ()がテンプレートの場合ならほぼ関数テンプレートと同じ事出来るとは思うけど 文法上、明示的にテンプレート引数指定する際、関数と共通の書き方には出来ないな・・
166 名前:デフォルトの名無しさん [2021/08/21(土) 20:47:50.56 ID:7GAoG1Iq.net] Rustのメモリ安全性はボローチェッカーによって担保されているが、 Nimと比較してRustはタイプ量が多い事により限りなく低い生産性と C++のような高い難読性、超巨大なバイナリ生成性能を兼ね備えています Nimはバージョン1.5.1でRustのボローチェッカーに似た「View types」が実装されれば、 GC無しでView types参照の有効性を検証することによってメモリ安全性を保証しつつ 限りなく抑え込まれたタイプ量で高速化したCのソースコードを吐き出せます Nimソースコード ==nimコンパイラ==> Cソースコード ==Cコンパイラ==> バイナリ なので、nimコンパイラが通った時点でメモリ安全性が担保されませんか? Nimの実験的特徴 著者: アンドレアス・ルンプ バージョン: 1.5.1 nim-lang.github.io/Nim/manual_experimental.html Nimは限りなく抑え込まれたタイプ量で高い生産性とPythonのような高い可読性を実現し ているにもかかわらず、Cのソースコードを吐き出せるのでC言語でリモートワークされ ている方は割り振られた仕事が早く終わっても終わってないふりをして怠けることができる 「怠け者とはこうあるべきだ!」と言うとても大事な事を Nim は我々に教えてくれます
167 名前:デフォルトの名無しさん [2021/08/21(土) 22:35:53.53 ID:o/sUihIV.net] 質問です。 std::array ary = { 1, 2 }; ↑の{}で初期化すると、 要素数を自動推論できるようにするにはどう実装すればいいんでしょう?
168 名前:デフォルトの名無しさん mailto:sage [2021/08/21(土) 22:55:48.18 ID:+FOhqLVw.net] 推論補助だと思う https://cpprefjp.github.io/reference/array/array/op_deduction_guide.html
169 名前:デフォルトの名無しさん mailto:sage [2021/08/22(日) 01:17:33.04 ID:maGRuunL.net] >>155 食ったところで飲みこまずにペッペッて吐き出すだろ
170 名前:デフォルトの名無しさん mailto:sage [2021/08/22(日) 04:31:26.04 ID:Roj0wExz.net] g++ -std=c++17
171 名前:デフォルトの名無しさん [2021/08/22(日) 12:59:29.57 ID:0Cz6ueFz.net] Rustのメモリ安全性はボローチェッカーによって担保されているが、 Nimと比較してRustはタイプ量が多い事により限りなく低い生産性と C++のような高い難読性、超巨大なバイナリ生成性能を兼ね備えています Nimはバージョン1.5.1でRustのボローチェッカーに似た「View types」が実装されれば、 GC無しのView typesで参照の有効性を検証することによってメモリ安全性を保証しつつ 限りなく抑え込まれたタイプ量で高速化したCのソースコードを吐き出せます Nimソースコード ==nimコンパイラ==> Cソースコード ==Cコンパイラ==> バイナリ なので、nimコンパイラが通った時点でメモリ安全性が担保されませんか? Nimの実験的特徴 バージョン1.5.1 nim-lang.github.io/Nim/manual_experimental.html 第二プログラミング言語として Rust はオススメしません Nim をやるのです https://wolfbash.hateblo.jp/entry/2017/07/30/193412 Nimは限りなく抑え込まれたタイプ量で高い生産性とPythonのような高い可読性を実現し ているにもかかわらず、高速なCのソースコードを吐き出せるのでC言語でリモートワーク されている方は割り振られた仕事が早く終わっても終わってないふりをして怠けることができる 「怠け者とはこうあるべきだ!」と言うとても大事な事を Nim は我々に教えてくれます
172 名前:デフォルトの名無しさん mailto:sage [2021/08/22(日) 18:45:30.76 ID:gNvESTNy.net] std::chrono::time_point::time_since_epoch()が返すエポックタイムの原点はいつですか? もし具体的に規定されていないとしても、 ミリ秒パートが0であることは保証されていますか?
173 名前:デフォルトの名無しさん mailto:sage [2021/08/22(日) 19:20:25.99 ID:gNvESTNy.net] ある意味自己解決しますたorz https://cpprefjp.github.io/reference/chrono/system_clock.html >C++17 以前の場合、system_clock のエポックがどの時間を指しているかは未規定だが、ほとんどの処理系は UNIX 時間(1970年1月1日0時0分0秒)を指している >C++20 以降の場合、system_clock のエポックは必ず UNIX 時間(1970年1月1日0時0分0秒)を指す しかし(特にC++17以前において)ミリ秒パートが0が保証されているのかどうかがはっきりしませんぬ、
174 名前:デフォルトの名無しさん mailto:sage [2021/08/22(日) 19:28:39.82 ID:VeL/IzCV.net] 生年月日をUNIX時間で表現できないオッサンはこのスレにどのくらいいるの?
175 名前:デフォルトの名無しさん mailto:sage [2021/08/22(日) 21:27:04.43 ID:gNvESTNy.net] 生年月日ならミリ秒まで言える必要は無いが ログの時刻を極力正確に(WindowsのGetLocalTime()と同じ時刻で)記録したいのでつ∀`;)