- 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/ (日本語)
- 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]
- 競プロ解いてるだけだから問題にならん。
まぁ、しばらく黙るわ。
|

|