1 名前:デフォルトの名無しさん (ワッチョイ f37a-QmV0) mailto:sage [2017/03/31(金) 08:47:49.65 ID:UkLjKqcm0.net] 次スレを立てる時は本文の1行目に以下を追加して下さい !extend:on:vvvvv:1000:512 C++に関する質問やら話題やらはこちらへどうぞ。 ただし質問の前にはFAQに一通り目を通してください。 IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。 前スレ C++相談室 part129 echo.2ch.net/test/read.cgi/tech/1483940967/ このスレもよろしくね。 【初心者歓迎】C/C++室 Ver.100【環境依存OK】 echo.2ch.net/test/read.cgi/tech/1478440682/ ■長いソースを貼るときはここへ。■ codepad.org/ https://ideone.com/ [C++ FAQ] https://isocpp.org/wiki/faq/ www.bohyoh.com/CandCPP/FAQ/ (日本語) VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
710 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdbf-R88v) mailto:sage [2017/07/11(火) 22:43:45.50 ID:7IW2GOwZd.net] >>700 数学や計算機科学を知らない素人が暗号化方式を考えるのは、おそらく無駄であり、出来たとしてもすぐハッキングされてしまう。 暗号化方式は、先人の研究によって評価されている手法を使うのが一般的。より良い暗号化方式を 考えるのは計算機科学者の仕事であり、プログラマーはその手法をプログラムに取り入れるだけだ。
711 名前:デフォルトの名無しさん (ワッチョイ d79a-0UkT) mailto:sage [2017/07/11(火) 22:45:09.93 ID:qjau/h5c0.net] どっちみち>>700 の時点で環境依存だ
712 名前:デフォルトの名無しさん (ワッチョイ d79a-0UkT) mailto:sage [2017/07/11(火) 22:46:16.83 ID:qjau/h5c0.net] >>702 目的による 家の鍵もプロが1分以内で開けられるから意味ない?
713 名前:デフォルトの名無しさん (ワッチョイ bfaa-rPCP) mailto:sage [2017/07/11(火) 23:06:53.51 ID:01bGuLEG0.net] >>704 家の鍵を素人が作るのは意味ない。
714 名前:デフォルトの名無しさん (ワッチョイ 9f89-EAWM) mailto:sage [2017/07/11(火) 23:17:01.14 ID:VLYeJXw20.net] 質問者の目的が言語の学習とか、ちょっとしたテキストの難読化なのかもしれないのに、 外野が憶測で否定したり変な方向で議論を展開したり…。 相談室なのだから、もうちっと質問者の為になる話の流れにならないかなと思う。
715 名前:デフォルトの名無しさん (ワッチョイ bfe4-LW8t) mailto:sage [2017/07/11(火) 23:17:54.39 ID:7V5lebao0.net] >>700 少なくともこうしないと期待通りに動かないよ int x = (a[0] << 24) + (a[1] << 16) + (a[2] << 8) + a[3];
716 名前:デフォルトの名無しさん (ワッチョイ 176f-zXdO) mailto:sage [2017/07/11(火) 23:21:49.34 ID:jUUyBjmf0.net] >>706 さんの言うとおりにテキストの難読化が目的です bit演算に触れてみるのにちょっとした暗号化が良いレベルなのかなって思ってチャレンジしているところ やっぱり演算子の優先度とかで注意点あるね 環境依存するのかな?この方法
717 名前:デフォルトの名無しさん (ワッチョイ 176f-zXdO) mailto:sage [2017/07/11(火) 23:23:13.79 ID:jUUyBjmf0.net] >>701 環境依存で良いっていうとこの他にも色々あるんだ 自分の知っている限りの方法でできるならこれしか思いつかなかった…
718 名前:デフォルトの名無しさん (オッペケ Srcb-sNxi) mailto:sage [2017/07/11(火) 23:33:54.38 ID:L5b0rMHKr.net] >環境依存するのかな? むしろこのコードで動く環境が珍しいような
719 名前:デフォルトの名無しさん (ワッチョイ 9f89-EAWM) mailto:sage [2017/07/11(火) 23:45:11.34 ID:VLYeJXw20.net] char型が負数を表すかが環境依存。 負数を左シフトした結果が環境依存。 だからunsigned型の変数を使う。 負数を左シフトした結果が負数だったとして、それを加算したら想定してた結果にならないから、加算ではなくビットORを使う。
720 名前:デフォルトの名無しさん (ワッチョイ bfe4-LW8t) mailto:sage [2017/07/11(火) 23:50:08.05 ID:7V5lebao0.net] 思いつきで変な暗号作るより検索するなりしてまともな基礎的なアルゴリズムを実装したほうが勉強になる
721 名前:デフォルトの名無しさん (スップ Sd3f-nSBM) mailto:sage [2017/07/11(火) 23:55:54.87 ID:KCPaJcrVd.net] 文盲多すぎね? bit演算をやる方法を学びたい的な雰囲気なのに暗号作る方をメインに読み取ってるやつおおくね? しかもレスもあったあとなのに
722 名前:デフォルトの名無しさん (ワッチョイ 176f-zXdO) mailto:sage [2017/07/11(火) 23:59:49.23 ID:jUUyBjmf0.net] >>711 charが負を表すか否かってのはどこも同じではない…? あと最後の加算ではなくビットORってのは一体
723 名前:デフォルトの名無しさん (オッペケ Srcb-sNxi) mailto:sage [2017/07/12(水) 00:01:29.72 ID:XspFYFk7r.net] >>702 を文盲と断定する根拠は見あたらないが >>706 がアスペなのは間違いない
724 名前:デフォルトの名無しさん (ワッチョイ bfe4-LW8t) mailto:sage [2017/07/12(水) 00:04:15.65 ID:WTh+eJgx0.net] >>713 bit演算については何も聞いてないだろ もう一回読み直せや 式がおかしいからツッコミ入ってるだけで質問の趣旨に対しては検索しろとしか言いようがない
725 名前:デフォルトの名無しさん (スップ Sd3f-nSBM) mailto:sage [2017/07/12(水) 00:06:40.65 ID:vUTYJqrrd.net] >>716 いやどう見ても「bit演算に触れてみるのに」って書いてあんじゃん その後に暗号化については重きをおいていないレスもかかれているのに思い付きで変な暗号を考えるより〜とかレスしてんじゃん
726 名前:はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 9f15-rvkC) mailto:sage [2017/07/12(水) 00:15:27.23 ID:trGyb9bp0.net] >>714 単に int と書いたら signed int と書いたのと同じ意味になるからよく誤解されるんだけど、 char は signed char でも unsigned char でもない固有の型なんだよ。 オーバーロードで試してみたらすぐわかる。 表現できる範囲は signed char か unsigned char のどちらかと同じではあるけど、 どちらかは処理系が選択していい。 処理系によってはオプションで変えられる場合もある。
727 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdbf-R88v) mailto:sage [2017/07/12(水) 00:22:30.14 ID:mvEs3lAId.net] #include <cstdint> unsigned char a[128]; ... unsigned char prev4bits = (a[128 - 1] >> 4); for (int i = 0; i < 128 - 1; i++) { unsigned char b = (a[i] >> 4); a[i] <<= 4; a[i] |= prev4bits; prev4broken = b; }
728 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdbf-R88v) mailto:sage [2017/07/12(水) 00:29:02.98 ID:mvEs3lAId.net] >>719 訂正。 #define NUM_BYTES 123 unsigned char a[NUM_BYTES]; ... unsigned char prev4bits = (a[NUM_BYTES - 1] >> 4); for (int i = 0; i < NUM_BYTES; i++) { unsigned char b = (a[i] >> 4); a[i] <<= 4; a[i] |= prev4bits; prev4bits = b; }
729 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdbf-R88v) mailto:sage [2017/07/12(水) 00:42:16.50 ID:mvEs3lAId.net] あるいは #define NUM_BYTES 128 unsigned char a[NUM_BYTES]; ... unsigned char prev4bits = (a[NUM_BYTES - 1] >> 4); for (int i = 0; i < NUM_BYTES / sizeof(int); i++) { unsigned char b = (a[(i + 1) * sizeof(int) - 1] >> 4); ((int *)a)[i] <<= 4; a[i * sizeof(int)] |= prev4bits; prev4bits = b; }
730 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdbf-R88v) mailto:sage [2017/07/12(水) 00:46:41.27 ID:mvEs3lAId.net] >>721 訂正。 #define NUM_BYTES 128 unsigned char a[NUM_BYTES]; ... unsigned char prev4bits = (a[NUM_BYTES - 1] >> 4); for (int i = 0; i < NUM_BYTES / sizeof(unsigned int); i++) { >unsigned char b = (a[(i + 1) * sizeof(unsigned int) - 1] >> 4); ((unsigned int *)a)[i] <<= 4; a[i * sizeof(unsigned int)] |= prev4bits; prev4bits = b; }
731 名前:デフォルトの名無しさん (ワッチョイ 9f8f-gRQY) [2017/07/12(水) 01:19:28.71 ID:L1I2nS9y0.net] >>711 負数を左シフトしても問題ないだろ
732 名前:デフォルトの名無しさん (ワッチョイ 9f8f-gRQY) [2017/07/12(水) 01:21:26.50 ID:L1I2nS9y0.net] ああ、元の式を見てなかった まさか足し算してるとは… そのまま符号付きで使うことを意図してたら、確かに問題だな
733 名前:デフォルトの名無しさん (ワッチョイ ffaa-PX3H) mailto:sage [2017/07/12(水) 05:56:30.63 ID:HQm2gXhD0.net] LLVM, MISRA-Cでも決められているけど、 int, char など、処理系依存の型は使うな。 必ず、ビット数・符号の有無を明示すること unsigned char unsigned int32
734 名前:デフォルトの名無しさん (ワッチョイ d79a-0UkT) mailto:sage [2017/07/12(水) 06:25:07.29 ID:Mf+sZV2C0.net] >>700 環境依存なのは、 intが4バイト charが8ビット 負の数の表現方法 バグは 演算子の優先順位 xの右シフト
735 名前:デフォルトの名無しさん (ワッチョイ d79a-0UkT) mailto:sage [2017/07/12(水) 06:33:18.90 ID:Mf+sZV2C0.net] >>720 元の意図とは違う結果に見える >>722 ビッグエンディアンじゃないと違う結果 バイトアクセス可能っていう条件もつく
736 名前:デフォルトの名無しさん (スップ Sd3f-nGAm) mailto:sage [2017/07/12(水) 06:33:41.93 ID:7DtiXvdjd.net] >>718 関係ないけどそれをどう捉えるべきか ・だからC++は複雑 ・C++は言われるほど複雑じゃない
737 名前:デフォルトの名無しさん (ワッチョイ 9709-8gU5) mailto:sage [2017/07/12(水) 06:35:07.19 ID:DgqX1C+L0.net] C++はそろそろbyte型が入るよ。 多分エーリアスだけどね。
738 名前:デフォルトの名無しさん (ワッチョイ d79a-0UkT) mailto:sage [2017/07/12(水) 06:38:05.27 ID:Mf+sZV2C0.net] unsigned int x = (unsigned int)a[0] << 24 | (unsigned int)a[1] << 16 | (unsigned int)a[2] << 8 | (unsigned int)a[3]; x = x << 30 | x >> 2; 互換性と簡潔さのバランスで、こんな感じじゃない? unsigned intが32bit charが8bit 限定
739 名前:デフォルトの名無しさん (ワッチョイ d79a-0UkT) mailto:sage [2017/07/12(水) 06:44:26.17 ID:Mf+sZV2C0.net] もうちょっと簡潔さ重視だと、キャスト無しで
740 名前:デフォルトの名無しさん (ワッチョイ d79a-0UkT) mailto:sage [2017/07/12(水) 06:50:51.01 ID:Mf+sZV2C0.net] バリバリ環境依存で速度重視なら intrinsicでAVX2やAVX512とか インラインアセンブラはこのスレ的には反則?
741 名前: ◆QZaw55cn4c (ワッチョイ 176d-hafE) mailto:sage [2017/07/12(水) 07:30:39.07 ID:9q9UgJkW0.net] >>725 かならずしも賛同できない、必要なときに unsigned/signed を指定すればいいのでは?
742 名前:デフォルトの名無しさん (ワッチョイ 9709-8gU5) mailto:sage [2017/07/12(水) 07:31:30.65 ID:DgqX1C+L0.net] cstdintを使おう。
743 名前: ◆QZaw55cn4c (ワッチョイ 176d-hafE) mailto:sage [2017/07/12(水) 07:31:53.68 ID:9q9UgJkW0.net] >>732 インラインで自由にかけてこそのC/C++ だと思うんだが、最近は嫌われるみたいだね
744 名前:デフォルトの名無しさん (オッペケ Srcb-sNxi) mailto:sage [2017/07/12(水) 07:59:55.87 ID:SNfdy8Tor.net] MISRAさんパネェな for (int = 0;i <= n; i++) // きんし! X operator ++(int); // きんし! int main() {} // きんし!
745 名前:デフォルトの名無しさん (スップ Sd3f-nSBM) mailto:sage [2017/07/12(水) 08:23:54.55 ID:vUTYJqrrd.net] >>730 あとの問題はあれだな 応用利かせるなら128文字が129文字になったときにどうするかなどの規約的な話にも対応できるようなコードにする方が 後にちに勉強になりそう
746 名前:デフォルトの名無しさん (ワッチョイ bfe4-LW8t) mailto:sage [2017/07/12(水) 08:47:06.94 ID:WTh+eJgx0.net] バイト単位で回転させるだけならstd::rotateやstd::copyでいい
747 名前:デフォルトの名無しさん (ワッチョイ 1706-pw7F) mailto:sage [2017/07/12(水) 10:52:11.36 ID:QOR+1nCC0.net] 自作クラスで他の自作クラスのインスタンスのコレクションを返すメソッドを追加したい のですがクラス設計ってどうすればいいでしょうか??ガチガチの最適化?まではしなくていいので 普通ぐらいの最適化?ぐらいでOKです。 public: std::shared_ptr<std::vector<std::shared_ptr<CMyClass>>> EnumeateMyClasses() こんな感じで設計すればいいでしょうか? C#なら IEnumerable<CMyClass> EnumeateMyClasses() とかにするんですが
748 名前:デフォルトの名無しさん (ワッチョイ 9709-8gU5) mailto:sage [2017/07/12(水) 11:12:35.14 ID:DgqX1C+L0.net] 返したものをどこら辺まで使うんやろ。 たらい回しにするんだったら、スマポでも良いけど、一時でやるんだったらこんすと参照でも良いし。 でも、内部で持ってるものを外でたらい回しにされるのは気持ち悪いな。
749 名前:デフォルトの名無しさん (ワッチョイ 1706-pw7F) mailto:sage [2017/07/12(水) 11:30:49.11 ID:QOR+1nCC0.net] Enumerateメソッドは内部ではインスタンス作りますが、内部でその参照を保持することは ないですね、メソッド内で作って呼び出し元に返すだけです。 どれくらいたらい回すかは使う側次第です。 >たらい回しにするんだったら、スマポでも良いけど、一時でやるんだったらこんすと参照でも良いし こんすと参照とかもあるんですか・・ まぁ、先ほども書いたようにC++に深入りすると死にそうなので、 とりあえず、C#erの人がちょっと毛が生えた程度でC++を使うレベルでいいので。
750 名前:デフォルトの名無しさん (ワッチョイ 9709-8gU5) mailto:sage [2017/07/12(水) 11:34:33.27 ID:DgqX1C+L0.net] >>741 どう伝えればいいかわかんない。 識者求。
751 名前:デフォルトの名無しさん (ワッチョイ bfe4-LW8t) mailto:sage [2017/07/12(水) 12:51:39.26 ID:WTh+eJgx0.net] >>739 それでもいいと思うけど コンパイラの最適化が期待できる状況ならvectorをshared_ptrで包む必要は無い
752 名前:デフォルトの名無しさん (スプッッ Sd3f-nGAm) mailto:sage [2017/07/12(水) 13:59:49.69 ID:HO+tEfFId.net] うん、ただvectorを返せばいいと思うけど
753 名前:デフォルトの名無しさん (ワッチョイ 1706-pw7F) mailto:sage [2017/07/12(水) 14:16:55.03 ID:QOR+1nCC0.net] あれ、そうなんですか?? ムズイな・・ vector自体を返しても、要素自体はコピー?されないってことですかね? ぐぉぉぉ。
754 名前:デフォルトの名無しさん (スップ Sd3f-nSBM) mailto:sage [2017/07/12(水) 14:31:08.44 ID:vUTYJqrrd.net] なんでキャラ配列では終端文字を意識して 他の型の配列では意識しないんだぜ
755 名前:はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 9f15-rvkC) mailto:sage [2017/07/12(水) 14:43:06.63 ID:trGyb9bp0.net] >>745 RVO やムーブによってコピーが抑制される。 従来の RVO は「してもよい」という、 省略による最適化を許す形で規定されていたが C++17 からは必須になってるので、 条件がそろえば確実にコピーはされないことが保証される。
756 名前:デフォルトの名無しさん (スプッッ Sd3f-nGAm) mailto:sage [2017/07/12(水) 15:24:37.86 ID:HO+tEfFId.net] >>745 そもそも、 もともと存在しているvectorを返すのかメソッド内で構築したvectorを返すのか、 がはっきりしてない。 後者だったら参照とかでなく単にvectorを返せばいい。
757 名前:デフォルトの名無しさん (ワッチョイ bfe4-LW8t) mailto:sage [2017/07/12(水) 19:23:12.64 ID:WTh+eJgx0.net] >>745 C++で値の代入にはコピーとムーブの2種類がある ムーブは代入先に中身を移譲する機能 ムーブ元はムーブ前と後とで同一であるとは保障されない 具体的には定義したムーブコンストラクタとムーブ代入演算子に記述したコードが実行される vectorの場合ムーブされると内部の配列のポインタを代入先のvectorの配列のポインタに付け替える こうすることで中身をコピーせずポインタの代入だけで他のvectorに移し変えることができる ローカル変数など関数のスコープを抜けたら自動的に開放されて二度と使われない変数を戻り値にした場合、コピーしているように見えても自動的ムーブが選ばれている
758 名前:デフォルトの名無しさん (ワントンキン MM7f-hrVG) mailto:sage [2017/07/12(水) 21:17:08.54 ID:AocYxtQtM.net] >>749 最後嘘じゃない? RVOが効くケースでは直接構築が優先だよね?
759 名前:デフォルトの名無しさん (ワッチョイ bfe4-LW8t) mailto:sage [2017/07/12(水) 22:04:13.96 ID:WTh+eJgx0.net] >>750 正しくは変数の初期化の式で呼び出した場合は直接構築になりそれ以外ではムーブになるでした
760 名前:デフォルトの名無しさん (オッペケ Srcb-sNxi) mailto:sage [2017/07/12(水) 22:10:13.78 ID:SNfdy8Tor.net] >>751 それは規格のどこに書いてあるのですか?
761 名前:デフォルトの名無しさん (ワッチョイ bfe4-LW8t) mailto:sage [2017/07/12(水) 22:34:27.41 ID:WTh+eJgx0.net] >>752 規格厨じゃないから知りません
762 名前:デフォルトの名無しさん (オッペケ Srcb-sNxi) mailto:sage [2017/07/12(水) 22:35:41.04 ID:SNfdy8Tor.net] なるほどこうやってデタラメが吹聴されて世の中が嘘だらけになるのだな
763 名前:デフォルトの名無しさん (ワッチョイ bfe4-LW8t) mailto:sage [2017/07/12(水) 22:42:26.18 ID:WTh+eJgx0.net] >>754 何の引用も無しに書いた文章なんて嘘まみれに決まってるだろ
764 名前:デフォルトの名無しさん (スップ Sd3f-nSBM) mailto:sage [2017/07/12(水) 23:21:39.63 ID:vUTYJqrrd.net] 上の方にあるbitいじりの件ってわざわざint型に演算していれ直す必要もなくね?って思い始めた charの先頭文字をint*に直して操作するのじゃダメなんか??
765 名前:デフォルトの名無しさん (ワッチョイ 9f89-EAWM) mailto:sage [2017/07/12(水) 23:36:27.73 ID:cPl7Kb1c0.net] >>756 何言ってるか分からないのでコードで頼む。 ちなみに、アラインメントとかは理解してる?
766 名前:デフォルトの名無しさん (ワッチョイ 6e9a-YkGU) mailto:sage [2017/07/13(木) 06:46:33.90 ID:lX8cJUTX0.net] >>756 >>722 >>727
767 名前:デフォルトの名無しさん (ワッチョイ 321b-HOJV) mailto:sage [2017/07/13(木) 06:48:27.63 ID:Yj3E6QQW0.net] >>700 C++の規格ではいつまでたってもビットローテーション入れてこないからな。 だが、ビットしシフトで処理するのが速いか、いったん配列にいれたほうが速いか、 両方作って確認した方がいいぞ。 バレルシフタ載ってるMPUじゃないとビットシフトが結構重かったりする
768 名前:デフォルトの名無しさん (ワッチョイ 6e9a-YkGU) mailto:sage [2017/07/13(木) 07:03:23.04 ID:lX8cJUTX0.net] > ビットしシフトで処理するのが速いか、いったん配列にいれたほうが速いか、 意味不明 ローテーションは後半だぞ 前半はただ単にintにロードしてるだけ なぜかビッグエンディアン形式で 環境はSHか何か?
769 名前:デフォルトの名無しさん (ワッチョイ 6e9a-YkGU) mailto:sage [2017/07/13(木) 07:05:59.44 ID:lX8cJUTX0.net] C++にローテーションなんか入れなくて良い 使う機会も少ないし、簡単にC++に表記できるし 他に増やしたいものは色々ある そっち優先で
770 名前:デフォルトの名無しさん (スプッッ Sd9e-y/ao) mailto:sage [2017/07/13(木) 08:50:42.40 ID:g1X/OFssd.net] まるで開発資源が足りてないかのような言い分
771 名前:デフォルトの名無しさん (ドコグロ MM36-OTuW) mailto:sage [2017/07/13(木) 12:50:51.77 ID:EiZFhTPMM.net] 理解するための俺の頭の資源は有限
772 名前:デフォルトの名無しさん (スッップ Sd70-YkGU) mailto:sage [2017/07/13(木) 13:23:34.41 ID:b1PvI/zld.net] >>762 言語の機能として、新たな演算子を新たな文字で作るのは無駄だと 標準ライブラリに入れるっていうならどうぞご自由に
773 名前:デフォルトの名無しさん (ワッチョイ b2e4-vU4W) mailto:sage [2017/07/13(木) 19:02:52.17 ID:oXf/mLI10.net] boostのdynamic_bitsetにバイト列との相互変換機能とバイトオーダーを切り替えられる機能と範囲を切り出せる機能を追加したものを標準に入れるべき
774 名前:デフォルトの名無しさん (ワッチョイ baf0-z+eH) mailto:sage [2017/07/13(木) 19:48:54.11 ID:XkT7ManS0.net] FFTで使うビット逆転も仲間に入れてよ
775 名前:デフォルトの名無しさん (ワッチョイ 6e9a-YkGU) mailto:sage [2017/07/13(木) 20:46:05.57 ID:lX8cJUTX0.net] >>766 ビット演算のテクニックの基本とかに載ってそう
776 名前:デフォルトの名無しさん (ワッチョイ 469f-wtyE) mailto:sage [2017/07/13(木) 21:06:39.82 ID:RqiuYpPc0.net] ファストフーリエトランスファーの良い参考文献ないっすかね
777 名前:デフォルトの名無しさん (ワッチョイ 6e9a-YkGU) mailto:sage [2017/07/13(木) 21:20:53.50 ID:lX8cJUTX0.net] おれ専門家だから何でも聞いて
778 名前:はちみつ餃子 ◆8X2XSCHEME (ワッチョイ d015-S4qQ) mailto:sage [2017/07/13(木) 21:21:33.62 ID:anRp6w5D0.net] まずは Wikipedia から
779 名前: ◆QZaw55cn4c (ワッチョイ 6e9a-n9U6) mailto:sage [2017/07/13(木) 21:25:32.45 ID:NDMOLt7F0.net] >>76
780 名前:8 https://www.amazon.co.jp/dp/4789830292/ [] [ここ壊れてます]
781 名前:デフォルトの名無しさん (ワッチョイ 6e9a-YkGU) mailto:sage [2017/07/13(木) 21:27:47.04 ID:lX8cJUTX0.net] そうだね 基礎から教えるつもりはない 応用、テクニック、実装方法、高速化、AVX512の使い方、キャッシュサイズによる最適化、HDDを使った場合の並べかえ方法、... など具体的に聞いてくれれば
782 名前:デフォルトの名無しさん (ワッチョイ 469f-wtyE) mailto:sage [2017/07/13(木) 21:34:36.15 ID:RqiuYpPc0.net] やりたいことはリアルタイムオシロですかね ビジュアル的に表示出来ることから始めて 最終的にはArduinoで周波数検波器作りたいかも
783 名前:デフォルトの名無しさん (ワッチョイ 469f-wtyE) mailto:sage [2017/07/13(木) 21:38:11.93 ID:RqiuYpPc0.net] >>771 ほしいものリストに追加しますた ありがとうございますた
784 名前:デフォルトの名無しさん (ワッチョイ 321b-HOJV) [2017/07/14(金) 06:45:45.62 ID:JUkrjA2t0.net] >>760 バレルシフタが何かわからんアホはすっこんでろ
785 名前:デフォルトの名無しさん (ワッチョイ 6e9a-YkGU) mailto:sage [2017/07/14(金) 07:04:53.46 ID:dCevqkg20.net] >>759 の真ん中のブロック、意味がわかるなら解説よろしく
786 名前:デフォルトの名無しさん (スップ Sdc4-aKa0) mailto:sage [2017/07/15(土) 13:45:59.81 ID:fnbVxk0dd.net] VBから読み出せるdllを作るときの注意点ってある??
787 名前:デフォルトの名無しさん (ワッチョイ f6e4-PXrN) mailto:sage [2017/07/15(土) 14:17:18.00 ID:u0zSb1i50.net] メモリ管理
788 名前:デフォルトの名無しさん (スプッッ Sd9e-y/ao) mailto:sage [2017/07/15(土) 15:27:55.38 ID:GMW24mlhd.net] >>777 __stdcall呼び出しにする ってかどのVB?
789 名前:デフォルトの名無しさん (スップ Sdc4-aKa0) mailto:sage [2017/07/15(土) 17:14:07.14 ID:fnbVxk0dd.net] >>779 vb6.0っていう化石
790 名前:デフォルトの名無しさん (スプッッ Sd9e-y/ao) mailto:sage [2017/07/15(土) 17:26:21.05 ID:GMW24mlhd.net] >>780 ふーん、なら VB側のByRef x As Variant は、C++側で Variant* pV とVariant& x のどっちでも受けられる これ豆な
791 名前:デフォルトの名無しさん (スプッッ Sd9e-y/ao) mailto:sage [2017/07/15(土) 17:33:23.30 ID:GMW24mlhd.net] >>780 あと、文字列はBSTRで受けるとなぜか文字化けすることがある。 Variantで受けてbstrValメンバを取り出すと大丈夫。(もしくはpbstrValメンバ) 不思議だ。
792 名前:デフォルトの名無しさん (ワッチョイ 0aa6-1m9k) mailto:sage [2017/07/16(日) 16:02:40.33 ID:o1PqrRM30.net] テンプレートの部分特殊化について質問っす ideone.com/Rz72oc この例なんで曖昧になるですかね? 下が選ばれると思ったんですが
793 名前:デフォルトの名無しさん (ワッチョイ 955a-qt4g) [2017/07/16(日) 16:21:43.57 ID:CxpOV7IS0.net] const が付いてるからじゃね
794 名前:デフォルトの名無しさん (ワッチョイ 0aa6-1m9k) mailto:sage [2017/07/16(日) 17:06:50.01 ID:o1PqrRM30.net] >>784 constなintなのにconst T&のconst関係なくない? それにT(&)[4]の方がより細かい気がする
795 名前:デフォルトの名無しさん (ワッチョイ 955a-qt4g) [2017/07/16(日) 18:31:12.78 ID:CxpOV7IS0.net] struct A<T (&)[4]> は、 struct A<const T &> の特殊化じゃないんじゃね?
796 名前:デフォルトの名無しさん (ワッチョイ f146-I8+U) [2017/07/16(日) 18:46:15.15 ID:TI5o59vg0.net] テンプレート引数型を明示してるのに、その型に一意にマッチする定義がないからでしょ。 どっちが近いかを決定するような優先順位の規定がないので ambiguous になる。 compiler からしてみたら仕様がなければ勝手に判断できないって話。
797 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd70-qcL/) mailto:sage [2017/07/16(日) 18:49:24.15 ID:8ivnKhmqd.net] int (&)[4]の左側にconst付ける意味あんの?
798 名前:デフォルトの名無しさん (オッペケ Srea-1m9k) mailto:sage [2017/07/16(日) 19:11:25.11 ID:0XlWr73/r.net] >どっちが近いかを決定するような優先順位の規定がない 何故か規格を読まない奴ほど自信満々に嘘をつく法則
799 名前:デフォルトの名無しさん (オッペケ Srea-1m9k) mailto:sage [2017/07/16(日) 19:21:41.99 ID:0XlWr73/r.net] 規格の8.3.4p1により配列のconstは要素のconstと等価なので、A<int const (&)[4]>はA<T const &>に適合する
800 名前:デフォルトの名無しさん (ワッチョイ f6e4-PXrN) mailto:sage [2017/07/16(日) 19:35:17.35 ID:F/PpVxkG0.net] C++14まででいいので全文日本語の規格書くれよ
801 名前:デフォルトの名無しさん (ワッチョイ 0aa6-1m9k) mailto:sage [2017/07/16(日) 20:01:11.52 ID:o1PqrRM30.net] 優先順位ルールよくわからんっす
802 名前:デフォルトの名無しさん (スプッッ Sd2a-aKa0) mailto:sage [2017/07/16(日) 20:21:10.26 ID:5frVCgipd.net] >>782 vbやったことないからなるほどよくわからん... vb6.0についてとか全然書籍とかもないから本当に困る
803 名前:デフォルトの名無しさん (ワッチョイ f6e4-PXrN) mailto:sage [2017/07/16(日) 20:26:00.20 ID:F/PpVxkG0.net] 古代言語の解読は自己責任だ 細かいこと考えたくなければ標準入出力で繋げばいい
804 名前:はちみつ餃子 ◆8X2XSCHEME (ワッチョイ d015-S4qQ) mailto:sage [2017/07/16(日) 20:41:20.06 ID:tihnLl5v0.net] >>791 JIS に働きかけてくれ
805 名前:デフォルトの名無しさん (ワッチョイ f146-I8+U) [2017/07/16(日) 21:06:56.01 ID:TI5o59vg0.net] >>790 ありがとう、探してくれて。
806 名前:デフォルトの名無しさん (オッペケ Sr10-1m9k) mailto:sage [2017/07/16(日) 21:31:30.43 ID:Z5uaiz2pr.net] テンプレートの部分順序は規格1400ページの中で恐らく最も難解 順序はテンプレート実引数と関係無く仮引数同士で判定され、直感的には P (&)[4] ← struct X {} const & × Pの導出不可 P const & ← struct X {} (&)[4] × Pの導出不可 によりambiguous 規格の説明は14.5.6.2, 14.8.2.4, 14.8.2.5
807 名前:デフォルトの名無しさん (ワッチョイ 1a42-Z+b3) mailto:sage [2017/07/17(月) 06:43:20.69 ID:WTwWKmZ80.net] >>674 プロパティってのはオブジェクトの状態の抽象化 例えば、コンテナのlistのsizeはコンテナとしての状態 sizeは要素数に対して定数時間で取得可能って条件があるからメンバ変数としてsizeを持ってる そうでなければ線形時間になってしまう vectorは大抵の場合、確保したメモリの始端と終端、要素の終端を表すポインタをメンバ変数に持つけど ポインタ演算で定数時間で求められるから、sizeのメンバ変数は持っていない emptyも状態、listもvectorも空を表すbool型のメンバ変数は持たないけど コンテナとしてemptyかどうかの状態を取得できるわけで、メンバ変数と対とはなっていない つまり、クラス設計上必要なオブジェクトとしての状態のget/setが目的であって 外部からメンバ変数にアクセスするための機能ではないよ(単にそれも出来るよってだけ) >>700 charのポインタを4バイト幅の符号無し整数型にキャスト その毎にビット演算、ループ数も32回で済む エンディアンは気にしないw
808 名前:デフォルトの名無しさん (オッペケ Sr10-1m9k) mailto:sage [2017/07/17(月) 09:28:01.08 ID:ESb998SRr.net] >エンディアンは気にしないw 物は言い様で、本当は触ったことが無いのであった AIXやSPARC使いに「インテル能乙」と揶揄されても仕方ない
809 名前:デフォルトの名無しさん (ワッチョイ 1a42-Z+b3) mailto:sage [2017/07/17(月) 09:43:52.37 ID:WTwWKmZ80.net] >>799 1つの方法を示しただけで、必要なら気にしたら良いってレベルの話なんだけどな 質問者も完全な解決策ではなくアイディアを求めているだろうし
810 名前:デフォルトの名無しさん (ワッチョイ 3eaf-iUs+) mailto:sage [2017/07/17(月) 09:52:45.96 ID:NM7AtMtK0.net] エクスプレッションテンプレートを使った二項演算子のオーバーロードって ・グローバル空間全体 ・特定の名前空間で定義して、使う部分ではその名前空間を指定 のどちらかになるということになりますか? つまり通常のクラスの演算子オーバーロードのようにクラス単位に限定する方法はなさそうです?