X



C++相談室 part136

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん (ワッチョイ bf81-LHz9)
垢版 |
2018/06/07(木) 23:40:12.36ID:GNQuDMaA0
次スレを立てる時は本文の1行目に以下を追加して下さい。
!extend:on:vvvvv:1000:512

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

前スレ
C++相談室 part135
https://mevius.5ch.net/test/read.cgi/tech/1522495206/

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

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

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

----- テンプレ ここまで -----
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
0599デフォルトの名無しさん (ワッチョイ 469d-mzC7)
垢版 |
2018/06/30(土) 22:48:11.24ID:p5lz5e260
>>582>>583で答えが出てるのに、馬鹿には理解できなかったのだろうな。
>俺なら恥ずかしすぎて首吊って死ぬわ。

ではその理由を書いてごらん。理由がないと回答にならんよ。理由が説明できないなら試験も受からんだろ。
0600デフォルトの名無しさん (ワッチョイ 469d-mzC7)
垢版 |
2018/06/30(土) 22:50:20.24ID:p5lz5e260
>で、addpはどこのアドレスをさしてる?
>で、なにがインクリメントされてる?

まず、どこをさしているのか?何がインクリメントされているのか答えてごらん。
0601デフォルトの名無しさん (ワッチョイ 2980-iScA)
垢版 |
2018/06/30(土) 22:51:33.81ID:ozTCpxdq0
致命的に脳ミソが足りないのは理解した
アンリカバブルだ
0602デフォルトの名無しさん (ワッチョイ 469d-mzC7)
垢版 |
2018/06/30(土) 22:52:40.38ID:p5lz5e260
お前は解ったふりをしているだけだよ。言葉にして説明できないならな。
0603デフォルトの名無しさん (ワッチョイ 2980-iScA)
垢版 |
2018/06/30(土) 22:54:40.58ID:ozTCpxdq0
ここまで説明して
なんで同じ結果にならないか
分からないならもうムリだからな

向いてない
諦めなさい
なにごとも諦めが肝心
0604デフォルトの名無しさん (ワッチョイ 469d-mzC7)
垢版 |
2018/06/30(土) 22:55:43.85ID:p5lz5e260
誤魔化して変なコードを追加するな。問題はこれだ。
unsigned long addp = baseadd;
for(int i=0; i<leng; ++i){
*(char *)&addp++ = dt;
}
このコードが何故動作しないか? それを説明するのが問題なのだ。
0605デフォルトの名無しさん (ワッチョイ 469d-mzC7)
垢版 |
2018/06/30(土) 22:57:10.06ID:p5lz5e260
多分解っている人なら、直ぐに説明できる筈だ。
分からない人は説明できない。罵るのはさらに愚。
0606デフォルトの名無しさん (ワッチョイ 2980-iScA)
垢版 |
2018/06/30(土) 22:58:00.94ID:ozTCpxdq0
同じ結果にならないことはすでに説明してるからな

アドレスを格納する変数を使わないで同じ結果にしたいならどうすばいいか
まで書いた
それに対する補足説明まで書いた

もうこれ以上書くことはない
ムダ
0607デフォルトの名無しさん (ワッチョイ 469d-mzC7)
垢版 |
2018/06/30(土) 23:02:38.77ID:p5lz5e260
>アドレスを格納する変数を使わないで同じ結果にしたいならどうすばいいか
>まで書いた
>それに対する補足説明まで書いた

思わせぶりな回答を書いて欲しいといっているのではない。頭がいいと思ってほしいのかもしれないが
それでは「思わせぶり」でしかない。説明としてきちんとした形式を備えた自信のある回答を書いてごらん。
0609デフォルトの名無しさん (ワッチョイ 469d-mzC7)
垢版 |
2018/06/30(土) 23:10:58.15ID:p5lz5e260
>608
「教えない」習性の人は成長しない。ということは知っているだろ。習性というくらいだから今に始まったこと
ではない。つまり嘗て勉強を始めた時点ですでに成長はとまっているということだ。
0610デフォルトの名無しさん (ワッチョイ 469d-mzC7)
垢版 |
2018/06/30(土) 23:19:33.75ID:p5lz5e260
俺は無償でお前等に考え方、回答の方法を教えている。教えることが一番勉強になる。
いままでのところ質問にたいして誰も合格点をあげることができるような回答がない。
0611さまよえる蟻人間 ◆T6xkBnTXz7B0 (スフッ Sd22-xqsk)
垢版 |
2018/06/30(土) 23:20:06.78ID:ru2k3pO7d
addpの値として期待されているのがアドレス値X。&addpは、アドレス値Xを格納している変数addpのアドレス値Y(ポインタの値)。代入によって期待されているのが、アドレスXへのdtの値の格納。
XはYではないから、間違い。
0615デフォルトの名無しさん (ワッチョイ 469d-mzC7)
垢版 |
2018/06/30(土) 23:55:15.02ID:p5lz5e260
>>612
正に初歩的な質問というものは質問自体に間違いが含まれている可能性がある。
そのことに先ず言及できたのは君が初めてだ。素晴らしい。

質問者が正確に質問できた時点で回答は既になされたも同然だといわれるが今回も
例外ではない。これで終わる。
0616デフォルトの名無しさん (ワッチョイ 2980-iScA)
垢版 |
2018/07/01(日) 00:08:16.38ID:fc6M1Ev70
なめたことをしてくれたな。。。

558 名前:デフォルトの名無しさん (ワッチョイ 469d-mzC7)[] 投稿日:2018年06月30日(土) 08時17分40秒24 [朝] ID:p5lz5e260 [2/19] (PC)
コンパイラエラーにはならないが動作しない。

594 名前:デフォルトの名無しさん (ワッチョイ 469d-mzC7)[] 投稿日:2018年06月30日(土) 22時22分23秒05 [夜] ID:p5lz5e260 [8/19] (PC)
コンパイルエラーにはならない。ワーニングにもならん。という事実を書いている。

 (ワッチョイ 469d-mzC7)  ID:p5lz5e260

オマエを特定した
震えて眠りなさい
0617デフォルトの名無しさん (ワッチョイ 025e-2ROK)
垢版 |
2018/07/01(日) 00:18:16.61ID:8lWKFGMK0
ことさらに難しいコードを書いて得意がってる馬鹿がうようよ

1行に詰めるのがプロか?

新入社員が読めないようなコード書いて喜んでいるお前らが
バグを仕込む糞プログラマだわ
0619デフォルトの名無しさん (ワッチョイ 2980-iScA)
垢版 |
2018/07/01(日) 01:07:34.26ID:fc6M1Ev70
プログラマにまともなコード書いてもらうも仕事の一つだからな

まともなコード書いてもらうには
こっちもプログラムが分かってないといけない

日本はウンコみたいな低品質低能のプログラマしかいない
いかに踏みとどまらないといけない最低限の一線のラインを越えさせないようにするか
そこが腕のみせどころになる

このスレみれば分かる通り
日本のプログラマは低学歴低能しかいないことがよく分かるハズ

しかも相手がなにを期待してるかも読みとれない
コミュニケーション能力も著しく低い
こんなのに仕事をお願いするほうも大変だからな

可読性が高いコードを書くことは重要だが
それ以外にもイロイロなものが欠落している
0620デフォルトの名無しさん (ワッチョイ aec6-yQv9)
垢版 |
2018/07/01(日) 05:53:57.18ID:+8c6aI200
struct addp_t
{
int& operator ++ (int)
{
return a;
}
int a;
};

int main()
{
addp_t addp;
&addp++;
}

# アンカーつけるのももったいない
# 5chという狭苦しい箱庭の中で目撃したことが
# おまえの全てのようだな
#
# なぜ学歴が出てくるのかよくわからんが
# 高学歴のPGくらいどこにでもいるよ
0621デフォルトの名無しさん (ワッチョイ 2193-OY1D)
垢版 |
2018/07/01(日) 06:17:56.60ID:KJj1sYCg0
>>591 ありがとう。
(signed/unsigned)char* のポインタで他の型の格納領域にアクセスすることは
規格で許されてるんだね。char* だけ特別扱いってことか。

俺も >>581 の指摘を見て検索して同じページに到達したんだけど、
> 文字型。規格ではchar*, signed char*, unsigned char*が別の何かを指すことが特別に許されています。
> これは文字型がメモリ上の任意のaliasになり得ることを意味します。
の部分を見つけることができなかった。

すると >>558 のコードに未定義動作を引き起こす点はないのだな。
0623222 (ワッチョイ 02bd-AF1h)
垢版 |
2018/07/01(日) 14:42:57.68ID:H+9S2vGe0
循環参照があっても無問題で解放するスマポ作ったけど何か質問ある?
http://codepad.org/Hu6vP4qR

いやまあ確かに解放に当たり(塗り潰しのアルゴリズムで)循環を検出するだけでは済まず、
 *(this->m_pRef)の解放条件が*thisの解放「だけ」である
ということの証明が必要やったわ;(訂正1)
ここで*thisはsumapo<T>インスタンス、*(this->m_pRef)は*thisが保持しているcounted_refオブジェクト
(T型のインスタンスに参照カウント等を付加してwrapしたもの)。
詳細はsumapo<T>::proveRoot()のコメント参照、

これ以外は訂正は無し
0624222 (ワッチョイ 02bd-AF1h)
垢版 |
2018/07/01(日) 14:45:14.11ID:H+9S2vGe0
>>225
Tのメンバを公開(publicにする)するだけで、
sumapo<T>の定義内のコードからTが保持するsumapo<*>にアクセスできるというなら
>>226の忠言に従ってコードを書いてみると良いんじゃー

一方リフレクションが使えるなら、sumapo<T>::setLandowner()メソッドは不要となる
(これのメソッド>>222において
>あんま使い勝手の良いものにはならんかったorz
>m_pCarやm_pCdrとptrが裏で手を握る必要がある
 が指していたブツ。>>222の時点でtest01()が通るコードは書いていたんじゃわ;;
0626デフォルトの名無しさん (ワッチョイ 219f-iScA)
垢版 |
2018/07/01(日) 15:00:52.38ID:8/sCKaWm0
>>624
なんつうロングパスよ、と思ったが、コードを書いた姿勢だけは褒めてやる。
とはいえ、俺は最近「馬鹿が書いたコードは読む価値がない」と結論を出したので読まないが。
(大体において意味不明な制御を行っており、結果、
解読に時間がかかる割に得る物が全くない)

それ、アルゴリズム説明してみ。
そしてそれが正しく動くとして、何故C++がそれを採用しないかも説明してみ。
0628222 (ワッチョイ 02bd-AF1h)
垢版 |
2018/07/01(日) 15:44:14.33ID:H+9S2vGe0
クラスTのオブジェクトを参照するスマポsumapo<T>のインスタンスpaが、クラスTのインスタンスaを参照している状況を
 pa→[a]
と書くとする。ここで、[a]は、aに参照カウントその他を追加してwrapしたもの。(>>623におけるcounted_refクラスに当たる。
[a]はインスタンスaにつき唯一だが、[a]を参照するsumapo<T>は複数有り得る。

で、paとpbが循環参照しているとは、次のような状況である。
 例1: pa→[a], pb→[a]、ここでpbはaのメンバ(paとpbが循環参照
 例2: pa→[a], pb→[b], pc→[a]、ここでpbはaのメンバ、pcはbのメンバ(pa、pb、pcが循環参照

例1では[a]がpaとpbから参照されていることになっており(参照カウント2
結果、paの解放時、paのデストラクタで[a]の参照カウントが1になるが0にはならないので、
参照カウントだけに頼るとその時点でpaのデストラクタは[a]が解放されない。(引き続きpbから参照され続ける。
一方、pbの解放条件は、[a]の解放である(∵pbがaのメンバであるため)。というわけで解放がデッドロックに陥る。

しかしpa→[a]==>pb→[a]、という参照関係(paのみが参照関係の根である)をpaの解放時に把握できていれば、
paの解放で[a](とそのメンバpb)を解放して無問題であることがワカル
この参照関係のうち、「==>」をpb.setLandowner(&pa)とすることで設定し、-- (1)
paの解放時に全体として参照関係の根がpa自身「のみ」であることを証明する -- (2)
ことにより、安全に解放が行える。((1)と(2)がshared_ptr<T>にたいしsumapo<T>で追加になった要素

標準ライブラリに入っていないのは、(2)の証明コストがイマイチかかるからだろうJK
0629222 (ワッチョイ 02bd-AF1h)
垢版 |
2018/07/01(日) 15:48:07.39ID:H+9S2vGe0
>>627
pa→[a]==>pb→[a]、という参照関係において、pbの地権者はpa。
なお、ソースコードコメント内には「立地」という言葉も出てくるが、pb立地が[a]。
0630デフォルトの名無しさん (ワッチョイ 219f-iScA)
垢版 |
2018/07/01(日) 16:55:50.02ID:8/sCKaWm0
>>628
まずそういうのはインタフェースを揃えろ。
(俺はスマポは使ったことがないが、俺の理解の範囲では)
お前はスマポの仕様を勘違いしている。

オブジェクト側をラップするのはソースコードの全面的書き換えが必要になるだろ。
だからそんなことはしてない。
スマポも普通のクラスでしかなく、スマポ側に制御に必要な情報全てを持っている。
オブジェクトと癒着はしてないんだよ。
> 一般的な実装では、 std::shared_ptr は2つのポインタを保持します。
> 格納されたポインタ (get() で返されるもの)
> 制御ブロックへのポインタ
> https://ja.cppreference.com/w/cpp/memory/shared_ptr

が、まあ、言いたいことは分かるし、ここは本質的には重要ではないので、
今回はお前のオレオレ用語のままでいい。


さて本題だが、(1)は誰が管理するんだ?
プログラマが明示的に手動で管理するのなら、現行のshared_ptr/weak_ptrと手間が変わらない。
だから自動的に出来る必要があるが、これは出来るのか?

具体的に言えば、お前が言っている「参照関係の根」をshared_ptrで、
「pa→[a]==>pb→[a]、という参照関係」のpbをweak_ptrで実装しろというのが現行の仕様だが、
これに対して何が便利になってるんだ?
0632デフォルトの名無しさん (ワッチョイ 219f-iScA)
垢版 |
2018/07/02(月) 01:32:55.93ID:Ael8RIVm0
>>631
それはC++的には意味がないだろ。

結局、現行の仕様が何故そうなのかを理解出来ない馬鹿が吠えただけだろ。
まあJavaScripterなんて所詮こんなもんだが。
「スクリプト言語使いをプログラマと呼ぶな」というのは、多少は当たってる。
彼らが書けるのは「動けばいい」程度のコードまででしかない。
0635デフォルトの名無しさん (ワッチョイ 927e-mVTy)
垢版 |
2018/07/02(月) 10:28:58.92ID:CEdwz05Y0
pythonしか使えないやつが作った特定のサイトから画像を大量にダウンロードするだけのツールが
クソ遅いうえにメモリ4GBも使ってたので頭pythonってクソだなって思った
0636デフォルトの名無しさん (ワッチョイ ad8a-4/UQ)
垢版 |
2018/07/02(月) 11:36:32.45ID:+g59n7Y00
使える言語を聞かれてC++含めて複数答えたら
確かPHPあたりで「それプログラムじゃなくてスクリプトだよね」って言われたことはあるな
そこまで上から目線で突っ込むことか?とイラッとした記憶があるな
0640デフォルトの名無しさん (ワッチョイ 79b3-HrKv)
垢版 |
2018/07/02(月) 16:41:11.07ID:HeCnpISr0
>>636
PHPは言語自体の性能が低いので使いこなすのはかなり難しい。
Javascriptも同じ。
つまり、楽に性能を出せるC++に乗り換えた方がいい。
0641デフォルトの名無しさん (ワッチョイ 79b3-HrKv)
垢版 |
2018/07/02(月) 16:41:41.19ID:HeCnpISr0
乗り換えるも何もここはC++スレじゃないか。
0644デフォルトの名無しさん (ワッチョイ 219f-iScA)
垢版 |
2018/07/02(月) 22:40:34.15ID:Ael8RIVm0
お前らは知らないからそんな呑気なことが言える。
実際、JavaScriptはマジでゴミコードの山だ。
商用サイトでも糞重いしリークしまくりだ。

PHPはJavaScriptに比べ露出は低いが、OSSを見る限りやはり糞だ。
とはいえコードの質はPHP>>>JavaScriptだが。
DB接続があり、初心者にもコードの質が見える所が違うのだろう。
PHPerは虐げられているが、その分勘違い野郎は少ない。
最悪なのはJavaScripterだ。

一般のスクリプト言語(Python, Ruby含む)とC++等のプログラミング言語の違いは、
前者は圧倒的に「一回動作させれば終わり」な使われ方をすること。
だから、メモリリーク?何それ美味しいの?
コードが美しい?そんなことよりちゃっちゃと書いて実行させた方が早いでしょ、となる。
長期的保守の必要がない使い捨てコードばかり書いているから、
保守に耐える品質のコードを書けるようにならないだけ。

だから正確には、
「保守に耐える品質のコードを書けない馬鹿をプログラマと呼ぶな」であり、
それがほぼ「スクリプト言語しか使えない馬鹿」と一致する、というだけ。
一般的に(JavaScript除く)スクリプト言語は圧倒的に遅く、
味見ではなくガチならC/C++に書き換えるケースも多々発生する、というのも
これを後押ししている。

とはいえ、JavaScripterやPHPerみたいな馬鹿揃いでも
何とかるように出来ているのがWeb系()の凄いところ。
あれは学ぶ価値あると思うぞ。
色々C++では無駄に難しく考えすぎていたな、ということに気づかされるから。

今更導入されたラムダもしかり。あれは手抜きにはかなり便利だ。
コルーチンもそうでしょ。無しで同じ事をやろうとするとそれなりにエグくなる。
0645デフォルトの名無しさん (ワッチョイ 02bd-AF1h)
垢版 |
2018/07/03(火) 00:37:00.88ID:kg4YTZEy0
>>630
>さて本題だが、(1)は誰が管理するんだ?
いやすまん>>628の最後の一文ではそれをすっかり失念してたわ;;
標準ライブラリにsumapo<T>が入りえない最大の理由は、(1)の管理を手動でせねばならない、という使い勝手の悪さのが最大の理由
>>222で書いた「使い勝手の悪さ」のことじゃわ

これを自動化するにはリフレクションが要る

それはそうとして、
 1. オブジェクト側をラップする
というのと、
 2. オブジェクトと癒着
は別の話じゃわ;

1は標準的なshared_ptrの実装ではそうなっている(counted_refという名前のクラスは実在の実装から拝借したものであって漏れの独創ではない
だいたい
>[a]はインスタンスaにつき唯一だが、[a]を参照するsumapo<T>は複数有り得る。 (>>628)
なので、参照カウンタを所有するのはオブジェクト側をラップした[a]以外ありえんのじゃわ
[a]を参照する全てのsumapo<T>は、[a]より長く生き長らえることは無い

2はsumapo<T>にとっては必要だが、shared_ptrには要らん
0647デフォルトの名無しさん (ワッチョイ 02bd-AF1h)
垢版 |
2018/07/03(火) 01:12:15.05ID:kg4YTZEy0
ちな(2)、
>「pa→[a]==>pb→[a]、という参照関係」のpbをweak_ptrで実装しろというのが現行の仕様だが(>>630)
これは、ちげう

weak_ptrを使って[a]の解放の根がpaのみであることを証明できるのは、実際に[a]を解放したときに限られるが
もし[a]の解放の根がpaだけではないと反証されたら[a]を解放してしまった後で藻前責任とれんの…?

一方sumapo<T>はそんな迂闊なことはせず、解放「前」に証明を試みるんである
0648デフォルトの名無しさん (ワッチョイ 927e-mVTy)
垢版 |
2018/07/03(火) 05:12:51.76ID:XnJOzKj10
>>639
だから頭pythonだと言ったろ
俺がこれ遅くねえかって言ったら頭ひねった結果理由がわからんと言ってきた
俺が作り直してやったら速度が倍増したけどHTTPリクエストするだけでメモリを数十MB使われたからPythonもクソだわ
0649デフォルトの名無しさん (ワッチョイ 02b3-9w61)
垢版 |
2018/07/03(火) 05:40:01.78ID:2wRh2EpV0
>>648
> 俺が作り直してやったら速度が倍増したけどHTTPリクエストするだけでメモリを数十MB使われたからPythonもクソだわ
頭の悪い知ったかに絡まれるPython可哀想 w
低能しかいない職場なのかよ
0650デフォルトの名無しさん (ワッチョイ 219f-iScA)
垢版 |
2018/07/03(火) 06:33:44.96ID:7Nykwcxu0
>>645-647
なるほどお前が何も理解してないのは分かった。

> これを自動化するにはリフレクションが要る
これは違う。
仮にリフレクションがあったとして、何をどうするか説明してみろ。
お前には出来ないから。

> weak_ptrを使って[a]の解放の根がpaのみであることを証明できるのは、実際に[a]を解放したときに限られるが
> もし[a]の解放の根がpaだけではないと反証されたら[a]を解放してしまった後で藻前責任とれんの…?
これも違う。
お前はweak_ptrの仕様を理解していない。
お前の言い分だと、「現行の仕様では循環参照を実装出来ない」事になるが、
これは明確な間違いだろ。
お前はこんな当たり前の事すら理解出来ないほど馬鹿なんだよ。

そもそも、
> 標準ライブラリに入っていないのは、(2)の証明コストがイマイチかかるからだろうJK (>>628)
これ自体が間違ってるんだが。


もう君は相手にする価値のない馬鹿ということでいいかな?
JavaScripterなんてこの程度の馬鹿しかいないし、お前もそうだ、でしかない。
0652デフォルトの名無しさん (ワッチョイ 45fa-2e90)
垢版 |
2018/07/04(水) 21:55:39.61ID:gFgZc5FG0
MFE
0653デフォルトの名無しさん (ワッチョイ 0780-Rmg1)
垢版 |
2018/07/05(木) 00:13:55.65ID:F5EmMeHI0
よくわからんがリファレンスカウンタがゼロになったら解放するしょうもないプログラムか
MSのCOMもそんなんだったような覚えがあるわ
0656デフォルトの名無しさん (ワッチョイ 5f12-Rmg1)
垢版 |
2018/07/05(木) 01:14:09.68ID:gdOfHcx+0
>>654
stableにはさせん、させんぞぉ!
という層でC++は出来てる

常に進化するので、それに付いていけないB級はいらない
なので、あなたは使わなくていい
使いたいか、そうでないか、人に聞く前に自分の欲望で決めるのがC++だ
0657デフォルトの名無しさん (ワッチョイ e7c3-y/Vi)
垢版 |
2018/07/05(木) 10:08:22.57ID:LvrOI/wi0
>>656
C++0Xと騒がれていた時代のC++03のように
スタンダードなレベルに普及しているかという
趣旨の質問でした。

調べてみたらC++11くらいなら主な実装系で
サポートできているっぽいですね。
新規案件では採用してみたいです。

Web界隈は新し物好きの若者が多くて
勝手に栄枯盛衰していくコミュニティですが、
C++は化石みたいな人が多い空気があるので、
C++11以降、コミュニティが追従しているのか
ちょっと心配ではあります。
0665はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bf6f-UVFs)
垢版 |
2018/07/05(木) 18:59:41.66ID:l9X7uzb+0
仮引数リストが空の場合の解釈が違ったりとか、
文字リテラルや文字列リテラルの型が違ったりとか、
地味な非互換はいくつかある。

そのあたりを踏まなければおおよそ大丈夫。
0666デフォルトの名無しさん (ワッチョイ 479f-Rmg1)
垢版 |
2018/07/05(木) 21:02:37.89ID:osRjg7F+0
>>657
お前含めてWeb界隈、特にJavaScriperには馬鹿しかいないけどな。
これは印象ではなく、事実な。

何を使うかはお前が決めればいいだけ。
実際、Go/PHPではstableですか?なんて聞く馬鹿はいないだろ。
この違いを理解出来ないのはJavaScripterが馬鹿な証拠。
0669デフォルトの名無しさん (ワッチョイ 479f-Rmg1)
垢版 |
2018/07/05(木) 22:59:19.40ID:osRjg7F+0
>>667
> 私はjs使えませんアピールしてんの?
そりゃお前だろ。

お前が本当にJavaScriptを使えるなら、今のJavaScripterがどれだけ酷いか知ってるはず。
そしたらそんなことは到底言えないだろ。
実際のサイトのコードも大半がゴミだし、JavaScriptのスレで定期的に盛り上がる話題は

・変数の初期化前の挙動を理解するべき ← そんな必要ない、C#ならSyntaxError
・セミコロンはどこに打つべきか ← アホか?C++ならSyntaxError

なんだからな。
あいつらがデータ構造について議論した試しがないし、それ以前にOOPも理解していない。
だからあいつらの定義では、

・上級者=新しい文法を使いこなせる人

となり、657や667みたいな投稿が発生する。
(要はJavaScripterは657,667含めて全員ゴミってだけだが)
C++の連中はそんなこと思ってないから、新文法も必要なときに使うだけであって、
必要ないと判断してるから使わないだけ。
積極的に使わないといけないと考えること自体が間違ってる。
C/C++の歴史は長いから、最低限必要な物は既に整備され尽くしてる。
(JavaScriptやPHPみたいなヘルパースクリプト出身ではない)
0671デフォルトの名無しさん (アウアウウー Sa0b-KMj/)
垢版 |
2018/07/05(木) 23:25:50.10ID:ZcYhAMJSa
>>669 新文法を必要ないと判断しているということはautoやrange-based forとか使ってないの?
0672デフォルトの名無しさん (ワッチョイ 5f34-M0Jq)
垢版 |
2018/07/05(木) 23:27:52.02ID:kXJXvyLk0
古参でも理解できるプログラム書かないと仕事にならない場合もあるから
最悪C++使わないでC言語オンリーになる場合もある
というかC++自由に使える仕事の方が少ないよ
0673デフォルトの名無しさん (アウアウウー Sa0b-KMj/)
垢版 |
2018/07/05(木) 23:52:49.42ID:ZcYhAMJSa
C++の仕事にCしか書けない人が参加するのはありなのか?
0674デフォルトの名無しさん (ワッチョイ e7c3-y/Vi)
垢版 |
2018/07/05(木) 23:57:07.38ID:LvrOI/wi0
>>666
あなたが無知すぎるでしょ。
趣味で使うのならばなんでも好きなの使えばいいが、
実務で使う場合は周りのことも考慮する必要があるのです。

PHPやPythonでStableというのは
公式インタプリタが正式リリースされたということ。
コミュニティも追従して最新に対応する。

C++の場合、影響力ある実装系がたくさんあるせいか
Stable化するタイミングが分かりにくく
コミュニティも追従してこない。
0677デフォルトの名無しさん (ワッチョイ 479f-Rmg1)
垢版 |
2018/07/06(金) 00:42:23.77ID:sc4caQgm0
>>674
> 趣味で使うのならばなんでも好きなの使えばいいが、
> 実務で使う場合は周りのことも考慮する必要があるのです。
じゃあここで聞くなよメンドクセエ奴だな。

お前が決められる立場なら勝手に決めろ。
ただ、その程度で実務でグループ開発する際に決められる立場にあるとは思えないし、
仮にそうならよほど酷い職場だとしか。

> コミュニティも追従して最新に対応する。
Python3やPerl6見てそう思うのなら頭おかしいだろ。
PHPもいまだに5.4とかだったりするのも俺には謎だが。
(まあ何か理由はあるのだとは思うが)

> C++の場合、影響力ある実装系がたくさんあるせいか
ダウト。組み込み等で選べない場合はそれを使うしか無く、
選べる場合はMSVC/gcc/Clangの3つしかないだろ。

> コミュニティも追従してこない。
だからそういう問題じゃねえんだよ。
お前がどのコンパイラを使うか、それを決めればいいだけなんだよ。

逆にお前が勘違いしている「コミュニティの追従」があったら何が嬉しいんだ?


>>675-676
スレチ
0679デフォルトの名無しさん (ワッチョイ bf9f-1qXk)
垢版 |
2018/07/06(金) 00:51:22.50ID:ti7OEIpy0
>>677
お前もダウトだがな。
>MSVC/gcc/Clangの3つしかない
こいつらバージョンが違えば全然違う実装と言っていいくらい違うぞ。
最近はもうバージョン違えば動作違うなんて当たり前なんだから使う方が気を使えやって
立場が多いのかね。
0680デフォルトの名無しさん (ワッチョイ 479f-Rmg1)
垢版 |
2018/07/06(金) 01:02:10.76ID:sc4caQgm0
>>679
> 最近はもうバージョン違えば動作違うなんて当たり前なんだから使う方が気を使えやって
> 立場が多いのかね。
自前でガチで組むならコンパイラのバージョンは基本固定だろ。(必要ない限り上げない)
OSSなら基本は最新バージョン追従で、逆に旧バージョンなんてシラネでいいだろ。
(そもそもコンパイラのバージョンが上がって問題になるケースも希だが)

むしろお前はどんな環境でやってるんだ?
0681 ◆QZaw55cn4c (ワッチョイ 5f60-sule)
垢版 |
2018/07/06(金) 01:15:00.00ID:XDF8ToBN0
>そもそもコンパイラのバージョンが上がって問題になるケースも希だが

そ・れ・が、
cuda9 はコンパイラ(VS2017) のバージョンが上がって、さっぱりコンパイルできない有様なんです…
0682デフォルトの名無しさん (ワッチョイ 479f-Rmg1)
垢版 |
2018/07/06(金) 02:16:34.46ID:sc4caQgm0
>>681
それはcudaの問題で、C++側の問題ではないのでは?

もっとも、cuda環境なら俺なら当然コンパイラもcudaのバージョンも固定、
可能であればディスプレイドライバも固定で行くが。

cudaのOSSなら、それは最新版追従しかないし、
それで旧コードが駄目ってのなら、それはstableではないとしか。
ただcudaの場合はかなり特殊だからなー。
DirectXも「互換性?なにそれおいしいの?」状態だったらしいし。
あの辺は抽象化されてないからどうにもならんでしょ。
むしろ抽象化コストを嫌っているわけだし。
0683 ◆QZaw55cn4c (ワッチョイ 5f60-sule)
垢版 |
2018/07/06(金) 02:28:22.24ID:XDF8ToBN0
>>682
VS2015 を今でも使わせてもらえるのなら、もう VS2015 は固定されているので、それでいいのですけれども…今はVS2015は「一般には」公開されていないようです
VS2017 は、なにかを追加するために MS にアクセスすると、ついでにコンパイラのバージョンもあげてしまうのです
もとに戻すのを繰り返しましたが、もう疲れました…

というか、Linux では cuda は gcc を使っているようですから、Windows でもそうしてほしいのですが…
0684デフォルトの名無しさん (ワッチョイ 479f-Rmg1)
垢版 |
2018/07/06(金) 02:44:10.71ID:sc4caQgm0
>>683
> VS2017 は、なにかを追加するために MS にアクセスすると、ついでにコンパイラのバージョンもあげてしまうのです
なるー。自動アップデート死ね、って奴か。
それはかなり厳しいね。

回避するには、自前でVS2015マシンとVS2017マシンを分けるのが一番手っ取り早いだろう。
これが無理なら、試しにユーザアカウントを別にしてみればどうだろう?
(VS2017のアップデートも別人に対しては有効化されないだろと予想)

無理なら、、、確かnVidiaはdockerを用意するとか言ってなかったっけ?
Win10ならdockerはデフォで対応してたはずだし。

(つっても俺はcudaは2.2-4.xの頃しか使ったことがないので、現在の状況は詳しくは知らない。
まあ君なりに努力しての結果なんだろうとは思う。話が全然ずれてたらすまん)
0685デフォルトの名無しさん (オッペケ Sr3b-oY+s)
垢版 |
2018/07/06(金) 03:43:33.27ID:vodDi731r
関数に引数として渡せるような多次元配列ってどうやってこしらえるのがベストプラクティスなの?
eigenとかは使いたくない
STLなら使える


サイズがコンパイル時に決まってたりはしない予定
0689はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bf6f-UVFs)
垢版 |
2018/07/06(金) 18:11:53.41ID:G+eTHi8Q0
結論としては場合によるとしか言いようがないでしょ。
だいたいの場合にこれを使っておけばベストだわって言える方法はないと思う。

コンパイル時には決まらないって言ったって、
オブジェクトを構築した段階では決まるのか、
後から拡張 (縮小) することもあるのかでも判断は変わるだろうし。

ライブラリがユーザに見せる API なら抽象化されたクラスを用意した方がいいけど、
そうでもない内部的なものならポインタひとつと整数ふたつを渡すデザインでも用は足りるし。
0697デフォルトの名無しさん (ワッチョイ 0780-Rmg1)
垢版 |
2018/07/07(土) 00:10:21.61ID:kLxolQc60
1レコードが可変長の列でもない限り
vectorのvectorとか愚の骨頂
頭ワルイ
0698デフォルトの名無しさん (ワッチョイ 0780-Rmg1)
垢版 |
2018/07/07(土) 00:15:22.37ID:kLxolQc60
レコード作るたんびに激しいフラグメンテーションがおこるヒープをポコポコ作るとか
頭が超ワルイバカがやることです

よいこのみんなはココにいるバカなヤツラのマネはしないようにな
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況