C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。
前スレ
C++相談室 part149
https://mevius.5ch.net/test/read.cgi/tech/1581974381/
このスレもよろしくね。
【初心者歓迎】C/C++室 Ver.105【環境依存OK】
http://mevius.5ch.net/test/read.cgi/tech/1556142878/
■長いソースを貼るときはここへ。■
http://codepad.org/
https://ideone.com/
[C++ FAQ]
https://isocpp.org/wiki/faq/
http://www.bohyoh.com/CandCPP/FAQ/ (日本語)
テンプレここまで
探検
C++相談室 part150
■ このスレッドは過去ログ倉庫に格納されています
2020/03/24(火) 00:04:33.93ID:YFRNwZnv
2020/03/31(火) 14:42:36.42ID:DEnjdkJH
C#はC++と違ってシンボルの完璧な静的解決が可能だからgrep性なんかどうでもいいんだよ
VSでポチポチしたら一瞬で完全な呼び出しツリーが出来上がる
VSでポチポチしたら一瞬で完全な呼び出しツリーが出来上がる
2020/03/31(火) 15:09:58.10ID:OTxurRkT
>>73
プログラマは怠惰であるべきってのを間違ったとらえ方してるバカは世の中には多い。
プログラマは怠惰であるべきってのを間違ったとらえ方してるバカは世の中には多い。
2020/03/31(火) 15:12:48.63ID:YcGHsuX6
>>75
メモ帳でコード書いてるのか?w
メモ帳でコード書いてるのか?w
79デフォルトの名無しさん
2020/03/31(火) 17:49:17.43ID:tVRDD1dz viでは。
2020/03/31(火) 20:44:47.09ID:HDRrREDo
【速報】東京都が #新型コロナウイルス 感染症死亡者数を過少評価か、
「例年より少ない」とされていたインフルエンザ関連死が急増=国立感染症研究所
https://www.niid.go.jp/niid/ja/flu-m/2112-idsc/jinsoku/1852-flu-jinsoku-7.html …
コロナで死んだのインフルに振り替えてるんじゃまいか
こういうニュースが出てくる時点で隠蔽はもう無理
おそらくパンデミックは避けられないと思うね
「例年より少ない」とされていたインフルエンザ関連死が急増=国立感染症研究所
https://www.niid.go.jp/niid/ja/flu-m/2112-idsc/jinsoku/1852-flu-jinsoku-7.html …
コロナで死んだのインフルに振り替えてるんじゃまいか
こういうニュースが出てくる時点で隠蔽はもう無理
おそらくパンデミックは避けられないと思うね
2020/03/31(火) 22:00:06.46ID:ox5sQqez
言語仕様はメモ帳で書く場合を想定すべき
メモ帳で楽に書ければ開発環境でも楽に書けるが、逆はない
開発環境がなければ書けないような構文は構文自体おかしいと認識するべきだ
メモ帳で楽に書ければ開発環境でも楽に書けるが、逆はない
開発環境がなければ書けないような構文は構文自体おかしいと認識するべきだ
2020/03/31(火) 22:01:35.88ID:L/5UA51D
なぜメモ帳?
そこはedlinだろ?
そこはedlinだろ?
83デフォルトの名無しさん
2020/03/31(火) 22:05:49.04ID:tVRDD1dz Excelよく使ってる。
84デフォルトの名無しさん
2020/03/31(火) 22:07:47.94ID:tVRDD1dz ExcelはExtended cellという意味とExcellentという意味がある。
と思う。
と思う。
85デフォルトの名無しさん
2020/03/31(火) 22:14:04.53ID:tVRDD1dz 電卓にはプログラマ・モードがあるのに。
Excelにはない。
不思議な話だ。
Excelにはない。
不思議な話だ。
86デフォルトの名無しさん
2020/03/31(火) 22:14:37.75ID:tVRDD1dz そういえば電卓も良く使う。
2020/03/31(火) 22:19:10.66ID:L/5UA51D
そりゃmac用ソフトだもの
2020/03/31(火) 22:52:39.00ID:s0jfH2wf
皆さんありがとうございます
正直個人で利用するだけなら関数でいいし今までも関数で済ましてたんですが、他人に教えるときに変数定義などが散らばってると教えるのが面倒くさいという理由でクラス化したんですよね
正直個人で利用するだけなら関数でいいし今までも関数で済ましてたんですが、他人に教えるときに変数定義などが散らばってると教えるのが面倒くさいという理由でクラス化したんですよね
2020/03/31(火) 23:13:13.12ID:W8+rJJar
関数で済むならその方が良い
プログラムが複雑な動作ができるのは「状態(=変数)」を持つから
単純にできるならその方が良い
変数は悪だよ、必要悪
プログラムが複雑な動作ができるのは「状態(=変数)」を持つから
単純にできるならその方が良い
変数は悪だよ、必要悪
2020/04/01(水) 08:43:31.52ID:BVkSt5Rw
class変数ってのはstatic変数とlocal変数の中間的なイメージをもってる。
static変数よりかマシだけど状態を持つことには変わりはない。
まあlocal変数だけでプログラムするのもつらいって場面も多いけど。
static変数よりかマシだけど状態を持つことには変わりはない。
まあlocal変数だけでプログラムするのもつらいって場面も多いけど。
2020/04/01(水) 13:47:46.62ID:PC8mhvaW
気になったので教えて
c++的に関数のbool型戻り値に関数の成功失敗返すとして、真が成功で偽が失敗が一般的?
c言語だと戻り値がintで0が成功、それ以外が失敗ってのか良くあるけど、c++もこの形が一般的?(偽が成功、真が失敗)
個人的には前者を良く使うんだけど
c++的に関数のbool型戻り値に関数の成功失敗返すとして、真が成功で偽が失敗が一般的?
c言語だと戻り値がintで0が成功、それ以外が失敗ってのか良くあるけど、c++もこの形が一般的?(偽が成功、真が失敗)
個人的には前者を良く使うんだけど
2020/04/01(水) 13:55:09.05ID:BVkSt5Rw
boolとintで区別するってのが一般的で
boolの場合言ってる通りでintの場合cの流儀に沿うのが普通じゃね。
boolの場合言ってる通りでintの場合cの流儀に沿うのが普通じゃね。
93はちみつ餃子 ◆8X2XSCHEME
2020/04/01(水) 14:38:59.32ID:S74lm4t5 >>91
エラーであることと同時にエラーの内容 (エラーコード) も返したいという要求がある。
なので 0 を成功として、失敗ならエラー内容に対応する数値 (真値) を返すというやり方が生まれた。
でも C の標準ライブラリには失敗として 0 を返した上でエラーの内容は errno に設定するものもあるし、
グダグダなんやわ。
真偽のどちらを成功とするか失敗とするかは、どちらかが一般的と言えるほど統一されてはいないと思う。
C++ だと失敗は例外で投げてしまえるから返却値はあくまでも正常系のみの結果を返すべきという意見もあるし、
例外は何かと問題があるので避けた方がいいという人もいる。
std::optional は「有効な値があるとき」と「有効な値がないとき」を区別できるけど、
成功・失敗に対応づけるにはちょっとイマイチな感じもあるしなぁ……。
結局のところ場合による。
エラーであることと同時にエラーの内容 (エラーコード) も返したいという要求がある。
なので 0 を成功として、失敗ならエラー内容に対応する数値 (真値) を返すというやり方が生まれた。
でも C の標準ライブラリには失敗として 0 を返した上でエラーの内容は errno に設定するものもあるし、
グダグダなんやわ。
真偽のどちらを成功とするか失敗とするかは、どちらかが一般的と言えるほど統一されてはいないと思う。
C++ だと失敗は例外で投げてしまえるから返却値はあくまでも正常系のみの結果を返すべきという意見もあるし、
例外は何かと問題があるので避けた方がいいという人もいる。
std::optional は「有効な値があるとき」と「有効な値がないとき」を区別できるけど、
成功・失敗に対応づけるにはちょっとイマイチな感じもあるしなぁ……。
結局のところ場合による。
2020/04/01(水) 17:14:10.11ID:15FH3/nz
おれも >>92 の認識
結果boolとintでfalse/0の意味が入れ替わるわけだが
intはエラーコードを返す余地があるが
boolの場合失敗をfalseでだけで返しても実用上役に立たないと思う
falseが返ってきたら呼び出し側は何をすればいいかまで考えるべき
内部エラー的などうしようもないもののときは関数内で勝手にabortした方がまし
結果boolとintでfalse/0の意味が入れ替わるわけだが
intはエラーコードを返す余地があるが
boolの場合失敗をfalseでだけで返しても実用上役に立たないと思う
falseが返ってきたら呼び出し側は何をすればいいかまで考えるべき
内部エラー的などうしようもないもののときは関数内で勝手にabortした方がまし
95デフォルトの名無しさん
2020/04/01(水) 18:14:31.33ID:MoTGnEfh >>94
実は、エラー番号を返されても、出来ることは限られていて、
ハードウェアエラーの様なものなら、使用者にそのメッセージを
表示することは出来るが、単に関数の呼び出し方の間違いの場合も
多くてその場合は開発時にエラー番号を調べて対処するしかない。
エラー番号によってプログラムの動作を変えて対処できるケースは全体のごく一部。
実は、エラー番号を返されても、出来ることは限られていて、
ハードウェアエラーの様なものなら、使用者にそのメッセージを
表示することは出来るが、単に関数の呼び出し方の間違いの場合も
多くてその場合は開発時にエラー番号を調べて対処するしかない。
エラー番号によってプログラムの動作を変えて対処できるケースは全体のごく一部。
2020/04/01(水) 19:18:06.29ID:15FH3/nz
97デフォルトの名無しさん
2020/04/01(水) 19:24:00.89ID:Awd6zvg2 std::sortにconstexprが付くことについてコメントお願いします。
2020/04/01(水) 22:38:47.73ID:3pIDnj5r
標準ライブラリで付けられるところには全部付けろ
99デフォルトの名無しさん
2020/04/01(水) 23:20:02.25ID:Awd6zvg2 コンパイル時にソートしてくれるってやばない?
100デフォルトの名無しさん
2020/04/02(木) 00:18:03.16ID:Gf7PuiHp 左様boolを成功か失敗かの意味で使うのが悪い
boolは単純に真偽として解釈すべきでありかつその解釈で十分な場合に使う他無い
例: std::vector::empty()
どーしても成功か失敗かの意味で使いたいなら
成功なら真、失敗なら偽の値を返す関数なりマクロなりで
wrapした結果をboolにすべきや
例:
inline bool SUCCEEDED(int retval) { retun (retval == 0); }
inline bool FAILED(int retval) { return (retval != 0); }
boolは単純に真偽として解釈すべきでありかつその解釈で十分な場合に使う他無い
例: std::vector::empty()
どーしても成功か失敗かの意味で使いたいなら
成功なら真、失敗なら偽の値を返す関数なりマクロなりで
wrapした結果をboolにすべきや
例:
inline bool SUCCEEDED(int retval) { retun (retval == 0); }
inline bool FAILED(int retval) { return (retval != 0); }
101デフォルトの名無しさん
2020/04/02(木) 00:21:01.87ID:Wbq1ni9c constexprはやばいがなぜにソート?
というかコンパイル時ソートの需要なんかあんのか?
100万件のデータをソースに埋め込んでコンパイル時にソートしたいとは思わないな
というかコンパイル時ソートの需要なんかあんのか?
100万件のデータをソースに埋め込んでコンパイル時にソートしたいとは思わないな
102デフォルトの名無しさん
2020/04/02(木) 00:25:29.31ID:44dV9Os2 そんなでかいのコンパイルに時間がかかって仕方がない
数十数百までなら実用的なコンパイル時間で済みそうだし需要はあるだろ
数十数百までなら実用的なコンパイル時間で済みそうだし需要はあるだろ
103デフォルトの名無しさん
2020/04/02(木) 00:38:17.67ID:Wbq1ni9c その程度なら実行時でいいやってなる
104デフォルトの名無しさん
2020/04/02(木) 00:43:04.78ID:44dV9Os2 ソート後もまだコンパイル時評価に使えるじゃん
105デフォルトの名無しさん
2020/04/02(木) 01:00:56.93ID:Wbq1ni9c 意味わからんけど
コンパイル時にソートしてくれるのはいいと思うよ
でもそれがスゲー便利とはならないだろうなってこと
コンパイル時にソートしてくれるのはいいと思うよ
でもそれがスゲー便利とはならないだろうなってこと
106デフォルトの名無しさん
2020/04/02(木) 01:08:47.28ID:I8hlhwK7 明らかにアンチパターンだろ。
constexprてフーリエ変換の係数とか定数だけどちょっとした計算が必要なものに使うもんだろうに。
constexprてフーリエ変換の係数とか定数だけどちょっとした計算が必要なものに使うもんだろうに。
107デフォルトの名無しさん
2020/04/02(木) 01:25:43.89ID:44dV9Os2 いや、それこそruntimeで良いんじゃね
108はちみつ餃子 ◆8X2XSCHEME
2020/04/02(木) 03:49:46.91ID:sLIn31jD109デフォルトの名無しさん
2020/04/02(木) 06:22:02.07ID:I8hlhwK7 >>108
不自然なことやってバギーだったり、その挙動がユーザーにとってデバッグしずらいものだったら
プログラマーにとって損だろ。
なんでもコンパイラにやらせればいいと思ってる輩はそのことを全く理解してない。
不自然なことやってバギーだったり、その挙動がユーザーにとってデバッグしずらいものだったら
プログラマーにとって損だろ。
なんでもコンパイラにやらせればいいと思ってる輩はそのことを全く理解してない。
110デフォルトの名無しさん
2020/04/02(木) 06:40:45.16ID:H71dGAdS ソートが必要になる程のデータ数をコンパイル時に用意するならコンパイル時ファイル読み込みも必要じゃない
111デフォルトの名無しさん
2020/04/02(木) 08:31:42.99ID:SbwrDqdV >>109
> 不自然なことやって
不自然かどうかは単なるお前の主観
> バギーだったり、
処理系の問題
> その挙動がユーザーにとってデバッグしずらいものだったら
無理矢理の仮定
> プログラマーにとって損だろ。
お前にとって損なだけ
コンパイル時できることはコンパイル時にやるのはC/C++の思想としては当たり前
嫌なら使わなきゃいいだけ
> 不自然なことやって
不自然かどうかは単なるお前の主観
> バギーだったり、
処理系の問題
> その挙動がユーザーにとってデバッグしずらいものだったら
無理矢理の仮定
> プログラマーにとって損だろ。
お前にとって損なだけ
コンパイル時できることはコンパイル時にやるのはC/C++の思想としては当たり前
嫌なら使わなきゃいいだけ
112デフォルトの名無しさん
2020/04/02(木) 12:24:51.88ID:Wbq1ni9c あんまり同意できないね
仕事で使う上だと嫌なら使うなというのは困る
多人数で作るうえでは使わないなら使われない仕組みが必要だからね
あとユーザが気軽にO(n^2)、O(n^3)みたない激重アルゴリズムをコンパイルフェーズに
組み込めるわけだけど、それコンパイラの仕事か?と思う
大規規模開発だとコンパイル時間の伸びは問題になる
フェーズわけるべきだよね
実際ビルド時に事前計算するものは多々あるけど、個別にスクリプトとか組むことに別に不満ないし
c++のコンパイルで一発で完結する必要性を感じない
仕事で使う上だと嫌なら使うなというのは困る
多人数で作るうえでは使わないなら使われない仕組みが必要だからね
あとユーザが気軽にO(n^2)、O(n^3)みたない激重アルゴリズムをコンパイルフェーズに
組み込めるわけだけど、それコンパイラの仕事か?と思う
大規規模開発だとコンパイル時間の伸びは問題になる
フェーズわけるべきだよね
実際ビルド時に事前計算するものは多々あるけど、個別にスクリプトとか組むことに別に不満ないし
c++のコンパイルで一発で完結する必要性を感じない
113デフォルトの名無しさん
2020/04/02(木) 13:47:09.18ID:RbNpa6BP 嫌なら使うなって、C/C++のことだろ
つまり転職したほうがいいと暗に言っている
つまり転職したほうがいいと暗に言っている
114デフォルトの名無しさん
2020/04/02(木) 13:48:21.30ID:1Y8qGLwI うん、まぁ、自分ならメタプログラミングとか特殊化で
定数のソートがあったら助かるかも・・助からないかも・・程度だけど
標準のやることに疑問を呈すと必ず>>111みたいな変なのが湧くよね
まぁ、コンパイル時のソートしてもしなくてもコンパイル時のオーバーヘッドは微々たるもんじゃね?
大量のインスタンス化とかが起きなければ。
定数のソートがあったら助かるかも・・助からないかも・・程度だけど
標準のやることに疑問を呈すと必ず>>111みたいな変なのが湧くよね
まぁ、コンパイル時のソートしてもしなくてもコンパイル時のオーバーヘッドは微々たるもんじゃね?
大量のインスタンス化とかが起きなければ。
115デフォルトの名無しさん
2020/04/02(木) 13:54:25.98ID:1Y8qGLwI あ、あと
>コンパイル時できることはコンパイル時にやるのはC/C++の思想としては当たり前
20年使ってるがそんな思想聞いたこともない
あとコンパイル時に出来る(上に、後で困ったりしない)場面って少ないよ
実際のソフト開発に使ったことないと気付かないんだろうけど
>コンパイル時できることはコンパイル時にやるのはC/C++の思想としては当たり前
20年使ってるがそんな思想聞いたこともない
あとコンパイル時に出来る(上に、後で困ったりしない)場面って少ないよ
実際のソフト開発に使ったことないと気付かないんだろうけど
116デフォルトの名無しさん
2020/04/02(木) 14:01:37.69ID:Tie7sLxb いや、constexprのお陰もあってコンパイル時に解決できることは思いの外増えている
117デフォルトの名無しさん
2020/04/02(木) 14:09:38.15ID:1Y8qGLwI 実例挙げてくれ
118はちみつ餃子 ◆8X2XSCHEME
2020/04/02(木) 14:31:13.11ID:sLIn31jD constexpr つっても定数式の文脈以外ではコンパイルのフェイズで計算する保証はないよ。
コンパイラの裁量でほどほどにしてくれるからコンパイルのコストが極端に増大することは心配しなくていい。
(たぶんオプションとかで制御できるようになってる。)
constexpr の制約の範囲内に変形するのが難しいようなものまで無理して constexpr 化する必要はないけど、
付けれるもんなら付けとくくらいのスタンスでよいんじゃないかなぁ。
コンパイラの裁量でほどほどにしてくれるからコンパイルのコストが極端に増大することは心配しなくていい。
(たぶんオプションとかで制御できるようになってる。)
constexpr の制約の範囲内に変形するのが難しいようなものまで無理して constexpr 化する必要はないけど、
付けれるもんなら付けとくくらいのスタンスでよいんじゃないかなぁ。
119デフォルトの名無しさん
2020/04/02(木) 14:37:59.99ID:Qj/v/C6S 保証も何も、実行時にしか分からん値をどうやってコンパイル時に計算するんだ
はちみつ自身よく分かってないだろ
はちみつ自身よく分かってないだろ
120デフォルトの名無しさん
2020/04/02(木) 14:38:59.27ID:Qj/v/C6S >(たぶんオプションとかで制御できるようになってる。)
初耳だな
初耳だな
121はちみつ餃子 ◆8X2XSCHEME
2020/04/02(木) 14:44:22.92ID:sLIn31jD gcc のオプションをざっと検索してみたけど、
定数式の文脈とそうでないときを区別して指定するようなものは見つからんかった……。
定数式の文脈とそうでないときを区別して指定するようなものは見つからんかった……。
122はちみつ餃子 ◆8X2XSCHEME
2020/04/02(木) 14:45:31.73ID:sLIn31jD >>119
入力がコンパイル時にわかる値 (定数式) でもその関数の呼び出し自身が定数式の文脈にない場合のことを言ってる。
入力がコンパイル時にわかる値 (定数式) でもその関数の呼び出し自身が定数式の文脈にない場合のことを言ってる。
123デフォルトの名無しさん
2020/04/02(木) 15:00:36.45ID:Qj/v/C6S >>122
「定数式の文脈以外では」保証もクソも原理的に不可能だと言ってんの
「定数式の文脈以外では」保証もクソも原理的に不可能だと言ってんの
125デフォルトの名無しさん
2020/04/02(木) 15:21:55.32ID:Qj/v/C6S それを定数式の文脈と呼ぶんじゃないの
127デフォルトの名無しさん
2020/04/02(木) 15:26:39.69ID:Qj/v/C6S あー調べたら意味わかったわ、結果を格納する左辺が非constexprなら定数式としては呼ばれないと決まってるんだな
それを定数式の文脈と呼ぶのはおかしいと思うが
それを定数式の文脈と呼ぶのはおかしいと思うが
128はちみつ餃子 ◆8X2XSCHEME
2020/04/02(木) 15:30:04.54ID:sLIn31jD >>127
cpprefjp でそういう用語を使ってるから私もそれに倣ったんだけども、
cppreference の方では「定数式を要求する文脈」という言い方をしてるなぁ。
こっちの方がわかりやすいと思うので今後はこっちを使うようにするよ。
cpprefjp でそういう用語を使ってるから私もそれに倣ったんだけども、
cppreference の方では「定数式を要求する文脈」という言い方をしてるなぁ。
こっちの方がわかりやすいと思うので今後はこっちを使うようにするよ。
129デフォルトの名無しさん
2020/04/02(木) 16:34:46.83ID:WWm7acVs 標準化以前からTMP大ウケだったC++に何求めてるんだよ
130デフォルトの名無しさん
2020/04/02(木) 17:00:14.72ID:0tSRYO67 使い道を想像できない人のほうが多いことにとても驚いてます。
131デフォルトの名無しさん
2020/04/02(木) 17:05:14.94ID:0tSRYO67 Javaは心が洗われるような美しい言語だったのに、豆とか言い出したあたりから汚れてしまった。
もはや何も感じない。
もはや何も感じない。
132デフォルトの名無しさん
2020/04/02(木) 17:05:16.25ID:Qj/v/C6S >>130
だから実例よろしく
だから実例よろしく
133デフォルトの名無しさん
2020/04/02(木) 17:05:53.37ID:0tSRYO67 >>132
Excel使わなくて済むなって。
Excel使わなくて済むなって。
134デフォルトの名無しさん
2020/04/02(木) 17:08:51.09ID:0tSRYO67 https://html.spec.whatwg.org/multipage/parsing.html#parsing-main-inhtml
今ここやってんの。
色々検索してたら、std::sortにconstexprが付くというのを見つけて。
なんだこれ!
なんだこれ!
なんだこれ!
となった。
でもまだついてないから使えない。
今ここやってんの。
色々検索してたら、std::sortにconstexprが付くというのを見つけて。
なんだこれ!
なんだこれ!
なんだこれ!
となった。
でもまだついてないから使えない。
135デフォルトの名無しさん
2020/04/02(木) 17:11:36.01ID:Wbq1ni9c なぜ驚くのかよくわからん
ポイントは何?
ポイントは何?
136デフォルトの名無しさん
2020/04/02(木) 17:19:53.12ID:RbNpa6BP 翻訳時に解決できることを、実行環境に持ち越さないために
コンパイラ方式であることが20年かかってもわからんやつが
constexprという止めまで刺されてまだ暴れてるな
コンパイラ方式であることが20年かかってもわからんやつが
constexprという止めまで刺されてまだ暴れてるな
137デフォルトの名無しさん
2020/04/02(木) 17:21:23.16ID:I8hlhwK7 20年前のitaniumみたいな失敗を繰り返そうとしてるバカ。
138デフォルトの名無しさん
2020/04/02(木) 17:48:06.37ID:0tSRYO67 大 変 驚 い て い ま す !
139デフォルトの名無しさん
2020/04/02(木) 17:53:56.92ID:uLX+Lk1l コンパイル時にソートできるのか
140デフォルトの名無しさん
2020/04/02(木) 18:05:19.51ID:Qj/v/C6S141デフォルトの名無しさん
2020/04/02(木) 18:12:59.71ID:0tSRYO67 発想を逆にしてみたらどうだろ。
100万件のデータをソートしたらコンパイル時間が増えるみたいな方向性じゃなくて。
100万件のデータにマッチさせる側の数十件の情報をコンパイル時にソートするとしたら?
ぐもももも!ってなる。
ちなみに100万件の文字列をソートするのは数百ミリ秒。
そんなに怖がるほどでもない。
100万件のデータをソートしたらコンパイル時間が増えるみたいな方向性じゃなくて。
100万件のデータにマッチさせる側の数十件の情報をコンパイル時にソートするとしたら?
ぐもももも!ってなる。
ちなみに100万件の文字列をソートするのは数百ミリ秒。
そんなに怖がるほどでもない。
142デフォルトの名無しさん
2020/04/02(木) 18:13:43.47ID:RbNpa6BP143デフォルトの名無しさん
2020/04/02(木) 18:19:18.38ID:Qj/v/C6S144デフォルトの名無しさん
2020/04/02(木) 18:23:36.92ID:0tSRYO67 こ れ は 凄 い こ と で す よ !
145デフォルトの名無しさん
2020/04/02(木) 18:26:27.69ID:0tSRYO67 21世紀最大の発明と言われる右辺値参照についてもコメントお願いします。
ノーベル賞はいつ決まるんでしょうか。
ノーベル賞はいつ決まるんでしょうか。
146デフォルトの名無しさん
2020/04/02(木) 18:28:13.54ID:jVaX7Z/j まあPL/1は35年前からプリプロセッサでサブルーチンも定義できてたから今更コンパイル時にソートできてもたいした驚きはないわ
147デフォルトの名無しさん
2020/04/02(木) 18:35:18.32ID:4Juv79OL 西洋人の決定論が反映されている
「未来は決まって無い」という考え方はダイナミックであり動的と呼ばれる
「未来は全て決まっている」というのが彼らの古典的な思考方法
未来において起こることの全ては、あらかじめ既に決まっている
というか、神が決めた
そういう宗教的思想あるいは神学が反映されている
「未来は決まって無い」という考え方はダイナミックであり動的と呼ばれる
「未来は全て決まっている」というのが彼らの古典的な思考方法
未来において起こることの全ては、あらかじめ既に決まっている
というか、神が決めた
そういう宗教的思想あるいは神学が反映されている
148デフォルトの名無しさん
2020/04/02(木) 18:42:26.03ID:0tSRYO67 禿 げ に ノ ー ベ ル 賞 を !
149デフォルトの名無しさん
2020/04/02(木) 18:51:05.61ID:0tSRYO67 >>147
ドラゴンブックを一通り実装したかどうかで変わるだけでは。
ドラゴンブックを一通り実装したかどうかで変わるだけでは。
150デフォルトの名無しさん
2020/04/02(木) 19:38:08.14ID:x6ke+Z1w 右辺値参照とmoveでET不要になる?
151デフォルトの名無しさん
2020/04/02(木) 21:38:05.56ID:sLIn31jD152デフォルトの名無しさん
2020/04/02(木) 21:57:48.18ID:RbNpa6BP153デフォルトの名無しさん
2020/04/03(金) 19:34:28.81ID:UoNKEVCn >>150
「ET」とはなんですか?
「ET」とはなんですか?
154デフォルトの名無しさん
2020/04/03(金) 21:35:11.04ID:SADwXAP6 >>153
ET (Expression Template)
ET (Expression Template)
155デフォルトの名無しさん
2020/04/03(金) 22:08:14.80ID:FLH8K04k >>152
デジタル回路は決定論的かもしれんがI/Oを通して外界と繋がっている件
デジタル回路は決定論的かもしれんがI/Oを通して外界と繋がっている件
156デフォルトの名無しさん
2020/04/05(日) 06:22:54.73ID:g2vNnymJ デマングルのことで質問があります。Ubuntu上でwebkitgtkというライブラリを見てるんですが、ライブラリ内に
以下のような2つのシンボル
_ZN3WTF6StringC1EPKDsj
_ZN3WTF6StringC2EPKDsj
があるんですが、これらはデマングル後
WTF::String::String(char16_t const*, unsigned int)
WTF::String::String(char16_t const*, unsigned int)
となって区別がつかない(少なくとも自分には)んですが、これはどういうことでしょう。C1とC2という部分の違いは...
ちなみに元のコード上では同じ型のコンストラクタがダブってたりはしていません(と思います)。し、ダブってたら
コンパイル時にエラーになりますよね?
リンカー的にはデマングル前のシンボルで扱うんでしょうから両者とも必要なんでしょうねやはり
以下のような2つのシンボル
_ZN3WTF6StringC1EPKDsj
_ZN3WTF6StringC2EPKDsj
があるんですが、これらはデマングル後
WTF::String::String(char16_t const*, unsigned int)
WTF::String::String(char16_t const*, unsigned int)
となって区別がつかない(少なくとも自分には)んですが、これはどういうことでしょう。C1とC2という部分の違いは...
ちなみに元のコード上では同じ型のコンストラクタがダブってたりはしていません(と思います)。し、ダブってたら
コンパイル時にエラーになりますよね?
リンカー的にはデマングル前のシンボルで扱うんでしょうから両者とも必要なんでしょうねやはり
157デフォルトの名無しさん
2020/04/05(日) 08:18:36.63ID:QAcrCW73 unique_ptrについて質問です。
std::unique_ptr<T> uptr(new T);
に対して、uptr.get() と *reinterpret_cast<T**>(&uptr) は常に一致するでしょうか。
用途としては生ポインタの配列を受けとる関数にstd::vector<std::unique_ptr<T>>を渡したいです。
例:
void display_ptr(size_t n, int** pp){
for(size_t i=0; i<n; ++i){
std::cout << pp[i] << '\n';
}
}
int main(){
std::vector<std::unique_ptr<int>> vec;
for(size_t i=0; i<3; ++i){
vec.emplace_back(new int);
}
display_ptr(vec.size(), reinterpret_cast<int**>(&vec[0]));
return 0;
}
std::unique_ptr<T> uptr(new T);
に対して、uptr.get() と *reinterpret_cast<T**>(&uptr) は常に一致するでしょうか。
用途としては生ポインタの配列を受けとる関数にstd::vector<std::unique_ptr<T>>を渡したいです。
例:
void display_ptr(size_t n, int** pp){
for(size_t i=0; i<n; ++i){
std::cout << pp[i] << '\n';
}
}
int main(){
std::vector<std::unique_ptr<int>> vec;
for(size_t i=0; i<3; ++i){
vec.emplace_back(new int);
}
display_ptr(vec.size(), reinterpret_cast<int**>(&vec[0]));
return 0;
}
158デフォルトの名無しさん
2020/04/05(日) 09:51:55.61ID:LNp8foc9 >>157
しない
しない
159デフォルトの名無しさん
2020/04/05(日) 13:16:18.53ID:P07lI1PF160デフォルトの名無しさん
2020/04/05(日) 14:16:13.12ID:LNp8foc9161デフォルトの名無しさん
2020/04/05(日) 14:41:32.21ID:P07lI1PF UChar * と char16_t * の方だから 84-86 行目の方だったスマソ
162デフォルトの名無しさん
2020/04/05(日) 17:57:58.00ID:IgCOpQa5163デフォルトの名無しさん
2020/04/06(月) 00:17:22.43ID:YN01J8oK 2次元のレイキャスティングを作成しようとしてます。
ttps://github.com/OneLoneCoder/olcPixelGameEngine/blob/master/Videos/OneLoneCoder_PGE_ShadowCasting2D.cpp
にあるコードを現在javaで書いており、
ttps://youtu.be/fc3nnG2CG8U?t=1519
のように縦に長く1本線が出来てほしいのですが、
縦やにブロックを並べた時に、なぜか1ブロックごとに線が出来てしまいます。
どうすれば動画みたいに、縦に長い1本線が出来ますでしょうか?
コードは
ttps://ideone.com/spxzNE
に載せてみました。
ttps://github.com/OneLoneCoder/olcPixelGameEngine/blob/master/Videos/OneLoneCoder_PGE_ShadowCasting2D.cpp
にあるコードを現在javaで書いており、
ttps://youtu.be/fc3nnG2CG8U?t=1519
のように縦に長く1本線が出来てほしいのですが、
縦やにブロックを並べた時に、なぜか1ブロックごとに線が出来てしまいます。
どうすれば動画みたいに、縦に長い1本線が出来ますでしょうか?
コードは
ttps://ideone.com/spxzNE
に載せてみました。
164デフォルトの名無しさん
2020/04/06(月) 00:42:09.55ID:JpxE2ikJ Javaの質問ならJavaスレへ逝け
165デフォルトの名無しさん
2020/04/06(月) 00:49:35.43ID:/hNEVjF2 無駄に長い一本糞を作りたいのなら修行を積んでください
166デフォルトの名無しさん
2020/04/06(月) 20:20:19.81ID:umYPTPrb わかりました。javaの法で聞きます。
167デフォルトの名無しさん
2020/04/06(月) 20:22:44.75ID:g7Z03+iy そこをなんとか!
168デフォルトの名無しさん
2020/04/08(水) 01:04:01.57ID:sLx4/ZJO 質問ですが抽象メソッドを有するクラスのデストラクタは
なんで勝手に仮想デストラクタにならないんでしょうか…
なんか有用なイディオムでもあるんでしょうか……………
C#しばらくやった後だったのでC#のつもりでインターフェースを定義して
virtual ~IFoo() { }
を書き忘れた結果盛大にリークすたgrz
なんで勝手に仮想デストラクタにならないんでしょうか…
なんか有用なイディオムでもあるんでしょうか……………
C#しばらくやった後だったのでC#のつもりでインターフェースを定義して
virtual ~IFoo() { }
を書き忘れた結果盛大にリークすたgrz
169はちみつ餃子 ◆8X2XSCHEME
2020/04/08(水) 09:41:04.41ID:kI16h2GK >>168
ゼロオーバーヘッドの原則は C++ 的にはかなり強い要請なので……。
オブジェクトに常にポインタを保持しなければならないことと、
呼び出すときに仮想関数テーブルをたどるコストがあるってのは看過できなかったんだろう。
ゼロオーバーヘッドの原則は C++ 的にはかなり強い要請なので……。
オブジェクトに常にポインタを保持しなければならないことと、
呼び出すときに仮想関数テーブルをたどるコストがあるってのは看過できなかったんだろう。
170デフォルトの名無しさん
2020/04/08(水) 09:52:16.86ID:BKxeQF3m ん〜そもそも抽象と仮想はもともとの発想が違うから似て非なるもの
さらにC#においてclassとinterfaceは似て非なるもの
C++に厳密な意味でinterfaceを実現する機能はない
そのへんはよしなによしなに
ていうか~IFOOの書き忘れがリークの元凶て発想があかん
解放し忘れしたらあかん物はsafe〜とかのクラスに押し込むべき
さらにC#においてclassとinterfaceは似て非なるもの
C++に厳密な意味でinterfaceを実現する機能はない
そのへんはよしなによしなに
ていうか~IFOOの書き忘れがリークの元凶て発想があかん
解放し忘れしたらあかん物はsafe〜とかのクラスに押し込むべき
171デフォルトの名無しさん
2020/04/08(水) 10:09:18.67ID:bRUXA7Cg でも仮想関数を持つクラスのデストラクタをわざわざ非仮想にするメリットってなんかあるの?実際の所
172デフォルトの名無しさん
2020/04/08(水) 10:20:56.86ID:iAMh5USc shared_ptrで管理するなら仮想デストラクタである必要がない
無駄に遅くなる
無駄に遅くなる
173デフォルトの名無しさん
2020/04/08(水) 11:24:20.39ID:BKxeQF3m >>171
インターフェースという位置づけなら仮想・非仮想どちらにしろデストラクタが直に呼ばれるべきじゃないんじゃないかと思うわ
ただのインターフェースだからむしろ非仮想&protectedで隠すのがいいんじゃないかと(しらんけど)
↓こんなイメージで直にデストラクタ触れるのはclass A以降
struct IFOO
{
protected:~IFOO();
};
class A:IFOO
{
public: virtual ~A();
};
class B:A{};
class C:A{};
インターフェースという位置づけなら仮想・非仮想どちらにしろデストラクタが直に呼ばれるべきじゃないんじゃないかと思うわ
ただのインターフェースだからむしろ非仮想&protectedで隠すのがいいんじゃないかと(しらんけど)
↓こんなイメージで直にデストラクタ触れるのはclass A以降
struct IFOO
{
protected:~IFOO();
};
class A:IFOO
{
public: virtual ~A();
};
class B:A{};
class C:A{};
174デフォルトの名無しさん
2020/04/08(水) 11:40:23.05ID:bRUXA7Cg それって要するに解放する時に、IFOOじゃなくてAだとかBだとかの
インスタンスの正体を全て把握しとけってことでしょ?
だったらそもそもIFOOって必要なの?って思う
インスタンスの正体を全て把握しとけってことでしょ?
だったらそもそもIFOOって必要なの?って思う
175デフォルトの名無しさん
2020/04/08(水) 11:48:39.21ID:cOYSaP/H■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【前橋市】小川晶前市長とラブホテルで打ち合わせをした54歳男性職員を停職処分 今月末で依願退職するという [シャチ★]
- 【おこめ券】鈴木農相 米価維持の意図「一切ない」★2 [ぐれ★]
- 【埼玉】「無免許で高速道路で事故」トラックの追突事故で10代男性死亡 無免許過失運転致死の疑いでトルコ国籍の男(22)逮捕 戸田市 [ぐれ★]
- バリ島で男子生徒ら集団万引きか、防犯カメラ映像が拡散 京都の大谷中学・高校が「窃盗行為」謝罪★6 [七波羅探題★]
- 広島・廿日市、おこめ券配布せず 全市民に3000円現金給付へ [どどん★]
- 【警視庁】走行中の電車で女性に露出した下半身押しつけたか 無職の男(46)逮捕「チャンスがあればいつでもやる」 [nita★]
- アメップ「ジャップ安すぎワロタ。飛行機代込でもフロリダより東京のディズニー行った方が安いまである」 [649381991]
- 【実況】博衣こよりのえちえちチーズケーキを仕込み(雑談あり)🧪★2
- 【悲報】マクベ大佐「いい音色だろ(壺を弾く)」僕副官「統一教会っすかw」マクベ大佐「北宋だ(怒)」 [616817505]
- 【速報】1ポンド210円で日英GDP逆転(残り1.5円)...世界6位の経済規模に転落 [237216734]
- じゃあ何券だったら、日本人は満足したんだよ [452836546]
- 朝日新聞記者「中国軍のレーダー照射はこめかみに銃を突きつけられたのと同じ。僕なら反撃して撃墜してる」高市 [931948549]
