次スレを立てる時は本文の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
探検
C++相談室 part137
■ このスレッドは過去ログ倉庫に格納されています
2018/07/14(土) 17:53:02.14ID:FOAGvAbs
461デフォルトの名無しさん
2018/08/01(水) 18:55:57.40ID:4hR5DucF やっぱり通になると、明太子ひとつ、辛子抜きで・・・とか注文するんだろな。
463デフォルトの名無しさん
2018/08/01(水) 19:11:49.62ID:a1G0tkY3 >>462
第2刷買ったっけな。役に立ったと思う。
第2刷買ったっけな。役に立ったと思う。
464デフォルトの名無しさん
2018/08/01(水) 19:41:42.72ID:7TmTR3QV >>462
板を荒らすのやめろよ
板を荒らすのやめろよ
465デフォルトの名無しさん
2018/08/01(水) 20:37:51.59ID:/iJJIMGp ポインタの件ですが参考になりました。まぁこっちはほぼ初心者で相手はベテランの上司なので何も言えない聞けないってとこですね
stackoverflowとか読んで生ポインタあんま使うなスマポ使えオブジェクト使えるときは使えみたいなこと書いてあるの見るとこれでいいのかなって思いますねええ
stackoverflowとか読んで生ポインタあんま使うなスマポ使えオブジェクト使えるときは使えみたいなこと書いてあるの見るとこれでいいのかなって思いますねええ
466はちみつ餃子 ◆8X2XSCHEME
2018/08/01(水) 23:13:55.56ID:oNWxQcbM std::unique_ptr は実行時の速度ペナルティもほとんどないので、避ける理由はあんまりないよな。
例外がとんだ時のロールバックについても面倒なことを考えなくて良いし。
例外がとんだ時のロールバックについても面倒なことを考えなくて良いし。
467デフォルトの名無しさん
2018/08/01(水) 23:34:41.68ID:GZaAdjmn たぶん、Scott Meyers とか「Effective 何々」とか、知らんのだろ
たぶん正常に動作する、過去の資産を持っていて、それをコピーして使う作り方なのかも
現場でよくあるのは、サンプル欲しいと言うと、過去のソースコードを持ってきて、
これは動くから、そのままコピーして使って下さいと言われる
新しい事をしようと思うと、環境構築やらで、動かない部分が出てくるので、非常に面倒
それに過去のソースコードは、あちこちで使われているから、バグが少ないという実績があるけど、
新しく作ったものは、バグ出しが大変。
安定するまで、かなりの期間が必要
よほどの理由がない限り、新しく作らない
たぶん正常に動作する、過去の資産を持っていて、それをコピーして使う作り方なのかも
現場でよくあるのは、サンプル欲しいと言うと、過去のソースコードを持ってきて、
これは動くから、そのままコピーして使って下さいと言われる
新しい事をしようと思うと、環境構築やらで、動かない部分が出てくるので、非常に面倒
それに過去のソースコードは、あちこちで使われているから、バグが少ないという実績があるけど、
新しく作ったものは、バグ出しが大変。
安定するまで、かなりの期間が必要
よほどの理由がない限り、新しく作らない
468デフォルトの名無しさん
2018/08/02(木) 03:53:49.14ID:iSPNCiYK >>451
どれか一つで良くね
ほとんど被ってるっしょ
あえて選ぶならアルゴリズムクイックリファレンス
網羅性ってヤツを追及するなら、同じようなもんいくつも買うんじゃなくて自分で言ってるようにテーマに特化したものを買うしかない
名前忘れたけど文字列アルゴリズムのアレとか
どれか一つで良くね
ほとんど被ってるっしょ
あえて選ぶならアルゴリズムクイックリファレンス
網羅性ってヤツを追及するなら、同じようなもんいくつも買うんじゃなくて自分で言ってるようにテーマに特化したものを買うしかない
名前忘れたけど文字列アルゴリズムのアレとか
469はちみつ餃子 ◆8X2XSCHEME
2018/08/02(木) 06:10:43.23ID:ksgx4qMg >>447
Knuth の 「The Art of Computer Programming」もその条件に当てはまると思う。
Knuth の 「The Art of Computer Programming」もその条件に当てはまると思う。
470デフォルトの名無しさん
2018/08/02(木) 07:12:52.80ID:NSwKZwuS 圧縮アルゴリズムなんか、本で憶えたんじゃなく
FAXだとかモデムみたいな具体的なブツで憶えたな
その他のアルゴリズムも単行本より雑誌で
憶えたのが多いし
FAXだとかモデムみたいな具体的なブツで憶えたな
その他のアルゴリズムも単行本より雑誌で
憶えたのが多いし
471デフォルトの名無しさん
2018/08/02(木) 10:20:23.60ID:KhTk1OQU そのあたりのアルゴリズムはCマガで覚えた
472デフォルトの名無しさん
2018/08/02(木) 10:41:45.24ID:zFALVR92 >>468
これ?
高速文字列解析の世界――データ圧縮・全文検索・テキストマイニング (確率と情報の科学) | 岡野原 大輔 |本 | 通販 | Amazon
ttps://www.amazon.co.jp/dp/4000069748
「高速文字列解析の世界」サポートページ - daisuke.okanohara
ttps://sites.google.com/site/daisukeokanohara/iwanami_string_world
これ?
高速文字列解析の世界――データ圧縮・全文検索・テキストマイニング (確率と情報の科学) | 岡野原 大輔 |本 | 通販 | Amazon
ttps://www.amazon.co.jp/dp/4000069748
「高速文字列解析の世界」サポートページ - daisuke.okanohara
ttps://sites.google.com/site/daisukeokanohara/iwanami_string_world
473デフォルトの名無しさん
2018/08/02(木) 11:27:51.52ID:KhTk1OQU そのジャンルは大体の場合は条件固定じゃないからツール類を使ったほうがいい
474デフォルトの名無しさん
2018/08/02(木) 17:47:42.68ID:QC+SfWnq >>447,451,468
蟻本の参考文献揃えるのがおすすめ
蟻本の参考文献揃えるのがおすすめ
475デフォルトの名無しさん
2018/08/02(木) 17:50:02.28ID:QC+SfWnq って思って確認したらそんな良くなかったスマン
>>470
文書圧縮について手元に置いていつも参照しているのは
https://www.amazon.co.jp/dp/478983672X/
今は、jpg の本が欲しいと思っていますが、なにかいいのはありますか?
文書圧縮について手元に置いていつも参照しているのは
https://www.amazon.co.jp/dp/478983672X/
今は、jpg の本が欲しいと思っていますが、なにかいいのはありますか?
477デフォルトの名無しさん
2018/08/02(木) 19:38:11.37ID:nAUx6Lke C++極めたいんだけど、どうすれば極められる?
仕事はJavaScriptが主です
今はアルゴリズムの本読んでるのですが、個人的にはC++ドラフトの間違いを指摘できるレベルになりたいです
仕事はJavaScriptが主です
今はアルゴリズムの本読んでるのですが、個人的にはC++ドラフトの間違いを指摘できるレベルになりたいです
478デフォルトの名無しさん
2018/08/02(木) 19:48:55.00ID:1EegAYN5 そんな事を人に聞いてる様じゃ一生無理
479デフォルトの名無しさん
2018/08/02(木) 19:57:10.95ID:Ro0F3mb9480デフォルトの名無しさん
2018/08/02(木) 20:52:27.89ID:jf+aoeV/481デフォルトの名無しさん
2018/08/02(木) 21:22:49.70ID:EkY0QbOC コンパイラ読めないと話にならんのじゃないか?
482デフォルトの名無しさん
2018/08/02(木) 21:53:24.64ID:0KRWeg2T >>480
職場に何を頼るの?
職場に何を頼るの?
483デフォルトの名無しさん
2018/08/02(木) 22:18:49.50ID:NSwKZwuS484デフォルトの名無しさん
2018/08/02(木) 22:24:42.73ID:Ar8oKNDv >>480
読んでばかりじゃなくて自発的に自分で実際に書いてみないことには、いつまでたってもたいして身に付かないだろう。
極めたいなら、言語仕様の一つ一つを実際に使ってみて具体的に役立つケースや制限、制約、限界を体感して、メリットデメリットを洗い出すくらいのつもりで試してみたら?
読んでばかりじゃなくて自発的に自分で実際に書いてみないことには、いつまでたってもたいして身に付かないだろう。
極めたいなら、言語仕様の一つ一つを実際に使ってみて具体的に役立つケースや制限、制約、限界を体感して、メリットデメリットを洗い出すくらいのつもりで試してみたら?
485デフォルトの名無しさん
2018/08/02(木) 23:26:26.75ID:jf+aoeV/486デフォルトの名無しさん
2018/08/03(金) 02:17:39.89ID:gpdbLiuq487デフォルトの名無しさん
2018/08/03(金) 02:23:34.66ID:Ja3muTb1 自作ツールはまず、スクリプト言語でやってみて、速度面などで不満があった時だけC・C++に置き換えるのがいいと思うけどどうなの。
スクリプト言語とコンパイル言語の使い分けを覚える良い機会になる。
スクリプト言語とコンパイル言語の使い分けを覚える良い機会になる。
488デフォルトの名無しさん
2018/08/03(金) 02:28:52.17ID:gpdbLiuq489デフォルトの名無しさん
2018/08/03(金) 07:41:26.05ID:jYMqs03L 極めると言うても、次の規格が出たらもう過去の知識だし、
いくら頑張っても到達できないゴールのような気がするなぁ。
規格を作る側に入り込めるなら話は違うかも知れんが。
C++は、自分より後ろにいる人をバカにするのが好きな人も多い感じだけど、
「そんな奴にはならん方がええ」
いくら頑張っても到達できないゴールのような気がするなぁ。
規格を作る側に入り込めるなら話は違うかも知れんが。
C++は、自分より後ろにいる人をバカにするのが好きな人も多い感じだけど、
「そんな奴にはならん方がええ」
490はちみつ餃子 ◆8X2XSCHEME
2018/08/03(金) 08:11:10.53ID:KKWcqInB ある程度の言語機能しか使わない範囲でも使い物になるように C++ は設計されてる。
ある程度を学めばその範囲内でも実務に使える。
もちろん深い理解があればプログラムをよりよく構成できるので、
実務に使いながら平行して段階的に学ぶということが出来る。
このことは設計者が著した D&E に書かれてる基礎理念のひとつだ。
地に足の着いた、現実的なものとして設計されてるんだよ。
だから、言語としての C++ だけに偏って学ぶのはお勧めできない。
言語として不格好な部分も現実の中では相応の合理性があったりして、
それを学習するのに適しているのは現実のプログラミングだと思う。
ただ、余談だけど、段階的に学べるようにというのはスタート地点として C を想定しているように思う。
C が当然の基礎知識としてあった時代には
そこからシームレスに C++ を学んでいけるように設計するのは妥当な選択だったかもしれないが、
今の時代には C++ の中の C の部分は色々と足を引っ張ってもいるので
歴史が長いと泥臭い部分も積み重なっていくものだなぁと思いました。 (小並感)
ある程度を学めばその範囲内でも実務に使える。
もちろん深い理解があればプログラムをよりよく構成できるので、
実務に使いながら平行して段階的に学ぶということが出来る。
このことは設計者が著した D&E に書かれてる基礎理念のひとつだ。
地に足の着いた、現実的なものとして設計されてるんだよ。
だから、言語としての C++ だけに偏って学ぶのはお勧めできない。
言語として不格好な部分も現実の中では相応の合理性があったりして、
それを学習するのに適しているのは現実のプログラミングだと思う。
ただ、余談だけど、段階的に学べるようにというのはスタート地点として C を想定しているように思う。
C が当然の基礎知識としてあった時代には
そこからシームレスに C++ を学んでいけるように設計するのは妥当な選択だったかもしれないが、
今の時代には C++ の中の C の部分は色々と足を引っ張ってもいるので
歴史が長いと泥臭い部分も積み重なっていくものだなぁと思いました。 (小並感)
491デフォルトの名無しさん
2018/08/03(金) 10:14:53.94ID:lq/KEYA1 20年近く使ってるけど、ドラフトとか目にしても
「こんな機能来るんや!」ってwktkするだけだな
規格を知ってれば極めてる、みたいな風潮が最近あるけど間違いやで
言語はあくまで道具だから使ってなんぼ
「こんな機能来るんや!」ってwktkするだけだな
規格を知ってれば極めてる、みたいな風潮が最近あるけど間違いやで
言語はあくまで道具だから使ってなんぼ
492デフォルトの名無しさん
2018/08/03(金) 10:29:03.00ID:cfhQf2V5 みんな深いレスありがとう
ただ自分はどうしても諦めきれないので、仕事以外の時間は、C++に関するサイトや書籍やコーディングに費やすことになると思う
Pythonは学ぼうとは思ってるけどね
ただ自分はどうしても諦めきれないので、仕事以外の時間は、C++に関するサイトや書籍やコーディングに費やすことになると思う
Pythonは学ぼうとは思ってるけどね
493デフォルトの名無しさん
2018/08/03(金) 10:49:41.39ID:TY6Sib0f ttps://github.com/python/cpython/tree/master/Python
今ならpythonのソースコードもオマケで学べるよ
今ならpythonのソースコードもオマケで学べるよ
494デフォルトの名無しさん
2018/08/03(金) 12:16:04.74ID:cfhQf2V5495デフォルトの名無しさん
2018/08/03(金) 15:41:42.81ID:Ja3muTb1 スクリプト言語には、ハッシュテーブルやディクショナリなどと呼ばれるキーと値の組を保存するコンテナ機能が存在する。
一般に高速とされるC++だが、実は、ハッシュテーブルだけはスクリプト言語の方がアクセス速度が速かった。
ただし、C++におけるstd::mapだけがハッシュテーブルに該当した頃の話。
今は、std::unordered_mapがあるのでスクリプト言語と同等以上の速度でハッシュテーブルにアクセス可能になっている。
一般に高速とされるC++だが、実は、ハッシュテーブルだけはスクリプト言語の方がアクセス速度が速かった。
ただし、C++におけるstd::mapだけがハッシュテーブルに該当した頃の話。
今は、std::unordered_mapがあるのでスクリプト言語と同等以上の速度でハッシュテーブルにアクセス可能になっている。
496デフォルトの名無しさん
2018/08/03(金) 18:32:37.47ID:j4paKoWq mapはハッシュテーブルに該当しないだろ。
そういうときは辞書とかマップとか連想配列とかと呼ぶべきだ。
そういうときは辞書とかマップとか連想配列とかと呼ぶべきだ。
497デフォルトの名無しさん
2018/08/03(金) 18:52:42.14ID:9KGEdKKU mapは連想コンテナだが
498デフォルトの名無しさん
2018/08/03(金) 19:03:27.95ID:j4paKoWq ハッシュテーブルじゃない
499デフォルトの名無しさん
2018/08/03(金) 23:13:28.65ID:B+FOIxCl クラス設計で悩んでいるんだが、みんなの意見を聞きたい
やりたいのは、いわゆるデザインパターン template methodを使ったクラス設計
class Parent {
public:
void execute() {
method1();
method2();
method3();
}
private:
virtual void method1();
virtual void method2();
virtual void method3();
}
子クラスのChild1, Child2でmethod1(), method2(), method3()をそれぞれオーバーライドして処理を分けている
ここで、Child3を追加しようと思うんだけど、method1()の内容はChild2::method1()と全く同じになる
これをどう実装しようかいろいろ悩んだんだが、どれもピンとこない。
そもそも最初の設計がおかしーんじゃねーの?とかこうしたらよくない?とかここおかしくね?とか意見あったら頼む
一応以下は自分が考えていること
@Child2, Child3の親クラスを抽出して、そっちに共通処理として書く
→実装のために継承関係を作るのはあまりよくない気がする
A別クラス(Utilクラス?)を作ってそっちにまとめる
→メンバ変数とか使ってると少し面倒かな。本質的でない気もする。
BChild3::method1()->Child2::method1()とコンポジション的にする
せっかく横のつながりができないようにしてるのに、ここでできるのはよくない
C親クラスに共通メソッドを作って、Child2::method1()とChild3::method1()はそれを呼ぶ
→しっくりこないけど、妥協点かな・・・
DしゃーないChild2::method1()コピペで!
→これはまあ論外かな、時間が全くないときの最終手段
やりたいのは、いわゆるデザインパターン template methodを使ったクラス設計
class Parent {
public:
void execute() {
method1();
method2();
method3();
}
private:
virtual void method1();
virtual void method2();
virtual void method3();
}
子クラスのChild1, Child2でmethod1(), method2(), method3()をそれぞれオーバーライドして処理を分けている
ここで、Child3を追加しようと思うんだけど、method1()の内容はChild2::method1()と全く同じになる
これをどう実装しようかいろいろ悩んだんだが、どれもピンとこない。
そもそも最初の設計がおかしーんじゃねーの?とかこうしたらよくない?とかここおかしくね?とか意見あったら頼む
一応以下は自分が考えていること
@Child2, Child3の親クラスを抽出して、そっちに共通処理として書く
→実装のために継承関係を作るのはあまりよくない気がする
A別クラス(Utilクラス?)を作ってそっちにまとめる
→メンバ変数とか使ってると少し面倒かな。本質的でない気もする。
BChild3::method1()->Child2::method1()とコンポジション的にする
せっかく横のつながりができないようにしてるのに、ここでできるのはよくない
C親クラスに共通メソッドを作って、Child2::method1()とChild3::method1()はそれを呼ぶ
→しっくりこないけど、妥協点かな・・・
DしゃーないChild2::method1()コピペで!
→これはまあ論外かな、時間が全くないときの最終手段
500デフォルトの名無しさん
2018/08/03(金) 23:20:08.01ID:cWBuX5k9 Child3をChild2の子にすれば?
501デフォルトの名無しさん
2018/08/03(金) 23:22:51.86ID:Ja3muTb1 共通処理を継承関係と無縁なtemplate関数にできないか検討してみては?
502デフォルトの名無しさん
2018/08/03(金) 23:26:40.59ID:Xb0+UQnK503デフォルトの名無しさん
2018/08/03(金) 23:28:34.49ID:Xb0+UQnK 4の改良?として
実装ファイルの無名スコープにvoid method1(const Parent& p)かな
実装ファイルの無名スコープにvoid method1(const Parent& p)かな
504デフォルトの名無しさん
2018/08/03(金) 23:36:56.13ID:xr+Hum6X 派生させるんじゃなくてメソッドの処理を別クラスにして移譲させるんじゃないの?
505デフォルトの名無しさん
2018/08/04(土) 00:12:06.53ID:AH7fLvgn >>499
> 実装のために継承関係を作るのはあまりよくない気がする
と言いつつ
> 親クラスに共通メソッドを作って、Child2::method1()とChild3::method1()はそれを呼ぶ
とか意味わからん
全然関係ないのにたまたま一緒になったと言うなら
> しゃーないChild2::method1()コピペで!
しかないと思うが
> 実装のために継承関係を作るのはあまりよくない気がする
と言いつつ
> 親クラスに共通メソッドを作って、Child2::method1()とChild3::method1()はそれを呼ぶ
とか意味わからん
全然関係ないのにたまたま一緒になったと言うなら
> しゃーないChild2::method1()コピペで!
しかないと思うが
506デフォルトの名無しさん
2018/08/04(土) 00:38:11.84ID:hQAAmMi0 コーディング規約で、引数や戻り値に参照型は使うな。わかりにくくなるから。ポインタで渡してポインタで返せ
ってことになってるんですけどこれ一般的な考え方なんですかね。生ポインタ使いまくりの方がよっぽどわかりにくいと思うんですけど
ってことになってるんですけどこれ一般的な考え方なんですかね。生ポインタ使いまくりの方がよっぽどわかりにくいと思うんですけど
507デフォルトの名無しさん
2018/08/04(土) 00:53:09.47ID:CpwGeL+S そんなことよりメソッドでクラスのインスタンスが変更されない場合
そのメソッドにちゃんとconstつけろよ
引数でクラス使う場合も、そのクラスのインスタンスが変更されない場合
その引数にちゃんとconstつけろよ
わかった?
そのメソッドにちゃんとconstつけろよ
引数でクラス使う場合も、そのクラスのインスタンスが変更されない場合
その引数にちゃんとconstつけろよ
わかった?
508デフォルトの名無しさん
2018/08/04(土) 00:58:03.49ID:0clFfLhT509デフォルトの名無しさん
2018/08/04(土) 01:05:30.18ID:Xh+3QD0k 引数については、読み書きする引数は注意をひくためにポインタ渡しにして、読み取りだけの引数は参照渡しにするといいのでは。
戻り値については、失敗したことを意味するNULLを使えるのでポインタのほうがうれしいかも。
戻り値については、失敗したことを意味するNULLを使えるのでポインタのほうがうれしいかも。
510デフォルトの名無しさん
2018/08/04(土) 01:06:58.94ID:QByQ49xB >>499
execute が virtual でないってことは
Parentを基底にしてコレクションしなくてもいいってことでOK?
>>501 の言うように template で mixin 的に書いたら こんな感じになったー
https://ideone.com/CcRHnO
ChildがKlassになって兄弟関係がなくなってる
execute が virtual でないってことは
Parentを基底にしてコレクションしなくてもいいってことでOK?
>>501 の言うように template で mixin 的に書いたら こんな感じになったー
https://ideone.com/CcRHnO
ChildがKlassになって兄弟関係がなくなってる
511デフォルトの名無しさん
2018/08/04(土) 01:12:24.24ID:CpwGeL+S 戻り値なんか全部intでいい
0未満ならすべて一貫してすべてエラー
失敗がありえないブーリアンだけはかろうじてあり
引数をポインタで渡せないとNULLを渡して処理したい場合の処理ができない
そういうとき困るから全部ポインタで
0未満ならすべて一貫してすべてエラー
失敗がありえないブーリアンだけはかろうじてあり
引数をポインタで渡せないとNULLを渡して処理したい場合の処理ができない
そういうとき困るから全部ポインタで
512デフォルトの名無しさん
2018/08/04(土) 05:12:55.60ID:iUNKVgUH 素人ばっかりかw
「More Effective C++」の項目1 だろ
Effectiveも読んでいない奴が、プログラミングやってるのが不思議。
どの言語でも、Effectiveは、入門書の次に読む本やぞ
参照は、確実にNULL じゃない場合。
また、参照に再代入はしない事
「More Effective C++」の項目1 だろ
Effectiveも読んでいない奴が、プログラミングやってるのが不思議。
どの言語でも、Effectiveは、入門書の次に読む本やぞ
参照は、確実にNULL じゃない場合。
また、参照に再代入はしない事
513デフォルトの名無しさん
2018/08/04(土) 05:25:27.41ID:YA1hWK5Y HRESULTも知らないヒヨッ子がいきってるな
514デフォルトの名無しさん
2018/08/04(土) 06:40:25.30ID:O/qEXyQX 参照に再代入ってどうやんの
515デフォルトの名無しさん
2018/08/04(土) 07:29:12.24ID:o+LfwS0J cからのコードが多い場合は統一のために参照渡しにしないってのはあるかな。
516デフォルトの名無しさん
2018/08/04(土) 07:33:54.06ID:YA1hWK5Y extern "C"に参照渡しなんかするかよ
517デフォルトの名無しさん
2018/08/04(土) 07:42:44.96ID:Xh+3QD0k たかが参照にストレスを感じるようになったら、C/C++プログラマをやめた方がいい。引退時。
518デフォルトの名無しさん
2018/08/04(土) 08:00:44.90ID:mQQzn2Q+519デフォルトの名無しさん
2018/08/04(土) 08:29:49.29ID:Xh+3QD0k 私見を言わせてもらうと、多様性を受け入れ状況に合わせて柔軟に合わせていくのもプログラマあるいは技術者の重要なスキルなので、
一神教的な偏狭な人は若年性認知症とまで言ってのける気はないがかなり情報処理能力が低くなっているはずなので、プログラミングをやめた方がいい。
一神教的な偏狭な人は若年性認知症とまで言ってのける気はないがかなり情報処理能力が低くなっているはずなので、プログラミングをやめた方がいい。
520デフォルトの名無しさん
2018/08/04(土) 09:34:28.56ID:0uMuTyGR プログラミングがどうこういうより国語を勉強しろ。
521デフォルトの名無しさん
2018/08/04(土) 09:35:16.17ID:o+LfwS0J 柔軟なのと規約を決めないのはまた別だけどね。
多様性といって新しい言語使って同じ過ちを繰り返している人を何人も見てると
色々バカバカしくなるってところはある。
老害と同じくらい歴史を見ない若造も有害という現実を見るのも良い。
多様性といって新しい言語使って同じ過ちを繰り返している人を何人も見てると
色々バカバカしくなるってところはある。
老害と同じくらい歴史を見ない若造も有害という現実を見るのも良い。
522デフォルトの名無しさん
2018/08/04(土) 09:50:53.54ID:2dadGiC9 まあ少なくとも>>506が老害であるのは確か
実務経験が少ない若者が多いのも当たり前
実務経験が少ない若者が多いのも当たり前
523デフォルトの名無しさん
2018/08/04(土) 09:53:11.49ID:F7vd0ILk 老害なんて言っている奴、10年後に自分がそう呼ばれるって事気がついてないのかな・・・
524デフォルトの名無しさん
2018/08/04(土) 09:55:58.68ID:2dadGiC9 老人全てが老害になるわけではない
害があるから老害と呼ばれる
害があるから老害と呼ばれる
525デフォルトの名無しさん
2018/08/04(土) 09:59:13.29ID:2dadGiC9526デフォルトの名無しさん
2018/08/04(土) 10:02:32.30ID:F7vd0ILk 数人のグループで開発しているなら、あえてコーディング規約を設けずしても出来るだろうが
100人、1000人規模で開発しているなら、工業製品としての品質管理として必要になるでしょう
100人、1000人規模で開発しているなら、工業製品としての品質管理として必要になるでしょう
527デフォルトの名無しさん
2018/08/04(土) 10:03:35.96ID:pDxZw3/e528デフォルトの名無しさん
2018/08/04(土) 10:08:29.90ID:2dadGiC9 ん?
おれは伝える側の人間だが
おれは伝える側の人間だが
529デフォルトの名無しさん
2018/08/04(土) 10:11:50.81ID:2dadGiC9 100人規模1000人規模のソフト開発で
若者に言語の決定権があるってのは
すごい会社だね
若者に言語の決定権があるってのは
すごい会社だね
530デフォルトの名無しさん
2018/08/04(土) 10:20:39.15ID:+vznLLf6 おかしくはない
好きにやれ動くブツだけもってこい
好きにやれ動くブツだけもってこい
531デフォルトの名無しさん
2018/08/04(土) 10:27:14.97ID:UzBGgsy3532デフォルトの名無しさん
2018/08/04(土) 10:54:42.16ID:VXqPvtUW 出来たばかりの最新規格の機能ならともかく
C++98以前からずーっとある言語の基本機能を大した理由もなく縛ってるのは阿呆でしょ
(「大した理由」があるなら縛ってもいいのよ、本当に大した理由ならな)
C++98以前からずーっとある言語の基本機能を大した理由もなく縛ってるのは阿呆でしょ
(「大した理由」があるなら縛ってもいいのよ、本当に大した理由ならな)
533デフォルトの名無しさん
2018/08/04(土) 11:09:59.74ID:9+U//wQd >>460
横だがDLLにstd::stringとかSTLのオブジェクトを渡したり返したりする設計ェ、、、
std::string程度なら現実には動くが、STLの内部動作のバージョン間の整合を誰も保証してくれない以上、
そういう設計をされるともはや誰も動作を保証できなくなる
STLに限らずOpenCVやCRT絡みのオブジェクトでもそう、
というわけでこういうライブラリのバージョンの統一を担保できない状況ではchar[]の登場と相成りぬ、
横だがDLLにstd::stringとかSTLのオブジェクトを渡したり返したりする設計ェ、、、
std::string程度なら現実には動くが、STLの内部動作のバージョン間の整合を誰も保証してくれない以上、
そういう設計をされるともはや誰も動作を保証できなくなる
STLに限らずOpenCVやCRT絡みのオブジェクトでもそう、
というわけでこういうライブラリのバージョンの統一を担保できない状況ではchar[]の登場と相成りぬ、
534デフォルトの名無しさん
2018/08/04(土) 11:20:42.46ID:Xh+3QD0k char[]を使う関数をDLLにして、その関数をstd::string版関数オーバーロード的なラッパーをヘッダーに記述するでしょ、普通。
というか、std::string専用である必要はなく、template関数にしとけばSTLportだろうかstdだろうかEASTLだろうが対応可能になる。
というか、std::string専用である必要はなく、template関数にしとけばSTLportだろうかstdだろうかEASTLだろうが対応可能になる。
535はちみつ餃子 ◆8X2XSCHEME
2018/08/04(土) 11:23:58.97ID:SzDDeCK/ バイナリでの保証を考えると STL を使いにくいってのは確かにあるよな。
COM のような形式を使えばオブジェクト指向をバイナリレベルで管理することも出来るが、
それはそれで別の規約に縛られてしまうわけで。
どんな規約にするにせよ不満は有るよ。
一貫した規約が無い不満よりは規約に不満を持つ方がマシな世界になりがちなのが現実。
COM のような形式を使えばオブジェクト指向をバイナリレベルで管理することも出来るが、
それはそれで別の規約に縛られてしまうわけで。
どんな規約にするにせよ不満は有るよ。
一貫した規約が無い不満よりは規約に不満を持つ方がマシな世界になりがちなのが現実。
536デフォルトの名無しさん
2018/08/04(土) 11:33:14.55ID:CpwGeL+S そんなもん文字列のポインタ渡せばしまい
頭悪いのって悩む必要がないどーでもいい事で悩むからな
それぞれの完結したモジュールでどのバージョンのSTL使おうが関係ないからな
string ahoをaho.c_str()で渡すだけ
頭悪いのって悩む必要がないどーでもいい事で悩むからな
それぞれの完結したモジュールでどのバージョンのSTL使おうが関係ないからな
string ahoをaho.c_str()で渡すだけ
537デフォルトの名無しさん
2018/08/04(土) 11:50:08.73ID:9+U//wQd538デフォルトの名無しさん
2018/08/04(土) 11:54:01.62ID:CpwGeL+S 頭悪いシロウトほど可変長の文字列クラスをいちいち使いたがるからな
539デフォルトの名無しさん
2018/08/04(土) 11:57:27.88ID:CpwGeL+S もしかしてvectorとかもいちいち自分で全部ラップしってんの
とにかく頭が悪すぎるわ
とにかく頭が悪すぎるわ
540デフォルトの名無しさん
2018/08/04(土) 11:59:57.25ID:9+U//wQd ここで問題なのは可変長の文字列クラスを使いたがる類の素人なのではなくて、
DLLのcallerとcalleeでSTLやCRTのバージョン相違しているケースを想像できない類の素人なのでは…
DLLのcallerとcalleeでSTLやCRTのバージョン相違しているケースを想像できない類の素人なのでは…
541デフォルトの名無しさん
2018/08/04(土) 12:07:08.58ID:CpwGeL+S このスレにいるような知恵遅れがどんな作り方しても
ぜんぜん問題にならない
STL ver baka
void bakabaka(char const* aho_) {
std::string baka("shine");
ahoaho1(baka.cstr());
}
STL ver aho つかったdll
void ahoaho1(char const* aho_) {
}
なにが問題になるわけ?
もうね知恵遅れのいうことは意味が分からないわけ
ぜんぜん問題にならない
STL ver baka
void bakabaka(char const* aho_) {
std::string baka("shine");
ahoaho1(baka.cstr());
}
STL ver aho つかったdll
void ahoaho1(char const* aho_) {
}
なにが問題になるわけ?
もうね知恵遅れのいうことは意味が分からないわけ
542デフォルトの名無しさん
2018/08/04(土) 12:08:24.92ID:73YctOjT543デフォルトの名無しさん
2018/08/04(土) 12:16:41.91ID:9+U//wQd いやほんと
呼び出し元と同じ完結したモジュール内で定義された関数にはconst std::string& ahoやconst std::vector &vecで渡し、
DLLで定義された関数にはaho.c_str()や&(vec[0])で渡す、と区別すればwrapperは要りませんなあ、
いやはや>>541は便利なやり方をいろいろご存知ですなあ、、
呼び出し元と同じ完結したモジュール内で定義された関数にはconst std::string& ahoやconst std::vector &vecで渡し、
DLLで定義された関数にはaho.c_str()や&(vec[0])で渡す、と区別すればwrapperは要りませんなあ、
いやはや>>541は便利なやり方をいろいろご存知ですなあ、、
546デフォルトの名無しさん
2018/08/04(土) 13:59:14.93ID:f+sj1d72 >>506
某エディタにこの宗教にご執心の開発者がいるな
某エディタにこの宗教にご執心の開発者がいるな
547デフォルトの名無しさん
2018/08/04(土) 18:05:43.06ID:Xh+3QD0k ポリモーフィズム(多態性)を可読性を下げる欠点ではなく、可読性を上げる長所と考えるのがC++プログラマとしての信仰の基本なので、
様々な記述方法を許す多態性を嫌うのなら、C++を棄教せねばならないでしょう。
演算子オーバーロードを耐えられる情報処理能力があるなら、参照渡しにも耐えられるはずで、参照渡しだけ目の敵にするのはただの原理主義ですね。
様々な記述方法を許す多態性を嫌うのなら、C++を棄教せねばならないでしょう。
演算子オーバーロードを耐えられる情報処理能力があるなら、参照渡しにも耐えられるはずで、参照渡しだけ目の敵にするのはただの原理主義ですね。
548デフォルトの名無しさん
2018/08/04(土) 18:58:53.47ID:YA1hWK5Y 原理主義なんて高尚なもんじゃなくただのバカ
549デフォルトの名無しさん
2018/08/04(土) 20:01:37.83ID:5qDWXahz >>547
なのでなのでは?
なのでなのでは?
550はちみつ餃子 ◆8X2XSCHEME
2018/08/05(日) 00:20:51.12ID:Sl8YWqHi >>547
言葉のニュアンス的には原理主義というより教条主義と言った方がこの場合は近いかも
言葉のニュアンス的には原理主義というより教条主義と言った方がこの場合は近いかも
551デフォルトの名無しさん
2018/08/05(日) 05:07:56.69ID:xG+zmDln だれかたすけてください。
https://dotup.org/uploda/dotup.org1602882.zip
こういうプロジェクトを作ったんですよ。
一応、ゲームっぽいものですが本質はそこじゃなくて。
えーっと、前方参照の解決がよくわからないので直し方教えてください。
普段小さなコードしか扱ってないのでソース分割あまりしないのでわけがわかりません。
コンパイルが通るにはどうしたらよいでしょうか。
お願いします。
https://dotup.org/uploda/dotup.org1602882.zip
こういうプロジェクトを作ったんですよ。
一応、ゲームっぽいものですが本質はそこじゃなくて。
えーっと、前方参照の解決がよくわからないので直し方教えてください。
普段小さなコードしか扱ってないのでソース分割あまりしないのでわけがわかりません。
コンパイルが通るにはどうしたらよいでしょうか。
お願いします。
552デフォルトの名無しさん
2018/08/05(日) 08:56:46.93ID:WhsUmrtL ツッコミどころはいっぱいあるけど
とりあえずGameIssue.hの中でRougeStageの定義が見えてないからincludeしろ
とりあえずGameIssue.hの中でRougeStageの定義が見えてないからincludeしろ
>>506
http://www.kh.rim.or.jp/~nagamura/misc/stroustrup-interview.html
「変数を参照しているのか逆参照しているのかがいつもわからなくなる、だから必ずポインタを使う。アスタリスクが思い出させてくれるから」
C++ の参照は、呼び出し元の記述では参照として渡しているつもりなのか、実体を渡しているのかは区別できず、
呼び出し先の宣言で、はじめて参照か実体かがわかるんですね
個人的には C# のように、呼び出し側でも参照渡しを明示するのがスマートだと思います
そのコーディング規約は良心的だと思います
http://www.kh.rim.or.jp/~nagamura/misc/stroustrup-interview.html
「変数を参照しているのか逆参照しているのかがいつもわからなくなる、だから必ずポインタを使う。アスタリスクが思い出させてくれるから」
C++ の参照は、呼び出し元の記述では参照として渡しているつもりなのか、実体を渡しているのかは区別できず、
呼び出し先の宣言で、はじめて参照か実体かがわかるんですね
個人的には C# のように、呼び出し側でも参照渡しを明示するのがスマートだと思います
そのコーディング規約は良心的だと思います
554デフォルトの名無しさん
2018/08/05(日) 17:44:24.77ID:kXrZdLCy >>553
参照渡しを明示、とは具体的にどんな方法でしょう?
参照渡しを明示、とは具体的にどんな方法でしょう?
555デフォルトの名無しさん
2018/08/05(日) 17:48:52.51ID:3KDX12Zf ref とかoutとかじゃね?
557デフォルトの名無しさん
2018/08/05(日) 18:07:51.68ID:lZNE8En/558デフォルトの名無しさん
2018/08/05(日) 18:26:33.87ID:kXrZdLCy >>556
C#ではなくC++での方法を聞きたかったのですが (^_^;)
C#ではなくC++での方法を聞きたかったのですが (^_^;)
559デフォルトの名無しさん
2018/08/05(日) 18:32:14.36ID:yKLkGD1M >>506
constなしで参照渡しするなっていうコーディング規約ならgoogleも採用してるよ
constなしで参照渡しするなっていうコーディング規約ならgoogleも採用してるよ
560デフォルトの名無しさん
2018/08/05(日) 18:34:25.86ID:QdoPuPH9■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 「もうキモくてキモくて…」29歳女性が語る“おぢアタック”の実態。「俺ならイケるかも」年下女性を狙う勘違い中年男性に共通点が★4 [Hitzeschleier★]
- ミス・ユニバース フィンランド代表の「つり目」写真が波紋… 本人釈明も批判やまず 協会謝罪「徹底的に検証」へ [冬月記者★]
- 【おこめ券】鈴木憲和農相 小泉前農相の備蓄米放出を“反省”「備蓄の円滑な運営を図ってまいります」 [Hitzeschleier★]
- 自民・麻生太郎副総裁 石破政権の1年は「どよーん」 高市政権発足で「何となく明るくなった」「世の中のことが決まり動いている」★2 [Hitzeschleier★]
- 1人3千円の食品高騰対策、何に使える? あいまいなまま衆院通過 [蚤の市★]
- ゆたぼん 二重手術を報告「めちゃくちゃ気に入っています」 [muffin★]
- ボーナスで何買うか迷っている
- 刃牙でチンコでかそうなキャラといえば
- コウメ太夫のネタ考えたから評価してくれ
- トランプ、G7に代わるcore 5を発表 [805596214]
- こんな時間に起きてvip見てるやつって何者?
- 【悲報】新米、全く売れなくて倉庫が満杯になってしまうwwwwwwwwwwwwwwwwwwww [802034645]
