[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 03/10 14:57 / Filesize : 234 KB / Number-of Response : 1018
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C++相談室 part126



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






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<234KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef