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


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

C++相談室 part130



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

596 名前:デフォルトの名無しさん (ワッチョイ 179a-VrB2) mailto:sage [2017/06/27(火) 19:00:49.27 ID:bJ//gE7J0.net]
>>583
size_tだと64bit環境で64bitになるぞ

597 名前: ◆QZaw55cn4c (ワッチョイ 576d-frAY) mailto:sage [2017/06/27(火) 19:02:17.31 ID:kIT2/xtQ0.net]
int が 64ビットになるべきだよね

598 名前:デフォルトの名無しさん (ワッチョイ 179a-VrB2) mailto:sage [2017/06/27(火) 19:07:21.81 ID:bJ//gE7J0.net]
当然そういうコンパイラはある
Windows上だと過去の色々なしがらみなどからintが32bitなのが普通

599 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdbf-pKS6) mailto:sage [2017/06/27(火) 19:08:30.52 ID:OA/PxRyod.net]
ビット数が気になるなら、<cstdint>のint??_tやuint??_tを使えばいいやんけ。

600 名前:デフォルトの名無しさん (ワッチョイ 179a-VrB2) mailto:sage [2017/06/27(火) 19:09:53.97 ID:bJ//gE7J0.net]
厳密にはunsignedの方が相応しいってどういう場合を想定してる?

データサイズとかならunsignedの方が相応しいとも限らないよ

601 名前:デフォルトの名無しさん (ワッチョイ 179a-VrB2) mailto:sage [2017/06/27(火) 19:11:35.74 ID:bJ//gE7J0.net]
>>592
そういう問題じゃない
言語のデフォルトサイズ、一番効率が良いとされているサイズが32bitなのか64bitなのか
の問題

602 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdbf-pKS6) mailto:sage [2017/06/27(火) 19:15:41.98 ID:OA/PxRyod.net]
その場合はintfast_t, uintfast_tを使う

603 名前:デフォルトの名無しさん (ワッチョイ bfe4-Nep8) mailto:sage [2017/06/27(火) 19:19:52.85 ID:N0WooBY/0.net]
データが持つ意味と型の振る舞いは極力一致させるべきで
型の振る舞いはできる限り制限するべき
負の値を取り得ないならunsignedにする
ローカル変数ならsignedでもいい

604 名前: ◆QZaw55cn4c (ワッチョイ 576d-frAY) mailto:sage [2017/06/27(火) 19:30:07.19 ID:kIT2/xtQ0.net]
>>591
え?そんなコンパイラが実在するの?



605 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdbf-pKS6) mailto:sage [2017/06/27(火) 19:33:33.64 ID:OA/PxRyod.net]
>>597
64-bit Linuxとか使ったことねーのか?

606 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdbf-pKS6) mailto:sage [2017/06/27(火) 19:37:05.21 ID:OA/PxRyod.net]
>>598
ごめんなさい。

607 名前:デフォルトの名無しさん (ワッチョイ 179a-VrB2) mailto:sage [2017/06/27(火) 19:51:35.91 ID:bJ//gE7J0.net]
特殊な例だとcharからlong longまで全部64bitとかあるぞ
もちろんPCではないけど

608 名前:デフォルトの名無しさん (ワッチョイ 179a-VrB2) mailto:sage [2017/06/27(火) 19:52:40.24 ID:bJ//gE7J0.net]
こいつが噂のMZか
一人芝居の

609 名前:デフォルトの名無しさん (アウアウウー Sa9b-h10b) [2017/06/27(火) 20:06:34.19 ID:3pUMWgYLa.net]
>>594
言語つーかCPUに依存しないか。
Core2は64ビット対応でも32ビットのが速い。
64ビットが速いのはCore iからとか。

610 名前:デフォルトの名無しさん (ワッチョイ 179a-VrB2) mailto:sage [2017/06/27(火) 20:10:45.68 ID:bJ//gE7J0.net]
x86の64bitモードは32bitの方が速い命令がある
キャッシュ容量とかメモリ帯域とかを考えても、絶対に32bitで足りるなら、32bitを選んだ方がいい

611 名前:デフォルトの名無しさん (オッペケ Sr0b-jRIn) mailto:sage [2017/06/27(火) 21:37:34.10 ID:ExZegnFlr.net]
>こいつが噂のMZか
>一人芝居の

Qの一人芝居はまだ余興として見られるがもう一人のクソコテの一人芝居は痛々しくて見ていられない

612 名前:デフォルトの名無しさん (ワッチョイ 9fc3-NIhq) mailto:sage [2017/06/28(水) 02:28:02.75 ID:Irk2C7ZK0.net]
>>596
型の振る舞いをできる限り制限するのは誤りを起こさない、起こしても明確なエラーにするのが目的だと思うんだけど、
符号なし整数型にそういった機能は無くて実際の助けにはならないから、こういう議論が起こる。

613 名前:デフォルトの名無しさん (ワッチョイ d76f-ADZD) mailto:sage [2017/06/28(水) 04:29:23.47 ID:matoew650.net]
むしろsignedにしておけば不正に負の値が入れられた場合チェックしやすい

614 名前:デフォルトの名無しさん (ワッチョイ 9f89-RNzd) mailto:sage [2017/06/28(水) 07:46:44.59 ID:Aii/VoAq0.net]
符合つき整数との比較や算術演算した際に、warning出たり符合なしに変換されたりと面倒なことが多いから、定義域が非負という理由だけではわざわざ符合なしにはあまりしたくない。



615 名前:デフォルトの名無しさん (スプッッ Sd3f-oVeJ) [2017/06/28(水) 08:16:59.41 ID:MovvcuP9d.net]
googleのスタイルだと整数は符号ありを使えってなってる

616 名前:デフォルトの名無しさん (スップ Sd3f-VrB2) mailto:sage [2017/06/28(水) 13:11:58.44 ID:4LULrFdtd.net]
APIも64bitは符号ありが多い

617 名前:デフォルトの名無しさん (ワッチョイ 7f91-fiUu) [2017/06/28(水) 14:24:20.43 ID:qTRul81R0.net]
Vvector<vector<float>> tensor;
のようなテンソルを、1列にまとめて
void Vector_Func(vector<float> &v){}
ベクトルの関数の引数にしたいんだけどさ
これって、新たにVector<float>型のベクトルを定義してそこにベクトルの中身をコピーし、それを利用して関数を呼び出して、さらにもとのテンソルにコピーして戻すしかないのかな?
2度のコピーにかかる時間を短縮できる方法があったら誰か教えて!!!

618 名前:デフォルトの名無しさん (ワッチョイ bfaf-7LQj) mailto:sage [2017/06/28(水) 14:26:13.68 ID:+YCVI2Ik0.net]
typedef vector<vector<float> > tensorf;
それとも右辺値参照的な話だろうか

619 名前:デフォルトの名無しさん (ワッチョイ 9f9f-Yx6S) mailto:sage [2017/06/28(水) 14:29:19.59 ID:eX7vr1Kz0.net]
参照になっているなら直接vを弄るだけでコピーする必要もないと思われ

620 名前:デフォルトの名無しさん (ワッチョイ d76f-ADZD) mailto:sage [2017/06/28(水) 15:12:35.77 ID:matoew650.net]
>>610
1列にまとめる必要があるという前提ならどうしようもない気がする
vector<vector<float>>を止めてデータの並びが最初から1列にまとまってるようなテンソルクラスを作るか、
どっかの行列ライブラリを転用するんだな

621 名前:デフォルトの名無しさん (ワッチョイ 9f9f-Yx6S) mailto:sage [2017/06/28(水) 16:00:31.95 ID:eX7vr1Kz0.net]
参照渡しでvが正常に得られるということは、vectorが値の参照を許容しているとも言える。

622 名前:デフォルトの名無しさん (ワンミングク MM7f-Rrwd) mailto:sage [2017/06/28(水) 16:46:10.90 ID:cWs7iztoM.net]
>>610
iteratorパターンかrange viewのようなものを作る

623 名前:デフォルトの名無しさん (オッペケ Sr0b-jRIn) mailto:sage [2017/06/28(水) 18:00:52.06 ID:lG20CtJar.net]
612は健常者

624 名前: ◆QZaw55cn4c (ワッチョイ 179a-jSYe) mailto:sage [2017/06/28(水) 22:05:12.76 ID:y88Z2FQA0.net]
>>598
その64bit Linux に乗っているコンパイラは何?



625 名前:デフォルトの名無しさん (ササクッテロラ Sp71-kiAr) [2017/06/29(木) 22:16:27.01 ID:3dQByb1op.net]
C++の数値計算のコード読んでくとreadmeにSiam journal って雑誌の引用見かける事がやたら多いんだけどc++やる人は必読の雑誌だったりします?

626 名前:デフォルトの名無しさん (ワッチョイ 016f-bKJX) mailto:sage [2017/06/30(金) 01:47:04.93 ID:66+xb1tk0.net]
C++ってより言語を問わず数値計算やる人だな
高速性が要求される数値計算はC++が使われることが多いってだけ

627 名前:デフォルトの名無しさん (ワッチョイ 46e4-ejav) mailto:sage [2017/06/30(金) 01:56:16.60 ID:/WxXdso/0.net]
まず数学力を鍛えたほうがいい

628 名前:デフォルトの名無しさん (オッペケ Sr71-F+4p) mailto:sage [2017/06/30(金) 08:34:53.69 ID:2shJEbz+r.net]
これがアスペというやつだな

629 名前:デフォルトの名無しさん (ワッチョイ 921b-zTMA) mailto:sage [2017/07/01(土) 07:18:19.26 ID:C6ffpB7m0.net]
式テンプレートを勉強中です。
X(i) op Y(i)だけで結果が決まる場合はともかく
行列の逆行列のような一要素の計算に行列全部が影響するような計算を
こいつで実装する意味ってありまつか?
実装例とかあったら教えてください

630 名前:デフォルトの名無しさん (ワッチョイ 06af-D66J) mailto:sage [2017/07/01(土) 07:25:20.19 ID:qtP/3v2i0.net]
意味というか行列の逆行列のij成分はij余因子を行列式で割った値だと言うことを知っていれば
NxN行列の逆行列の各成分はij余因子行列である(N-1)x(N-1)行列の行列式の計算になるから
数学的帰納法的にテンプレート化可能

631 名前:デフォルトの名無しさん (ワッチョイ 42aa-wjSU) mailto:sage [2017/07/01(土) 07:49:52.59 ID:nS8nnQe50.net]
>>623
君は説明がうまいね

632 名前:デフォルトの名無しさん (ワッチョイ 06af-D66J) mailto:sage [2017/07/01(土) 08:05:35.58 ID:qtP/3v2i0.net]
いやそれほどでも・・・///

633 名前:デフォルトの名無しさん (ワッチョイ 42aa-wjSU) mailto:sage [2017/07/01(土) 08:28:19.10 ID:nS8nnQe50.net]
式テンプレートで正項と負項をバサッと消し合うようなことができないかと考えて挫折したなあ

634 名前:デフォルトの名無しさん (ワッチョイ 921b-zTMA) mailto:sage [2017/07/01(土) 08:44:48.56 ID:C6ffpB7m0.net]
>>623
いや、その余因子を求めることも、そこから行列式を求めるにも、全行列値が必要になるわけだし、
そもそも、余因子行列式の計算はNxN->3x3までの変換が再帰的な計算でスタックを使いたおすことになるので、
ヒープに一時オブジェクトを使わずにすむといという式テンプレートのメリットが全くないんじゃないんですか?

だいたい余因子行列式の除算なんて効率悪すぎて数値計算じゃ使いませんよ。
話をはっきりさせるために、ここは逆行列計算をGauss-Jordanの掃き出し法に限定しましょうや。

>数学的帰納法的にテンプレート化可能
どういう意味です?

数学的帰納法とは、
i=1のときf(1)が成立する
i=nのときf(n)が成立すると仮定すれば
i=n+1のときも成立することを証明して、一般的にf(n)が成立とする



635 名前:デフォルトの名無しさん (ワッチョイ 921b-zTMA) mailto:sage [2017/07/01(土) 09:09:28.46 ID:C6ffpB7m0.net]
>>626
ちょっと、誤解を招きかねないんで、
余因子行列式が再帰的云々と書きましたが、
余因子に限らず、行列式の計算そのものが再帰的という意味です。
だから、行列式計算そのものがやたら時間がかかる。
大学の試験の答案とかで、途中点をかせぐために(連立方程式を解いて計算間違いするより加点が期待できる)、
余因子行列式/行列式
を明記したりしますが、このやり方はせいぜい手計算でできる4x4程度の話で、
それ以上だと掃き出し法に比較して極端に非効率ということです。

636 名前:デフォルトの名無しさん (オッペケ Sr71-F+4p) mailto:sage [2017/07/01(土) 09:32:16.00 ID:T5yR4indr.net]
>>627
>効率悪すぎて数値計算じゃ使いませんよ
「式テンプレートの勉強」を「汎用数値計算ライブラリを式テンプレート化するための勉強」にすりかえられても…

>どういう意味です?
ヒント:回答者は日本語を正しく使えない

637 名前:デフォルトの名無しさん (ワッチョイ 42aa-wjSU) mailto:sage [2017/07/01(土) 10:10:34.74 ID:nS8nnQe50.net]
再帰的に→帰納的に→帰納法的に
jk

638 名前:デフォルトの名無しさん (ワッチョイ 0111-WwN4) mailto:sage [2017/07/01(土) 12:42:17.52 ID:RfHKhQjf0.net]
数学用語はよくわからんけど
>行列の逆行列のような一要素の計算に行列全部が影響するような計算を
>こいつで実装する意味ってありまつか?
ない

というか式テンプレート勉強するというなら自分で軽く実装してみるべきだよ
↑の場合は速度がどうこう以前の問題だとわかるから

639 名前:デフォルトの名無しさん (オッペケ Sr71-F+4p) mailto:sage [2017/07/01(土) 13:26:13.77 ID:T5yR4indr.net]
>再帰的に→帰納的に
これはひどい
再帰的と帰納的は関係ないし、数学的帰納法は帰納的でも帰納法でもない

>>こいつで実装する意味ってありまつか?
>ない
確かに質問に対する明確な回答なのだが、何かこう足りないような…

640 名前:デフォルトの名無しさん (スッップ Sd62-TIEP) mailto:sage [2017/07/05(水) 14:15:27.50 ID:/9Xtn5yvd.net]
scanfより速い標準入力ってない?
スペース区切りの大量のintをベクトルにいれたいんだけどループ回してscanfがどうやっても最速なのかな

641 名前:デフォルトの名無しさん (ワッチョイ 6e1c-4/kT) [2017/07/05(水) 15:44:26.17 ID:4h6UtxrL0.net]
istream_iterator<int> first(cin), last;
vector<int> wish_of_632{first, last};

642 名前:デフォルトの名無しさん (スッップ Sd62-TIEP) mailto:sage [2017/07/05(水) 16:39:36.49 ID:/9Xtn5yvd.net]
>>634
試してみるサンクス

643 名前:デフォルトの名無しさん (オッペケ Sr71-F+4p) mailto:sage [2017/07/05(水) 16:59:04.15 ID:UhWlQCq1r.net]
Visual Studio 2017のリリースビルドで試したが>>634 の方法は倍ほど遅いような

644 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd62-3ntT) mailto:sage [2017/07/05(水) 17:16:22.28 ID:2aUA7xnEd.net]
fread, fgets, getchar



645 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd62-3ntT) mailto:sage [2017/07/05(水) 17:22:18.00 ID:2aUA7xnEd.net]
int n = 0;
if ('0' <= ch && ch <= '9') {
n *= 10;
n += ch - '0';
} else {
put_int(n);
n = 0;
}

646 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd62-3ntT) mailto:sage [2017/07/05(水) 17:31:38.49 ID:2aUA7xnEd.net]
GetStdHandle(STD_INPUT_HANDLE)

647 名前:デフォルトの名無しさん (ワッチョイ c2f0-wjSU) mailto:sage [2017/07/05(水) 18:03:51.31 ID:IVGCprss0.net]
大量=一行10000個程度の数字が10000行ほど?

648 名前:デフォルトの名無しさん (オッペケ Sr71-F+4p) mailto:sage [2017/07/05(水) 18:09:07.25 ID:UhWlQCq1r.net]
自前が最速なのだろうが汎用性を考えるとお勧めできない

ある環境での適当な100万個の整数読み込み時間:
 istream_iterator : 470ms
 scanf : 230ms
 fgetc+自前スペース解析+atoi :
175ms
 最初に全部char配列に読み込み+片山式パース: 32ms

649 名前:デフォルトの名無しさん (ワッチョイ 46e4-ejav) mailto:sage [2017/07/05(水) 19:23:43.26 ID:rZavNuQl0.net]
何のチェックもしないscanf,printfのやり方が最速なのは自明

650 名前:デフォルトの名無しさん (ワッチョイ 6111-wjSU) mailto:sage [2017/07/05(水) 20:06:49.25 ID:tZeoWZVY0.net]
>>641
>最初に全部char配列に読み込み+片山式パース:

これって随分早いけどパースより読み込みが効いてるんじゃないの
恐らくfgets使ってるんだよね

651 名前:デフォルトの名無しさん (オッペケ Sr71-F+4p) mailto:sage [2017/07/05(水) 20:09:41.12 ID:UhWlQCq1r.net]
>>643
fgetsでなくfreadで読んだ
なおこの全読み込み方式で数値の切り出しをatoiにすると80msだったので
やはりI/Oの効率化が支配的と理解した

652 名前:デフォルトの名無しさん (ワッチョイ 6111-wjSU) mailto:sage [2017/07/05(水) 21:04:30.49 ID:tZeoWZVY0.net]
>>644
てことは
fgetc+自前スペース解析+atoi :175ms
fread++自前スペース解析+atoi :80ms
読み込みのオーバーヘッドで175-80=95msロスしてるわけか

atoiは変換不能文字とか16進とかチェックしてるからその分遅くなるんだろう
自前で10進のみに特化させるのが一番なんだけどもな

653 名前:デフォルトの名無しさん (スップ Sdc2-Pf3w) mailto:sage [2017/07/05(水) 21:05:36.71 ID:O+22iBefd.net]
複数スレッドに分けてアセンブラの自作関数で回す

654 名前:デフォルトの名無しさん (スップ Sdc2-Pf3w) mailto:sage [2017/07/05(水) 21:07:40.11 ID:O+22iBefd.net]
各スレッドも、複数数値を並列で動かす



655 名前:デフォルトの名無しさん (スップ Sdc2-Pf3w) mailto:sage [2017/07/05(水) 21:08:36.26 ID:O+22iBefd.net]
C++スレだった
すまんこ

656 名前:はつみつ餃子 ◆8X2XSCHEME (ワッチョイ 8215-CicO) mailto:sage [2017/07/05(水) 21:23:34.13 ID:YH3wEyty0.net]
どういう風に並列化できる?

657 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd62-3ntT) mailto:sage [2017/07/05(水) 21:26:33.09 ID:2aUA7xnEd.net]
処理すべきブロックに対して、ちょうどいい区切りで、等分割に近い分割をやって、それぞれを別々のスレッドで処理する。
スレッドがすべて終わったら、処理結果を結合する。

658 名前:デフォルトの名無しさん (ワッチョイ 6111-wjSU) mailto:sage [2017/07/05(水) 21:28:54.47 ID:tZeoWZVY0.net]
スレッドもインラインアセンブラもC++の範疇だよ
ただIOはロックされるから解放待ちの時間が出来てしまう

ラインごとに随時読み込んでスレッド振り分けかな
パースに時間がかかるならそれも悪くないんだろうけど簡易atoi程度じゃ差は出にくい

659 名前:デフォルトの名無しさん (ワッチョイ c21b-8PSv) mailto:sage [2017/07/05(水) 21:34:38.31 ID:slEXI2jh0.net]
原理的にはブロッキングIOのファイル読み出しの待ち時間を有効に活用すれば
それが最速だけど並列化のオーバーヘッドを最小にしようと思ったら
OS毎あるいはファイルIOのライブラリ毎に特化しなきゃならない気がするので面倒くさい

660 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd62-3ntT) mailto:sage [2017/07/05(水) 21:40:11.90 ID:2aUA7xnEd.net]
#ifdef _WIN32
// Windowsの場合
...
#elif ...

661 名前:デフォルトの名無しさん (ワッチョイ c99a-Pf3w) mailto:sage [2017/07/05(水) 23:16:04.44 ID:icFnMa9s0.net]
各スレッドも、前から順番にやってたら遅い
各スレッドのなかでも複数を同時にやらないと

例えば>>638みたいなのだと、各ステップが終わらないと次のステップに進めない
演算の遅延があるので、各演算ポートはスカスカになる
HTで少しはマシにはなるが、それでもスカスカ

整数演算は同時に3個〜4個出来るのだ
これを活かさないと

まあいずれにしろファイルなんか使ってたら読み込み時間がほとんどなので、ガリガリにアセンブラで組む価値もないけど

662 名前:デフォルトの名無しさん (ワッチョイ be91-DoE+) mailto:sage [2017/07/05(水) 23:24:23.81 ID:9lrezxXx0.net]
C++のすごい人お願い教えて!!!functionにメンバ関数を代入するにはどうすればいいのか全然わからんのや!!!

#include <iostream>
#include<functional>
using namespace std;

struct C{
    int i=0;
    function<void()> f;
    void A(){ cout << i;}
    void B(){
    f=A;//ここで「reference to non-static member function must be called; did you mean to call it with no arguments?」
//関数A();をstaticにすればエラーは消えるものの、C::A()を呼びたいのではなくc.A();を呼び出したい
    f();
    }
};
void main(void){
    C c;
    c.B();
}

663 名前:デフォルトの名無しさん (ワッチョイ 06a6-F+4p) mailto:sage [2017/07/05(水) 23:25:58.77 ID:pl4REjuI0.net]
釣りならもっと議論の余地のあるネタにしろ

664 名前:デフォルトの名無しさん (ワッチョイ 06a6-F+4p) mailto:sage [2017/07/05(水) 23:36:21.55 ID:pl4REjuI0.net]
f = [this]{A();};
c.f = [&]{c.A();};
二度と来んなカス



665 名前:デフォルトの名無しさん (ワッチョイ b7ea-rvkC) mailto:sage [2017/07/06(木) 09:30:12.16 ID:x5DiEtc40.net]
ファイル読み取りの待ち時間を別スレッドに割り当てるってのは、
誰もが考えつく話だけど、誰もがどうでもいいやと投げ出す話。

666 名前:デフォルトの名無しさん (ワッチョイ f7e2-pw7F) mailto:sage [2017/07/06(木) 20:44:37.47 ID:3RH7JsNg0.net]
テンプレートクラスの継承で↓みたいなことをやりたいんですが
エラーが出てコンパイルが通りません
どこが間違っていますか?もしくはもっと良い方法はありますか?

template< typename T >
class alpha
{
private:
 T mVar;
public:
 alpha( T var ) : mVar( var ) {}
};

class bravo : public alpha< float >
{
public:
 bravo( float var ) : alpha( var ) {}
};

667 名前:デフォルトの名無しさん (ワッチョイ bfaf-VFUi) mailto:sage [2017/07/06(木) 20:54:42.22 ID:1SuD/0Q50.net]
コンパイル通りそうだけど
どんなエラー?

668 名前:デフォルトの名無しさん (ワッチョイ 976f-U373) mailto:sage [2017/07/06(木) 20:54:56.95 ID:r4C+2lo90.net]
なぜ肝心のエラーの内容を書かないのか

669 名前:デフォルトの名無しさん (ワッチョイ f7e2-pw7F) mailto:sage [2017/07/06(木) 20:58:24.06 ID:3RH7JsNg0.net]
658です
コンパイル通りました
すまんこ

670 名前:デフォルトの名無しさん (ワッチョイ bfe4-LW8t) mailto:sage [2017/07/06(木) 21:29:46.08 ID:RDUi9QjP0.net]
ゆるさねえからな

671 名前:デフォルトの名無しさん (スプッッ Sd3f-RGC3) [2017/07/06(木) 22:12:30.80 ID:8iMXbcNhd.net]
いえいえどういたしまして

672 名前:デフォルトの名無しさん (ワッチョイ 9f8f-gRQY) [2017/07/07(金) 00:01:47.76 ID:lYH0c+880.net]
ヽ(・ω・)/ズコー

673 名前:デフォルトの名無しさん (ワッチョイ 1f1b-6//c) mailto:豊田の姉松居一代 [2017/07/10(月) 06:02:24.59 ID:kxDJWNLg0.net]
最近は3年毎に仕様改訂されてるC++なので
プロパティはどーなってるのカナー♪
RWPropertyて・・・

このハゲーーーー!!!
違うだろ
ち・が・う・だ・ろーーーー!!!
C#みたいに

class Body{
size_t Chimpo{ get; set;}
};


Body Oreno;
Oreno.Chimpo = 20;
cerr << Oreno.Chimpo <<"cm\n";

と簡単に書きたいんです・す・す

674 名前:デフォルトの名無しさん (ワッチョイ 1f1b-6//c) mailto:豊田の姉松居一代 [2017/07/10(月) 06:06:24.38 ID:kxDJWNLg0.net]
テンプレートなんかでお茶濁し腐って
言語仕様として実装しろつってんだよハゲーーーー!!!
ぶち殺すぞ



675 名前:デフォルトの名無しさん (ワッチョイ 9709-8gU5) mailto:sage [2017/07/10(月) 06:07:31.30 ID:NdIMybBN0.net]
C#のあれ結局関数だから、下駄と雪駄書きなさい。

676 名前:デフォルトの名無しさん (ワッチョイ 1f1b-6//c) mailto:豊田の姉松居一代 [2017/07/10(月) 06:21:29.79 ID:kxDJWNLg0.net]
はやっ
なんでこんな時間に2chなんかやってんだよ

677 名前:デフォルトの名無しさん (ワッチョイ 9709-8gU5) mailto:sage [2017/07/10(月) 06:42:08.85 ID:NdIMybBN0.net]
オマエモナー。

678 名前:デフォルトの名無しさん (ワッチョイ 1f1b-6//c) mailto:sage [2017/07/10(月) 06:48:01.08 ID:kxDJWNLg0.net]
俺は超早く寝て朝4:30に起きるように
生活習慣変えたから

679 名前:名無しさん@そうだ選挙に行こう! Go to vote! (ワッチョイ 9709-8gU5) mailto:sage [2017/07/10(月) 07:03:50.00 ID:NdIMybBN0.net]
俺は、夜行性なだけだ。
今日は用事があるからこのまま起きてるが。

680 名前:デフォルトの名無しさん (スップ Sd3f-nGAm) mailto:sage [2017/07/10(月) 11:54:33.30 ID:okOc14zTd.net]
単独プロパティでゲットセット?
あまり需要ないなあ。(個人の感想です)

681 名前:デフォルトの名無しさん (ワッチョイ 7f32-MxGc) mailto:sage [2017/07/11(火) 00:29:34.07 ID:4iHLvMGp0.net]
メンバ変数はない方がいいし、アクセスする必要がある時点で、隠蔽が崩れ始めてると思った方がいいと思う。

特定のパターン除けば、外からメンバ変数にアクセスしたいケースってすくなくない?

get/setは、リフレクションと命名規則に依存するフレームワークがあるから便利なのであって、c++には微妙じゃね?

682 名前:デフォルトの名無しさん (ワッチョイ bfe4-LW8t) mailto:sage [2017/07/11(火) 01:25:20.72 ID:7V5lebao0.net]
自動実装のgetsetってpublicなメンバ変数と何が違うんだ

683 名前:デフォルトの名無しさん (ワッチョイ 9709-8gU5) mailto:sage [2017/07/11(火) 01:29:35.46 ID:CDrVRBQX0.net]
>>675
何度目だろう。
なんか、関数にしておくとオーバライドできて関数内で加工できるから違うって聞いた。

684 名前:デフォルトの名無しさん (ワッチョイ 174b-R6aQ) mailto:sage [2017/07/11(火) 01:48:50.09 ID:8G8H3ksE0.net]
ゲッタセッタとか使いたくなるような場面ならそもそもpublicな構造体使った方がいい説はある



685 名前:デフォルトの名無しさん (ワッチョイ 174b-R6aQ) mailto:sage [2017/07/11(火) 01:50:07.47 ID:8G8H3ksE0.net]
配列のlengthとかあったか
やっぱ取り消し

686 名前:デフォルトの名無しさん (ワッチョイ b7ea-rvkC) [2017/07/11(火) 06:32:58.41 ID:nM0jXF630.net]
関数オーバーロードやプロパティによるget/setの乱用は、メソッド名の文字列検索によるソースコード追跡ができなくなりかえって難読性が高まる。

687 名前:デフォルトの名無しさん (ワッチョイ 1f1b-6//c) mailto:sage [2017/07/11(火) 07:59:11.17 ID:MCsEtOKi0.net]
↓のテンプレートとジェネリックの違い、にある
https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/generics/differences-between-cpp-templates-and-csharp-generics
トップ項目にある
・C# ジェネリック クラスでは、ユーザー定義演算子は呼び出すことができますが、算術演算子を呼び出すことはできません。
"算術演算子を呼び出すことはできません"ってどーいう意味っすか?
算術演算子って+-*/のこと?

688 名前:デフォルトの名無しさん (アウアウウー Sa5b-X9Wr) [2017/07/11(火) 08:03:15.77 ID:ZtZ4WBZMa.net]
C++すれでC#聞かれても。。。

689 名前:デフォルトの名無しさん (ワッチョイ 9f9f-ieup) mailto:sage [2017/07/11(火) 08:05:01.05 ID:bgByaxVg0.net]
頭悪いからだろ

690 名前:デフォルトの名無しさん (ワッチョイ 1f1b-6//c) mailto:sage [2017/07/11(火) 08:18:43.46 ID:MCsEtOKi0.net]
>>681
あ、C#スレ行きます

691 名前:はつみつ餃子 ◆8X2XSCHEME (ワッチョイ 9f15-rvkC) mailto:sage [2017/07/11(火) 18:08:51.11 ID:W3h9V8nz0.net]
理解が逆なんだよ。
関数の組 (ときには片方のこともある) を変数として抽象化しようとするのがプロパティであって、
メンバ変数のアクセサとしても使えるのは用例のひとつでしかない。

ゲッタとセッタが自動生成できるとかいうのはまた別問題だるぉおおお

692 名前:デフォルトの名無しさん (ワッチョイ 5711-rvkC) mailto:sage [2017/07/11(火) 18:54:25.62 ID:dSS1j36W0.net]
[][Tebla][]

}

000-"Yob*RtStrike"[%Kil\]MO,fla>%$9999VLTS

001-GYORLith"0\R"/"ESUBA"%$%

HADO-"EM","L","O","NU"###END

693 名前:デフォルトの名無しさん (スップ Sd3f-nGAm) mailto:sage [2017/07/11(火) 19:07:21.76 ID:DqTb1LDQd.net]
>>684
素人なので「変数として抽象化」ってとこがよくわからない

694 名前:デフォルトの名無しさん (ワッチョイ d796-rvkC) mailto:sage [2017/07/11(火) 19:17:50.67 ID:dG3xud1d0.net]
みなさんが複雑すぎて糞と言われるC++を使う理由を教えて下さい。



695 名前:デフォルトの名無しさん (ワンミングク MM7f-hrVG) mailto:sage [2017/07/11(火) 19:37:55.48 ID:FP4c/tWpM.net]
>>684
なるほど、そんな捉え方があるのか

データ抽象の一つの形としてプロパティなるものがあるって考え方ね

696 名前:デフォルトの名無しさん (スップ Sd3f-nGAm) mailto:sage [2017/07/11(火) 19:40:41.20 ID:DqTb1LDQd.net]
>>687
言われるほど複雑じゃないから

697 名前:デフォルトの名無しさん (ワッチョイ bfe4-LW8t) mailto:sage [2017/07/11(火) 19:43:55.52 ID:7V5lebao0.net]
>>687
複雑すぎではないし糞でもないから

698 名前:デフォルトの名無しさん (ワッチョイ bfaf-VFUi) mailto:sage [2017/07/11(火) 19:45:13.43 ID:YnoqV4V50.net]
SDKがC++しかなくて仕方なく・・・

699 名前:デフォルトの名無しさん (ドコグロ MM2b-d65a) mailto:sage [2017/07/11(火) 20:21:24.75 ID:Wcul0TB2M.net]
ネイティブコードを吐けるオブジェクト指向言語でメジャーな奴は C++ ぐらいしかないし

700 名前:デフォルトの名無しさん (ワッチョイ d796-rvkC) mailto:sage [2017/07/11(火) 21:14:29.35 ID:dG3xud1d0.net]


701 名前:人は複雑じゃないもん
二人は仕方なし
[]
[ここ壊れてます]

702 名前:デフォルトの名無しさん (ワッチョイ 9f89-EAWM) mailto:sage [2017/07/11(火) 21:42:20.62 ID:VLYeJXw20.net]
いちばん使い慣れていて、使い勝手の良い道具だから。

703 名前:デフォルトの名無しさん (ワッチョイ d79a-0UkT) mailto:sage [2017/07/11(火) 22:06:48.92 ID:qjau/h5c0.net]
複雑だが糞ではない

704 名前:デフォルトの名無しさん (ドコグロ MMbf-rPCP) mailto:sage [2017/07/11(火) 22:11:10.23 ID:mCNEANh4M.net]
>>686
同じ書き方で呼び出せる、ということ。

値を受け取るときに何か処理するようにしたとしても、プロパティなら関数呼び出しに書き換える必要がない。



705 名前:デフォルトの名無しさん (スップ Sd3f-nGAm) mailto:sage [2017/07/11(火) 22:18:58.63 ID:DqTb1LDQd.net]
>>696
期待していた答えと違う
期待していた答えと違う

706 名前:デフォルトの名無しさん (ワッチョイ bfe4-LW8t) mailto:sage [2017/07/11(火) 22:30:22.09 ID:7V5lebao0.net]
>>696
わざわざパースの難易度を上げてまで入れる価値はないな
C++の場合変数に見える関数なんて落とし穴にしかならない

707 名前:デフォルトの名無しさん (ドコグロ MMbf-rPCP) mailto:sage [2017/07/11(火) 22:35:06.05 ID:mCNEANh4M.net]
>>697
それじゃこう?
呼び出し元が同じ概念で扱えるように、呼び出し先のメンバ変数の読み込みと0変数関数、メンバ変数書き込みと1変数関数をプロパティという概念で同一視している。

708 名前:デフォルトの名無しさん (ワッチョイ 176f-zXdO) mailto:sage [2017/07/11(火) 22:35:38.41 ID:jUUyBjmf0.net]
ビットローテーションについての相談です

今やりたいことは128文字の文字列を暗号化したい
その中で4バイトごとに区切って、4バイトごとにビットローテーションして暗号化を考えている

それの実現方法で悩んでいます
想定では右シフト

char a[128] = 文字列;
int x = a[0] << 24 + a[1] << 16 + a[2] << 8 + a[3];

// 下位2bitを上位2bitでtmp作成
int tmp = a[3] << 30;

x = x >> 2 + tmp;

これを繰り返す。
こんな感じのを考えたのだけどもっと良い方法はあるだろうか?

709 名前:デフォルトの名無しさん (ワッチョイ d79a-0UkT) mailto:sage [2017/07/11(火) 22:42:18.86 ID:qjau/h5c0.net]
環境依存で良いなら色々と思い付く

とりあえず、<<より+の方が優先度が高いので()を付けないと
| なら()は不要
コストは多分ほとんどの環境で同じ
8086とかだと | の方が速かったり

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]
エクスプレッションテンプレートを使った二項演算子のオーバーロードって
・グローバル空間全体
・特定の名前空間で定義して、使う部分ではその名前空間を指定
のどちらかになるということになりますか?
つまり通常のクラスの演算子オーバーロードのようにクラス単位に限定する方法はなさそうです?

811 名前:デフォルトの名無しさん (オッペケ Sr10-1m9k) mailto:sage [2017/07/17(月) 22:32:17.08 ID:ESb998SRr.net]
通常のクラスの例であるstd::complex<>は二項演算子を使う部分で名前空間など指定しなくても良いし
そのオーバーロード関数はクラスではなくstd名前空間に限定している
式テンプレートでそれ以上のことが必要なのだろうか

812 名前:デフォルトの名無しさん (ワッチョイ 7011-MRQN) mailto:sage [2017/07/18(火) 00:26:51.30 ID:2CukONSS0.net]
名前空間で定義して、ETで使うクラス全て特定の名前空間内で定義するか、
ライブラリが提供する型以外を許容しないなら、演算子を各クラス内に定義するだけでいい

ETと協調しうるあらゆる型も許容するために
template <typename T, typename U>
fugaexpression<T, U, ...> operator +(T t, U u);

と書きたいのなら、演算子を名前空間内に書くとか
enable_ifで条件に合わないものを弾くなりしないといけない

813 名前:デフォルトの名無しさん (ワッチョイ 7011-MRQN) mailto:sage [2017/07/18(火) 12:37:46.49 ID:2CukONSS0.net]
訂正
ETだから参照でないといかんね
operator +(T &&t, U &&u)

814 名前:デフォルトの名無しさん (ワッチョイ 3eaf-iUs+) mailto:sage [2017/07/18(火) 12:44:00.00 ID:VOd4+Wz60.net]
なんとなくわかりました
やってみます



815 名前:デフォルトの名無しさん (ブーイモ MMfd-I8+U) [2017/07/18(火) 12:53:11.11 ID:CTdksPCiM.net]
式テンプレート作るのと、右辺値参照モノをしっかり作り込むのとどちらが良さげ?

816 名前:デフォルトの名無しさん (スプッッ Sd9e-aKa0) mailto:sage [2017/07/18(火) 14:06:03.25 ID:C2L8wOjPd.net]
上でVB6.0について質問してるものだけどさらに重ねて質問させてください
VB6.0→C++に通信してる箇所が存在していてそこがstring→char※になってる
これって文字化けしないの??

817 名前:デフォルトの名無しさん (スップ Sd02-y/ao) mailto:sage [2017/07/18(火) 15:57:42.98 ID:LmZYlO3Ud.net]
>>807
さあ?
"まみむめも"でも試しに入力してみれば?

818 名前:デフォルトの名無しさん (アウアウエー Sa66-C5HA) [2017/07/19(水) 07:57:29.52 ID:4WYjcaP8a.net]
>>807
コード内で文字列生成して表示したらエンコードが違って文字化けとかあるけど、外部から文字列受け取ってただ表示するだけならエンコードとか関係ないから問題は無い。
(ただのバイト列)
外部から文字列受け取ってそれを加工するとかだと問題ある時はあるが。

819 名前:デフォルトの名無しさん (ワッチョイ 3eaf-iUs+) mailto:sage [2017/07/19(水) 14:22:33.44 ID:cdBaS5I50.net]
804ですが
>>803
>名前空間で定義して、ETで使うクラス全て特定の名前空間内で定義する
これでできました。
ありがとうございます。

820 名前:デフォルトの名無しさん (スプッッ Sd9e-aKa0) mailto:sage [2017/07/19(水) 20:36:51.87 ID:ogeQAtV7d.net]
>>809
サンクス!!!
いじらないことにした

明示的なdllの呼び出しも出来なくて震えてます
Getprocaddressが出来ずに進まないです
何か間違っている箇所があれば教えてほしいです
dllは同階層に配置してます

あとdll側の宣言でWINAPIがあるパターンとないパターンを見るのだけども
必要ないってことはあり得るのでしょうか

dll側
_delspec(dllimport) int WINAPI AAA(int,int){
return 0;


呼び出し側
HINSTANCE hDLL; int (*func)(int,int);
if ((hDLL = LoadLibrary("AAA.dll")) == NULL)
printf("LoadLibrary is failed.\n");
else { if ((func = (int (*)(int,int))
GetProcAddress(hDLL, "AAA")) == NULL) printf("GetProcAddress is failed.\n");
else printf("main %d\n", func(1,1));
FreeLibrary(hDLL);
}

821 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/) mailto:sage [2017/07/19(水) 20:49:13.06 ID:MaD+cEa1d.net]
>>811
importとexportを間違ってるよ。

822 名前:デフォルトの名無しさん (スプッッ Sd9e-aKa0) mailto:sage [2017/07/19(水) 21:54:41.55 ID:ogeQAtV7d.net]
>>812
あ ごめん
そこはexportってしてるから問題ない
スマホで書き込む際に間違えただけです

823 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/) mailto:sage [2017/07/19(水) 22:02:10.86 ID:MaD+cEa1d.net]
まずは、出来たdllをダンプしてみな。関数型にはWINAPIが必要だよ。

824 名前:デフォルトの名無しさん (オッペケ Srea-hJ3a) mailto:sage [2017/07/19(水) 22:06:19.96 ID:QocMLB2Ar.net]
>>811
>間違っている箇所があれば教えてほしいです
ほれ
1. (int (*)(int,int))
2. GetProcAddress(hDLL, "AAA")



825 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/) mailto:sage [2017/07/19(水) 22:06:40.85 ID:MaD+cEa1d.net]
こういう場合は関数ポインタ型をtypedefしたら楽だよ。

826 名前:デフォルトの名無しさん (スプッッ Sd9e-aKa0) mailto:sage [2017/07/19(水) 22:10:20.05 ID:ogeQAtV7d.net]
>>815
ここ間違ってる?
dll側の関数の引数に合わせてるのと、getprocaddressを使って関数呼び出してるだけだから問題ないと思ってるのだけども


>>816
それって
>>811
>間違っている箇所があれば教えてほしいです
ほれ
これをint (*)(int,int)を定義するってことよね?

827 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/) mailto:sage [2017/07/19(水) 22:12:49.52 ID:MaD+cEa1d.net]
typedef int (WINAPI *MYFUNC)(int, int);

828 名前:デフォルトの名無しさん (スプッッ Sd9e-aKa0) mailto:sage [2017/07/19(水) 22:13:35.01 ID:ogeQAtV7d.net]
__stdcallがないってことか!!!!!

829 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/) mailto:sage [2017/07/19(水) 22:14:01.35 ID:MaD+cEa1d.net]
dumpbinというダンプツールがあるから、それを使ってdllの情報をダンプする。

830 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/) mailto:sage [2017/07/19(水) 22:16:16.73 ID:MaD+cEa1d.net]
どうやってdllを作った? 初心者だから作り方間違ってる可能性がある。

831 名前:デフォルトの名無しさん (スプッッ Sd9e-aKa0) mailto:sage [2017/07/19(水) 22:18:12.53 ID:ogeQAtV7d.net]
>>821
ダンプするってのがほぼほぼ理解できてない

visualstudioでdll選んで空のプロジェクトを選んだ
それでcpp追加してその内容にさっきの構文とおまじないのwinmainを書いてビルド

832 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/) mailto:sage [2017/07/19(水) 22:21:21.65 ID:MaD+cEa1d.net]
>>822
dllの場合はWinMain要らない。ダンプは専用のコマンドプロンプトで行う。ってことは、コマンドプロンプトの使い方も勉強しないといけない。

833 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/) mailto:sage [2017/07/19(水) 22:22:37.56 ID:MaD+cEa1d.net]
DLLの場合はDllMainだね。

834 名前:デフォルトの名無しさん (スプッッ Sd9e-aKa0) mailto:sage [2017/07/19(水) 22:25:28.38 ID:ogeQAtV7d.net]
>>824
あ それか
落ちてる理由はそこな気がしてきた...



835 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/) mailto:sage [2017/07/19(水) 22:25:41.24 ID:MaD+cEa1d.net]
あっ、それからC++からC言語の関数を定義・参照するにはextern "C"を付けないといけない。

836 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/) mailto:sage [2017/07/19(水) 22:31:08.38 ID:MaD+cEa1d.net]
C++関数のシンボル名は「mangling」によって変な名前になり、コンパイラーによって違うから(標準化されていない)、DLLでは使いづらいので、C言語関数にすることが多い。

837 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/) mailto:sage [2017/07/19(水) 22:39:22.35 ID:MaD+cEa1d.net]
DLL内部の輸出関数にextern "C"を付けてC言語関数にする。
関数ポインター型をtypedefする。
DLLをダンプして関数シンボル名を確認する。

838 名前:デフォルトの名無しさん (スプッッ Sd9e-aKa0) mailto:sage [2017/07/19(水) 22:41:38.53 ID:ogeQAtV7d.net]
>>826
C言語の関数を定義参照するってのは.cファイルが出てきたときの話よね?

839 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/) mailto:sage [2017/07/19(水) 22:43:26.89 ID:MaD+cEa1d.net]
コンパイラーによって違うが、C言語関数が__cdeclのときは、そのシンボル名は先頭に下線が付き、__stdcallのときは関数名そのままだったかと。

840 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/) mailto:sage [2017/07/19(水) 22:46:12.04 ID:MaD+cEa1d.net]
>>829
C++でDLL関数を参照するときは、DLL関数がC言語関数でないと、シンボル名がややこしくなって、GetProcAddressが難しくなるよ。ダンプすればシンボル名が確認できる。

841 名前:デフォルトの名無しさん (スプッッ Sd9e-aKa0) mailto:sage [2017/07/19(水) 22:51:10.86 ID:ogeQAtV7d.net]
>>831
CでもC++でも構わないのだけどその関数のなかでクラスを呼ぼうとしてるのだけど可能なのだろうか??

>>830も少し気になったのだけど
__stdcallしてたのにリンカエラーの時に__cdeclのリンカエラーが出ていた

842 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/) mailto:sage [2017/07/19(水) 22:54:29.77 ID:MaD+cEa1d.net]
スタートメニューのVSの項目に、「なんちゃらコマンドプロンプト」というのがあるはずだ。
ソイツを起動すると黒い画面が出て来て、キーボードで「CD」コマンドで対象のフォルダに移動。
dumpbinに適当なコマンドライン引数を付けてEnter。

843 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/) mailto:sage [2017/07/19(水) 22:56:32.59 ID:MaD+cEa1d.net]
>>832
DllMainにも__stdcallが必要。

844 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/) mailto:sage [2017/07/19(水) 22:59:03.92 ID:MaD+cEa1d.net]
>>832
関数の引数と戻り値がC言語関数に見えれば中身C++でもOkay。



845 名前:デフォルトの名無しさん (スプッッ Sd9e-aKa0) mailto:sage [2017/07/19(水) 22:59:52.02 ID:ogeQAtV7d.net]
>>835
そうなんだ
じゃあextern cつけておいた方が安全みたいなのね
名前解決しやすいかしにくいかの話になるんだね

846 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/) mailto:sage [2017/07/19(水) 23:00:31.80 ID:MaD+cEa1d.net]
__stdcallやWINAPIなどを付けなければ、デフォルトで__cdeclになる。

847 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/) mailto:sage [2017/07/19(水) 23:02:59.40 ID:MaD+cEa1d.net]
コンパイラーによってはデフォルトの呼び出し規約を変更できるかも知れない。

848 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/) mailto:sage [2017/07/19(水) 23:07:11.36 ID:MaD+cEa1d.net]
複数の関数を、extern "C" { ... } で囲ってもいいし、関数の直前にextern "C"を付けてもいい。

849 名前:デフォルトの名無しさん (スプッッ Sd9e-aKa0) mailto:sage [2017/07/19(水) 23:10:05.85 ID:ogeQAtV7d.net]
>>839
個々につけた方が明示的で良いように思ったので個々でつけることにします
dll難しい....

linuxのsoファイル作成のソースコードと、winのdll作成のコードを共通化しようとしたら
defineで切るしかない??

850 名前:デフォルトの名無しさん (スプッッ Sd9e-aKa0) mailto:sage [2017/07/19(水) 23:14:11.62 ID:ogeQAtV7d.net]
質問ばかりで申し訳ないけどもヘッダファイルって作られないのかな?

dll側で定義した関数を公開するときにインポートライブラリで読み込ませるならばヘッダファイル必要になると思うのだけど
それは自身で作成することになる??

851 名前:デフォルトの名無しさん (ワッチョイ f6e4-PXrN) mailto:sage [2017/07/19(水) 23:16:07.85 ID:rRbujBCW0.net]
>>840
Boost.DLLを使う

852 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/) mailto:sage [2017/07/19(水) 23:17:50.12 ID:MaD+cEa1d.net]
>>841
Unmanaged C/C++では、慣習として、公開するヘッダーファイルは自分で書かないといけない。
それは公開する範囲を決める意味で重要な作業になる。

853 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/) mailto:sage [2017/07/19(水) 23:25:33.39 ID:MaD+cEa1d.net]
WinMainやDllMainなど以外で自分で作った関数については、WINAPIよりもAPIENTRYを使うのがマナー。

854 名前:デフォルトの名無しさん (スプッッ Sd9e-aKa0) mailto:sage [2017/07/19(水) 23:28:24.94 ID:ogeQAtV7d.net]
>>844
なんだそのAPIENTRYというのは

>>842
さらに知らない単語も出てきた



855 名前:デフォルトの名無しさん (ワッチョイ 96ea-zKZC) mailto:sage [2017/07/19(水) 23:30:05.93 ID:K+rHLYmS0.net]
もう面倒だからC#で作れよ

856 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/) mailto:sage [2017/07/19(水) 23:32:25.59 ID:MaD+cEa1d.net]
<windows.h>の中身を覗いてみると、Win32APIの流儀が見えてくる。時間泥棒かも知れないが、それが面白い。

857 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/) mailto:sage [2017/07/19(水) 23:35:11.33 ID:MaD+cEa1d.net]
Boostという準標準ライブラリ群があって、Boost.DLLはその一部。APIENTRYマクロはWINAPIマクロの別名。

858 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/) mailto:sage [2017/07/19(水) 23:39:27.90 ID:MaD+cEa1d.net]
面倒なのが嫌なら最初からC#使え。C++は素人が来るところではない。

859 名前:デフォルトの名無しさん (スプッッ Sd9e-aKa0) mailto:sage [2017/07/19(水) 23:46:25.94 ID:ogeQAtV7d.net]
>>846
開発でC++が必須なんだ..

860 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/) mailto:sage [2017/07/19(水) 23:50:31.02 ID:MaD+cEa1d.net]
で、問題は解決したか?

861 名前:デフォルトの名無しさん (ワッチョイ f6e4-PXrN) mailto:sage [2017/07/19(水) 23:52:51.09 ID:rRbujBCW0.net]
それはいいけどググればすぐ解決する程度の問題をわざわざ人に聞くべきではない

862 名前:デフォルトの名無しさん (ワッチョイ 274b-FPZE) mailto:sage [2017/07/20(木) 00:02:01.05 ID:a17NgPNI0.net]
ググれってよく見るけど、最近はググった結果がQiitaとかで余計わからなくなる人いそう

863 名前:デフォルトの名無しさん (スプッッ Sd7f-7lrd) mailto:sage [2017/07/20(木) 00:26:00.45 ID:68uSpz6dd.net]
>>852
ぐぐった結果色々な方法がありすぎてどれが正しいか判断つかなくてここにきた

>>851
今は自習中
明日の業務で試してみます

864 名前:デフォルトの名無しさん (ワッチョイ 47e4-OcZC) mailto:sage [2017/07/20(木) 00:35:16.57 ID:am65me5o0.net]
色々は無いでしょ



865 名前:デフォルトの名無しさん (ワッチョイ dff0-E/h9) mailto:sage [2017/07/20(木) 11:41:47.84 ID:aRd+na0X0.net]
>>847
<windows.h>の中身を覗いてMSの片鱗を味わったがsmallに引っ掛かって1時間ほど時間を潰した
どうしてくれるんだ

866 名前:デフォルトの名無しさん (オッペケ Sr1b-3YgS) mailto:sage [2017/07/20(木) 19:54:56.95.net]
>>854
ひょっとしてまだやってるのか?
方法1:
1. 型をint (__stdcall *)(int,int) にする
2. GetProcAddressに渡す名前を"?AAA@@YGHHH@Z"の様な名前にする
 この名前はVisual Studio付属のコマンドで
 「dumpbin.exe /exports unko.dll」にて確認
 32ビットと64ビットでは名前が異なるので注意
方法2:
1. 型をint (__stdcall *)(int,int) にする
2. テキストファイルunko.defを作り
EXPORTS
(TAB)AAA
と書いてプロジェクトのプロパティのリンク設定でこのファイルをモジュール定義ファイルに指定する

867 名前:デフォルトの名無しさん (ササクッテロリ Sp1b-Iuq2) [2017/07/20(木) 23:54:34.71.net]
winapiの流儀とか見ていて吐き気を催す

868 名前:デフォルトの名無しさん (ワッチョイ 47e4-OcZC) mailto:sage [2017/07/21(金) 00:44:29.75.net]
WINAPIのtypedefされた型を元のプリミティブ型に書き直すのが趣味です

869 名前:デフォルトの名無しさん (ワッチョイ dfaa-E/h9) mailto:sage [2017/07/21(金) 00:47:34.17.net]
F12を叩きたいのか

870 名前:デフォルトの名無しさん (ワッチョイ df9f-2Ge4) mailto:sage [2017/07/21(金) 04:01:38.56.net]
extern "C" __declspec(dllexport) int __stdcall func(int,int){}
"?AAA@@YGHHH@Z"のような吐き気催す引数無くした名前だけ出力したい場合は extern "C" を前に付けると解決

871 名前:デフォルトの名無しさん (ワッチョイ a7b4-jxVo) mailto:sage [2017/07/21(金) 07:00:36.74.net]
qiita.com/YukiMiyatake/items/9c099041eab9ee8b349d
uniqu_ptrに頼って生歩使わないとか、
そんなだったらはじめからC++なんか使うな
アホはC++使うなって見本

>リソースを生で使うのは アンチデザパタです!
それがどーした。パターンでしか考えられないお前

872 名前:デフォルトの名無しさん (ワッチョイ a709-leQM) mailto:sage [2017/07/21(金) 07:42:02.40.net]
えらいねー。

873 名前:デフォルトの名無しさん (スッップ Sdff-AsiQ) mailto:sage [2017/07/21(金) 07:57:26.95.net]
所有権を持った人が自分でnew deleteするってのは確かにもうあり得ないでいいだろう。
それを「生ポインタを使わない」と表現するのは言い過ぎというか誤解を生む。

874 名前:デフォルトの名無しさん (ワッチョイ 274b-G5Pk) mailto:sage [2017/07/21(金) 08:46:52.32.net]
生保使う場面ってどんな時だろ?



875 名前:デフォルトの名無しさん (ドコグロ MM9f-tIP3) mailto:sage [2017/07/21(金) 08:47:22.86.net]
delete禁止構文欲しいぜ

876 名前:デフォルトの名無しさん (ワッチョイ a709-leQM) mailto:sage [2017/07/21(金) 08:49:46.05.net]
生ぽは、その場で文字列生成して関数に食わせる以外は参照だなぁ。

877 名前:デフォルトの名無しさん (ドコグロ MM9f-tIP3) mailto:sage [2017/07/21(金) 08:54:06.32.net]
>>865
nullptr受け取る可能性のある古臭い設計のコードを使うときじゃね?
自分で設計するときは使わん。

878 名前:デフォルトの名無しさん (スッップ Sdff-AsiQ) mailto:sage [2017/07/21(金) 10:34:18.10.net]
自分でnew deleteするなんて発想が無くなってきたから別にポインタ渡しに違和感ないけどな

879 名前:デフォルトの名無しさん (ワッチョイ a709-leQM) mailto:sage [2017/07/21(金) 11:14:02.61.net]
設計的にどうなんだろう。

880 名前:デフォルトの名無しさん (スッップ Sdff-AsiQ) mailto:sage [2017/07/21(金) 11:40:31.31.net]
生ポインタは誰が資源管理するのか曖昧になるからよくない、って主張は昔はあったと思う。
いまソースコードを検索してnew もdeleteも見当たらないという状況なら、そんなのはもう
忘れていいと思う。

881 名前:はちみつ餃子 ◆8X2XSCHEME (ワッチョイ df15-QK4i) mailto:sage [2017/07/21(金) 12:08:08.05.net]
例外が発生したときの後始末なんかもきちんとしようと考えると面倒くさいし、
スマートポインタは積極的に使うべきなんだろうな。

882 名前:デフォルトの名無しさん (ワッチョイ 47e4-OcZC) mailto:sage [2017/07/21(金) 12:40:47.73.net]
Qtみたいな自分でnewはするけど親オブジェクトがdeleteしてくれるようなものもある

883 名前:デフォルトの名無しさん (ワッチョイ df9f-2Ge4) mailto:sage [2017/07/21(金) 17:13:44.75 ID:7GF1vWDt0.net]
unique_ptrとか中身リファレンサだろうしリファレンサとかクラスで自己実装しちゃうけどね

884 名前:デフォルトの名無しさん (ワッチョイ df9f-2Ge4) mailto:sage [2017/07/21(金) 17:16:06.65 ID:7GF1vWDt0.net]
あ、unique_ptrは複製が効かないポインタか
shared_ptrと混同していたorz



885 名前:デフォルトの名無しさん (ワッチョイ df9f-2Ge4) mailto:sage [2017/07/21(金) 17:18:37.74 ID:7GF1vWDt0.net]
でもイラネな
unique_ptrでメンバ全部実装やるとアタマ狂うだろ多分

886 名前:デフォルトの名無しさん (ワッチョイ 67a2-fDNv) [2017/07/21(金) 18:24:31.33 ID:uK7tgvol0.net]
いらないとか使わないとか言いつつ、実のところ、理解できなくて使えません、って人を現場で何人も見てきたよ。

887 名前:デフォルトの名無しさん (ワンミングク MMbf-Y5fB) mailto:sage [2017/07/21(金) 18:39:26.01 ID:rSdKKkw+M.net]
うちのプロダクションコードほぼ100%はユニポだよ
リファレンスはそこらじゅうでもってるけど

888 名前:デフォルトの名無しさん (スッップ Sdff-AsiQ) mailto:sage [2017/07/21(金) 18:56:21.10 ID:SclDYwDCd.net]
>>877
なんでそんなやつを雇ったんだよ

889 名前:デフォルトの名無しさん (ワッチョイ 67a2-fDNv) [2017/07/21(金) 19:36:52.29 ID:uK7tgvol0.net]
>>879
人手不足なんじゃね?
俺が雇ったわけじゃないし、派遣さんとかだと法律上選べないでしょ。

890 名前:デフォルトの名無しさん (ワッチョイ ff32-3c2/) mailto:sage [2017/07/21(金) 21:20:11.09 ID:QkEYt5+b0.net]
誰も触れないけど、delete[] だよな?

まぁ、さておき、new使うか?
オレnew自体ほとんど使わないんだけど。。。
組み込み系だとやっぱ使うのかね?
メモリ管理なんて、スタック上とか、コンテナに任せちゃえば、いいとおもうんだ。

891 名前:デフォルトの名無しさん (ワッチョイ 47e4-OcZC) mailto:sage [2017/07/21(金) 21:43:07.75 ID:OjZ8KrLm0.net]
いいと思うよ
今のバージョンではnewを使わせるライブラリ以外で使う状況が無い

892 名前:デフォルトの名無しさん (スプッッ Sd7f-AsiQ) mailto:sage [2017/07/21(金) 22:02:26.89 ID:mLcSl7GWd.net]
make_uniqueとmake_sharedが出来てからはな

893 名前:デフォルトの名無しさん (ワッチョイ bfaf-BQa+) mailto:sage [2017/07/21(金) 22:10:51.61 ID:l1puV9v10.net]
templateでエラーが出された場合なんかでチェックするために
templateが展開された状態を見る手法みたいなのってありますかね?

894 名前:デフォルトの名無しさん (ワンミングク MMbf-Y5fB) mailto:sage [2017/07/21(金) 22:26:33.98 ID:rSdKKkw+M.net]
make_sharedってカスタムデリータいれられたっけ?



895 名前:デフォルトの名無しさん (ワッチョイ bfaf-BQa+) mailto:sage [2017/07/21(金) 22:50:57.29 ID:l1puV9v10.net]
Xcodeのビルドログ見たらほぼ>>884だったので>>884は取り下げます

896 名前:デフォルトの名無しさん (ワッチョイ df9f-2Ge4) mailto:sage [2017/07/21(金) 23:09:04.52 ID:7GF1vWDt0.net]
使い方は解るよ
ただ、自転車の補助輪みたいだなと

897 名前:デフォルトの名無しさん (ワッチョイ 47e4-OcZC) mailto:sage [2017/07/21(金) 23:15:13.65 ID:OjZ8KrLm0.net]
そういうのより
std::vector<int> v;
↑これを右クリックして展開されたコードを表示するようなことがしたい

898 名前:デフォルトの名無しさん (スップ Sd7f-7lrd) mailto:sage [2017/07/22(土) 17:58:14.35 ID:0MeMH5fDd.net]
>>857
わざわざサンクス
全く同じことしたけども吐き気催すような名前はついたままだったからdefファイルで対応することにしたよ

899 名前:デフォルトの名無しさん (ワッチョイ bfc5-/jiT) mailto:sage [2017/07/22(土) 19:30:56.71 ID:RGdGfASA0.net]
わざわざマングルされたメソッド名をエクスポートなどせずともファクトリーメソッドにすれば良いのでは…
ファクトリーメソッド自体はextern "C"で逝ける
DLL側のコードで確保したメモリはDLL側で開放する(プロセス本体側のコードで確保したメモリはプロセス本体側で開放する)
という点は気おつけねばならないが

と流れを読まずにレス

900 名前:デフォルトの名無しさん (ワッチョイ bfc5-/jiT) mailto:sage [2017/07/22(土) 20:49:40.35 ID:RGdGfASA0.net]
スマンorz
誤: ファクトリーメソッド
正: アブストラクトファクトリーメソッド

アブストラクトファクトリーメソッドなら具象クラスのコードは全部DLLL側になるので安心
オブジェクトのdeleteもDLLL側でやるように関数を設けてDLLLからエクスポートしてそれを使う

901 名前:デフォルトの名無しさん (ワッチョイ dff0-E/h9) mailto:sage [2017/07/22(土) 20:53:28 ]
[ここ壊れてます]

902 名前:.27 ID:XKQJiiwl0.net mailto: DLLLL? []
[ここ壊れてます]

903 名前:デフォルトの名無しさん (ブーイモ MMcf-fDNv) [2017/07/22(土) 20:59:49.34 ID:g3jBnlfdM.net]
どぅるるる

904 名前:デフォルトの名無しさん (ワッチョイ dff0-E/h9) mailto:sage [2017/07/22(土) 21:12:32.20 ID:XKQJiiwl0.net]
DLLゲームというものがあり、この四つの規則だけでDIIをDLLに変換できるか、というのがパズルの主旨である



905 名前:デフォルトの名無しさん (ワッチョイ 276f-hfaq) mailto:sage [2017/07/23(日) 02:54:24.55 ID:JReadhjR0.net]
new,new[],delete,delete[]を定義すれば、全てDLL側で実装出来るでしょう?

906 名前:デフォルトの名無しさん (スプッッ Sd7f-7lrd) mailto:sage [2017/07/23(日) 11:16:55.64 ID:T5oE3FpLd.net]
CPUやOSに依存したいコーディング難しいよう

907 名前:デフォルトの名無しさん (ワッチョイ df9f-2Ge4) mailto:sage [2017/07/23(日) 11:25:11.61 ID:Rkw6OP4p0.net]
依存姿態?

908 名前:デフォルトの名無しさん (スプッッ Sd7f-7lrd) mailto:sage [2017/07/23(日) 11:26:02.43 ID:T5oE3FpLd.net]
>>897
しないだった

909 名前:デフォルトの名無しさん (スッップ Sdff-z/ev) mailto:sage [2017/07/23(日) 12:41:00.33 ID:7fREas1Ld.net]
エンディアン
charのサイズ
負の数の表現方法

この辺がくせ者

910 名前:デフォルトの名無しさん (ワッチョイ a7c5-/jiT) mailto:sage [2017/07/23(日) 12:43:24.45 ID:Z5IwvI350.net]
符号付整数の右シフトとwrap aroundは未定義動作
だがあんま認

911 名前:ッしてる人が居ないという []
[ここ壊れてます]

912 名前:デフォルトの名無しさん (スッップ Sdff-z/ev) mailto:sage [2017/07/23(日) 12:47:13.35 ID:7fREas1Ld.net]
charが16bitや32bitだと、
8bit単位のデータを扱うのが非常に面倒
現実的にはパック形式も必要になるので

913 名前:デフォルトの名無しさん (スッップ Sdff-z/ev) mailto:sage [2017/07/23(日) 12:48:45.60 ID:7fREas1Ld.net]
負の数もいろいと
00...0はトラップ値だったり

914 名前:デフォルトの名無しさん (スッップ Sdff-z/ev) mailto:sage [2017/07/23(日) 12:49:28.11 ID:7fREas1Ld.net]
80...00の間違い



915 名前:デフォルトの名無しさん (スッップ Sdff-z/ev) mailto:sage [2017/07/23(日) 12:50:38.60 ID:7fREas1Ld.net]
near farとか
各種pragmaとかアラインメントとか

機種依存しないコードなんてのは実際には妄想

916 名前:デフォルトの名無しさん (スッップ Sdff-z/ev) mailto:sage [2017/07/23(日) 12:52:19.16 ID:7fREas1Ld.net]
使用可能リソースがそもそも違う

917 名前:デフォルトの名無しさん (ワッチョイ df33-9XI3) mailto:sage [2017/07/23(日) 14:01:31.88 ID:Ach+AE6n0.net]
stdintじゃいかんの?

918 名前:デフォルトの名無しさん (スッップ Sdff-z/ev) mailto:sage [2017/07/23(日) 14:22:24.82 ID:7fREas1Ld.net]
それで何が解決する?

919 名前:デフォルトの名無しさん (ワッチョイ 47e4-OcZC) mailto:sage [2017/07/23(日) 14:38:32.39 ID:+MmkkbFw0.net]
そういうのは必要な人がパッチを書けばいい
プロジェクトのメインの開発者は一般的なPC用CPUだけ想定していればいい

920 名前:デフォルトの名無しさん (スッップ Sdff-z/ev) mailto:sage [2017/07/23(日) 15:01:31.12 ID:7fREas1Ld.net]
組み込み機器を完全に無視した発言

921 名前:デフォルトの名無しさん (スプッッ Sd7f-7lrd) mailto:sage [2017/07/23(日) 16:52:13.50 ID:T5oE3FpLd.net]
エンディアンへの注意と
sizeof演算子への注意と
unsignedか否か
この辺を注意すればまずは良いんだね

922 名前:デフォルトの名無しさん (スッップ Sdff-z/ev) mailto:sage [2017/07/23(日) 16:57:12.36 ID:7fREas1Ld.net]
互換性のポリシーをはっきりすること
最近のPCだけならエンディアンやアラインメント、charのサイズやintのサイズは関係ないし
汎用なら>>899も考えないと

923 名前:デフォルトの名無しさん (スプッッ Sd7f-7lrd) mailto:sage [2017/07/23(日) 17:23:53.30 ID:T5oE3FpLd.net]
難しいな
色々なPCで動作させようとするのは

ところでdllでもsoでも使えるようなコード書きたいんだけども
呼び出し部分だけifdef切るのとソースコード自体わけるのとどちらが良いんだろ?

924 名前:デフォルトの名無しさん (ワッチョイ 276f-dw5s) mailto:sage [2017/07/23(日) 17:27:19.50 ID:71jKdlZw0.net]
dllと言えばdllの呼び出し口以外の内部で完結してるような関数ってどうやってテストするんだろう
俺それやったことねえや



925 名前:デフォルトの名無しさん (ワッチョイ 47e4-OcZC) mailto:sage [2017/07/23(日) 18:02:24.35 ID:+MmkkbFw0.net]
そもそもpublicでないものをテストする必要は無い

926 名前:デフォルトの名無しさん (ワッチョイ 474d-E/h9) mailto:sage [2017/07/23(日) 18:04:39.20 ID:7bD+iXj90.net]
日本は未テスト納品が当たり前だからな。

927 名前:デフォルトの名無しさん (ワッチョイ 276f-dw5s) mailto:sage [2017/07/23(日) 18:10:47.08 ID:71jKdlZw0.net]
>>914
パブリックでなくとも動作検証は必要ではないか?って思い始めた
関数単位でのテストが積み重なって一番大きなdllのテストに移る的な

設計上に多重継承が現れたんだけど多重継承って設計的にどう??

928 名前:デフォルトの名無しさん (ワッチョイ a77f-E/h9) mailto:sage [2017/07/23(日) 18:20:48.79 ID:1KmUXPg00.net]
テストの目的にもよるな。
仕様に対する保証という意味でならば当然公開しないものはテストの必要がないが、
開発するうえではモジュール毎にテストできた方が問題の発見に役立つし。
テストコードはスタティックリンクするのがお手軽なんじゃないかな。

929 名前:デフォルトの名無しさん (ワッチョイ 47e4-OcZC) mailto:sage [2017/07/23(日) 18:39:25.88 ID:+MmkkbFw0.net]
>>916
多重継承は気をつけて使えば問題ない

930 名前:デフォルトの名無しさん (ワッチョイ 276f-dw5s) mailto:sage [2017/07/23(日) 18:52:38.36 ID:71jKdlZw0.net]
>>917
俺の意図的にはそんな感じだね
関数ごとにテストして品質を担保する的な
ただdll内で呼ばれている関数を静的リンクできるん??

>>918
気を付けるのが難しそう
よくよく考えたら多重継承ではなくクラスの中でクラスを定義する方が自然だった

931 名前:デフォルトの名無しさん (ワンミングク MMbf-Y5fB) mailto:sage [2017/07/23(日) 19:04:55.28 ID:b+Hb+B30M.net]
継承をextendとして使う場合は多重継承しやいほうがいい

932 名前:デフォルトの名無しさん (ワッチョイ a77f-E/h9) mailto:sage [2017/07/23(日) 19:26:40.53 ID:1KmUXPg00.net]
>>919
>ただdll内で呼ばれている関数を静的リンクできるん??

objで取り込むかlibかソースか、やり方はいろいろあるだろうけど普通にできるでそ。

933 名前:デフォルトの名無しさん (ワッチョイ a7c5-/jiT) mailto:sage [2017/07/23(日) 19:32:13.78 ID:Z5IwvI350.net]
書いたらテスト、これ常識
関数単位ぐらいの細かい単体テストは、呼び出し元込みの結合テストで境界条件を尽くせる(それぐらい簡単な関数である
という論理的見通しがある場合のみ省略できる
>>914は常に書きっぱなしでテストしないと宣言しているに等しい

>>919
dll内の関数のテストはソースファイルを単体テスト用のプロジェクトと共有して単体テスト用のプロジェクトでやるとか、
dll内にテストコードを埋め込んでテストしてテストが終わったら#if/#endifで切り離す
みたいな

934 名前:デフォルトの名無しさん (スプッッ Sd7f-7lrd) mailto:sage [2017/07/23(日) 19:47:00.96 ID:T5oE3FpLd.net]
単体テストってGoogleテストとかのドライバ的なやり方をさしてんのか?
それともvisual studioに機能としてついてるやつをいってんのか?



935 名前:デフォルトの名無しさん (オッペケ Sr1b-3YgS) mailto:sage [2017/07/23(日) 20:14:53.55 ID:H7crLcrqr.net]
>>900
>符号付整数の右シフトと (中略) は未定義動作
右?
それは規格のどこに書いてあるのですか?

936 名前:デフォルトの名無しさん (スプッッ Sd7f-7lrd) mailto:sage [2017/07/23(日) 20:16:43.64 ID:T5oE3FpLd.net]
符号つき整数は論理シフトか算術シフトかコンパイラ依存ってだけの話でないの

937 名前:デフォルトの名無しさん (ワッチョイ a7c5-/jiT) mailto:sage [2017/07/23(日) 20:22:46.29 ID:Z5IwvI350.net]
不肖私めが述べさせていただきまするが、
Googleテスト(のプロジェクト)と本番用DLLプロジェクトのソースコード共有は両立できる
(ソースコード共有はテストドライバというよりはビルドシステム側(IDEやmake)が持っている機能なので、
Visual Studioの単体テストプロジェクトは使ったこと無いから知らん

なお、書いたらテスト、とは>>922で書いたが、書きなおしていないコードのテストまで毎晩やるか否かは開発手法による
エクストリームプログラミングなんかだと多少手間をかけてでもGoogleテストで全テストできるようにすねきだが
古式ゆかしいVカーブモデルとかだと「下流行程のテストで検証済みのものを上流行程のテストに上げる」という建前なので、
出戻りのリスクと引き換えに、下流行程でのテストをそう繰り返しはしないからテストドライバを使うまでもない
という考えも有り得る。

まさかとは思うが、テストドライバを使うか否かで適切なテストコードを書けたり書けなかったりするとか飯田さんよね?

938 名前:デフォルトの名無しさん (ワッチョイ 474d-E/h9) mailto:sage [2017/07/23(日) 20:27:48.89 ID:7bD+iXj90.net]
単体テスト、レグレッションテストしない奴は信用できない。

939 名前:デフォルトの名無しさん (ワンミングク MMbf-Y5fB) mailto:sage [2017/07/23(日) 20:40:09.17 ID:b+Hb+B30M.net]
リグレッションテストが通ってるから単体はおろそかでいいか
→単体テストがないせいでリグレッションが落ちた理由がわからない(´・ω・`)
→よし単体テスト書くか!あれ?バグ発見!直すとリグレッションの期待値変わるけどまぁしばらくは仕方ないか
→あれ?久しぶりにリグレッションテストの結果見るとすげー値が変わってる…
→リグレッションテストメンテするか…

この輪廻から解脱できません、どうしたら成仏できますでしょうか

940 名前:デフォルトの名無しさん (ワッチョイ 47e4-OcZC) mailto:sage [2017/07/23(日) 20:43:41.49 ID:+MmkkbFw0.net]
>>928
テスト駆動開発の理論を遵守して書く

941 名前:デフォルトの名無しさん (ワッチョイ df11-efHF) mailto:sage [2017/07/23(日) 20:57:27.35 ID:M0TZP5Vd0.net]
>>923
それはテストのやり方でしょ
ひょっとしてテストの種別(単体テスト、結合テスト、総合テスト... まあ名前や内容は色々違うけど)とテストのやり方の区別がついてないの?

942 名前:デフォルトの名無しさん (ワッチョイ 474d-E/h9) mailto:sage [2017/07/23(日) 21:08:20.70 ID:7bD+iXj90.net]
なるほど。日本のSEは二種、基本情報処理すら受からないからな。
工程に入ってなくて当然だな。

943 名前:デフォルトの名無しさん (オッペケ Sr1b-3YgS) mailto:sage [2017/07/23(日) 21:14:38.25 ID:H7crLcrqr.net]
>>925
それは未定義動作とは言わないし、
未定義動作を起こす左シフトを差し置いて右シフトが出てくるのは
何かおかしいのではないかという気がしてならない

944 名前:デフォルトの名無しさん (ワッチョイ 474d-E/h9) mailto:sage [2017/07/23(日) 21:19:26.67 ID:7bD+iXj90.net]
掛け算、割り算が糞遅いアセンブラならともかく、Cで符号付きをシフトする用途はなに?



945 名前:デフォルトの名無しさん (ワッチョイ 276f-dw5s) mailto:sage [2017/07/23(日) 21:22:45.19 ID:71jKdlZw0.net]
>>922
質問したの俺だけど別の人が書き込んでるね

テストの手法として俺は悩んでる
DLL内の呼び出されるような関数をどうやってテストすれば良いのかと

ドライバみたいなの作っても動かせるのは呼び出し口だけで合って
呼び出し口でいくら網羅テストしてもそれは呼び出し口のテストだしなぁーって

dll内にテストコード書き込むのことで実現できると思ったけどもそれはそれで汚いなって思ったから、
何かしら直接呼び出すことできないかなって聞いてた

そう色々と考えていたけど
ただ単に関数の掛かれているcppファイルを取り込んだexeを作れば良いだけか?って思い始めた

946 名前:デフォルトの名無しさん (オッペケ Sr1b-3YgS) mailto:sage [2017/07/23(日) 21:32:37.27 ID:H7crLcrqr.net]
この他人の回答を読まないコミュ障こそがこのスレの醍醐味

947 名前:デフォルトの名無しさん (ワッチョイ 276f-dw5s) mailto:sage [2017/07/23(日) 21:38:41.45 ID:71jKdlZw0.net]
>>926
俺が聞きたかったのはまさにその最後のだな
そのまさかです
そんなレベルなんですよ・・・

948 名前:デフォルトの名無しさん (オッペケ Sr1b-3YgS) mailto:sage [2017/07/23(日) 21:41:07.86 ID:H7crLcrqr.net]
>>933
特定のビットを取り出したり切り貼りしたい時でないのか
ビット操作したい時に掛け算割り算を持ち出す方が変人かと

949 名前:デフォルトの名無しさん (ワッチョイ a7c5-/jiT) mailto:sage [2017/07/23(日) 21:52:14.22 ID:Z5IwvI350.net]
>>932
タダで手に入るn3337.pdfの§5.8によると確かに
 - 符号付整数の左シフトの結果は representable in the result type (値域内)でない場合未定義動作
 - 符号付整数の右シフトの結果は処理系依存
と書いてあったわスマン;

ちな漏れの認識では{処理系依存}⊂{未定義動作}
根拠はJISの未定義動作の定義による…

950 名前:デフォルトの名無しさん (ワッチョイ a7c5-/jiT) mailto:sage [2017/07/23(日) 21:59:51.68 ID:Z5IwvI350.net]
いやすまん>>938の末尾2行撤回
これは前に認識を改めたんだった;
> 未定義の動作に対して,その状況を無視して予測不可能な結果を返してもよい。翻訳時又はプログラム実行時に,文書化された,環境に特有な方法で処理してもよい
であって、未定義動作の検出やエラー処理の方法はともかく、未定義動作自体はどこまでいっても未定義動作

951 名前:デフォルトの名無しさん (ワッチョイ 474d-E/h9) mailto:sage [2017/07/23(日) 22:47:02.24 ID:7bD+iXj90.net]
>>937
回答になってないし、変人はおまえだよ。算術シフトが何か知らないでレスすんな。

952 名前:デフォルトの名無しさん (オッペケ Sr1b-3YgS) mailto:sage [2017/07/23(日) 23:05:50.01 ID:H7crLcrqr.net]
この自分の質問の日本語さえ読めないが故の意味不明なレス
それがこのスレの醍醐味

953 名前:デフォルトの名無しさん (ワッチョイ 474d-E/h9) mailto:sage [2017/07/23(日) 23:10:22.36 ID:7bD+iXj90.net]
>>941
おまえのスキルはとても他人の質問に回答するレベルではない。しかもコミュ障ときてる。

954 名前:デフォルトの名無しさん (ドコグロ MM9f-efHF) mailto:sage [2017/07/24(月) 08:15:31.13 ID:KtTsv21zM.net]
>>937
> 特定のビットを取り出したり切り貼りしたい
符号付きでやってるならこのスレに書き込むのはやめた方がいいレベル



955 名前:デフォルトの名無しさん (オッペケ Sr1b-3YgS) mailto:sage [2017/07/24(月) 17:14:10.91 ID:mYhfbnvOr.net]
もちろん符号付きです^^
流石に最上位ビットまで使う場面では使わないが

956 名前:デフォルトの名無しさん (スップ Sd7f-7lrd) mailto:sage [2017/07/24(月) 22:14:06.75 ID:OsdOk4+1d.net]
char X[26]={'a',,,,,,,,,,'z'};
char* Y ="jmdjpgtmdajptwmeg";

for(int i=0;i<26;i++) {
for(int j=0;j<26;j++){
if( X[i]== Y[j] )
処理



文字検索して一致したら処理みたいにしたいのだけどtrueにならなくて困ってます
一文字比較はできない??

957 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdff-84fd) mailto:sage [2017/07/24(月) 22:23:42.38 ID:iUqnpKPOd.net]
>>945
これまでのすべての文字が一致しているかを表すフラグ変数を使え。

958 名前:デフォルトの名無しさん (スップ Sd7f-7lrd) mailto:sage [2017/07/24(月) 22:27:59.85 ID:OsdOk4+1d.net]
>>946
すまない理解ができん...

959 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdff-84fd) mailto:sage [2017/07/24(月) 22:36:31.42 ID:iUqnpKPOd.net]
>>945
==と=を間違っているとか、
大文字小文字を間違っているとか、
全角半角を間違っているとか、
理由は色々考えられる。

960 名前:デフォルトの名無しさん (スップ Sd7f-7lrd) mailto:sage [2017/07/24(月) 22:37:56.92 ID:OsdOk4+1d.net]
>>948
==は問題なし
大文字小文字も双方出力して同じものが出力されてるのも確認した
全角半角はそこは上に同じ

わけわかめ

961 名前:デフォルトの名無しさん (ワッチョイ dfaa-E/h9) mailto:sage [2017/07/24(月) 22:40:41.63 ID:zHcIYvyR0.net]
>>945
trueにならないってどういう意味?
一度もヒットしないの?

962 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdff-84fd) mailto:sage [2017/07/24(月) 22:42:58.10 ID:iUqnpKPOd.net]
iとj

963 名前:デフォルトの名無しさん (スプッッ Sd7f-7lrd) mailto:sage [2017/07/24(月) 22:44:21.90 ID:/CxPJ7M4d.net]
>>950
出力すると
ja
jb
jc
.....
jj
jk
ってのは出るのだけど==の処理に入らない

964 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdff-84fd) mailto:sage [2017/07/24(月) 22:46:11.09 ID:iUqnpKPOd.net]
蝉コロン



965 名前:デフォルトの名無しさん (ワッチョイ df32-QK4i) [2017/07/24(月) 22:48:05.86 ID:yuT7rhOA0.net]
二重ループにする必要ある?

966 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdff-84fd) mailto:sage [2017/07/24(月) 22:56:41.50 ID:iUqnpKPOd.net]
if (...);←

967 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdff-84fd) mailto:sage [2017/07/24(月) 23:00:33.31 ID:iUqnpKPOd.net]
スマホ使ってるなら、テキストファイルにしてSDカードにファイルを取り込んで、ideoneに上げてくれ。

968 名前:デフォルトの名無しさん (オッペケ Sr1b-3YgS) mailto:sage [2017/07/24(月) 23:17:23.75 ID:mYhfbnvOr.net]
「ス マホ使ってるなら、テキストファイルにしてS Dカードにファイルを取り込んで、 ideoneに上げてくれ」

失礼ながら、何だか復唱したくなった

969 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdff-84fd) mailto:sage [2017/07/24(月) 23:27:02.86 ID:iUqnpKPOd.net]
PCのテキストをスマホにコピペ出来ない情報弱者が居るから、ていねいに説明したまで。

970 名前:デフォルトの名無しさん (ワッチョイ dfaa-E/h9) mailto:sage [2017/07/24(月) 23:28:31.51 ID:zHcIYvyR0.net]
どこにスマホの必要が?

971 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdff-84fd) mailto:sage [2017/07/24(月) 23:30:40.46 ID:iUqnpKPOd.net]
>>945みたいな汚いコードをパソコンで書くヤツはいないっしょ。絶対スマホだよ。

972 名前:デフォルトの名無しさん (スップ Sdff-7lrd) mailto:sage [2017/07/25(火) 11:24:31.23 ID:sTL1greYd.net]
>>954
二重ループにしない方法あるのかな??
計算量とかも考えて済むならそうしたい

>>955
これでした

973 名前:デフォルトの名無しさん (ドコグロ MM9f-tIP3) mailto:sage [2017/07/25(火) 12:18:12.57 ID:TTkvk/JeM.net]
>>961
std::map使え。

974 名前:デフォルトの名無しさん (ドコグロ MM9f-efHF) mailto:sage [2017/07/25(火) 20:17:26.54 ID:KNlosRFTM.net]
>>961
そもそも何をしたいのかよくわからんのは俺だけ?



975 名前:デフォルトの名無しさん (ワッチョイ 679a-z/ev) mailto:sage [2017/07/25(火) 21:23:57.34 ID:0WJY7+7Z0.net]
>>962
文字にmap
アホの典型

976 名前:デフォルトの名無しさん (ワッチョイ ff32-3c2/) mailto:sage [2017/07/25(火) 23:21:03.65 ID:reUD2K+v0.net]
diffとか、レーベンシュタイン距離はかるとか、めんどくさいことするでなければ、str系の関数つかうんじゃね?普通
strcmpとか、strspnとか。

977 名前:デフォルトの名無しさん (ワッチョイ 474d-E/h9) mailto:sage [2017/07/25(火) 23:43:16.64 ID:zpZ2WILs0.net]
std::stringも使ってあげて

978 名前:デフォルトの名無しさん (ワッチョイ df9f-2Ge4) mailto:sage [2017/07/26(水) 00:14:40.89 ID:BELJl12W0.net]
片方a〜zまで順序揃っているからequal_rangeで普通にイケそうだけど

979 名前:デフォルトの名無しさん (ドコグロ MMff-tIP3) mailto:sage [2017/07/26(水) 09:11:32.50 ID:Z6NFAYLOM.net]
>>964
なんで?

980 名前:デフォルトの名無しさん (スプッッ Sd7f-7lrd) mailto:sage [2017/07/26(水) 18:04:12.49 ID:n/TvQiRnd.net]
>>965
strcmpって文字列にたいしてよね?

981 名前:デフォルトの名無しさん (ワンミングク MMbf-Y5fB) mailto:sage [2017/07/26(水) 18:57:41.27 ID:tvexcE8JM.net]
>>945
ideone.com/Xto2xp

982 名前:デフォルトの名無しさん (ワッチョイ df9f-2Ge4) mailto:sage [2017/07/26(水) 19:15:56.17 ID:BELJl12W0.net]
何コレすごくキモチワルイ

983 名前:デフォルトの名無しさん (ワッチョイ ff32-3c2/) mailto:sage [2017/07/26(水) 20:34:16.84 ID:z7xwmnWB0.net]
>>969
ですね。このサンプルは集合をチェックしているみたいだし、strspn系統使うのが簡単だとは思うけど。
いずれにしても、Xの末尾に/0あった方が吉ですね。

984 名前:デフォルトの名無しさん (ワッチョイ 87e3-Y5fB) mailto:sage [2017/07/26(水) 23:02:56.23 ID:OlHQ9vUk0.net]
>>971
なんで?



985 名前:デフォルトの名無しさん (スプッッ Sd2a-yaaN) mailto:sage [2017/07/27(木) 01:52:35.67 ID:dWT6t2a8d.net]
unsigned charの値をsigned charに移したい
ただ移す値はunsignedの1バイトを4ビットずつに区切って表現される値
130って値があるのならchar型には1000と0010の値をそれぞれ1バイトとして格納したい
charを見ればi番目に8、i+1番目に2が入る形
こんなことするならsprintfかな??

986 名前:デフォルトの名無しさん (ワッチョイ 7b09-OP0G) mailto:sage [2017/07/27(木) 01:54:43.98 ID:P9NETJAS0.net]
ビット演算しろよ。

987 名前:デフォルトの名無しさん (ワッチョイ 0fe4-jgbY) mailto:sage [2017/07/27(木) 01:58:14.37 ID:Fr5QaIId0.net]
そんな基礎的すぎる処理を人に聞くな

988 名前:デフォルトの名無しさん (ドコグロ MM8a-gqKx) mailto:sage [2017/07/27(木) 07:27:45.64 ID:P1js1uXhM.net]
>>974
少なくとも
> こんなことするならsprintfかな??
はないな

989 名前:デフォルトの名無しさん (ワッチョイ f39a-crdR) mailto:sage [2017/07/27(木) 07:34:20.55 ID:tCxrViSf0.net]
charは8bit前提でいいのか?

990 名前:デフォルトの名無しさん (ワッチョイ 8a89-mrbm) mailto:sage [2017/07/27(木) 07:39:08.55 ID:IgWBj8ON0.net]
>>978
問題を無駄にややこしくするなよ。

991 名前:デフォルトの名無しさん (ワッチョイ f39a-crdR) mailto:sage [2017/07/27(木) 07:40:36.50 ID:tCxrViSf0.net]
最近charが16bitの環境を使ったからつい

992 名前:デフォルトの名無しさん (ワッチョイ 6a9f-ns/O) mailto:sage [2017/07/27(木) 07:59:04.16 ID:rWyXQzMv0.net]
7ビットにパリティが1ビット

993 名前:デフォルトの名無しさん (ドコグロ MM8a-gqKx) mailto:sage [2017/07/27(木) 08:36:39.28 ID:P1js1uXhM.net]
>>981
64bit に 8bit の ECC とか言われたらついていけなくなるんだからやめとき

994 名前:デフォルトの名無しさん (ブーイモ MMd6-PRKf) [2017/07/27(木) 19:19:41.26 ID:/VCkXAgyM.net]
>>980
なにそのTIのDSP



995 名前:デフォルトの名無しさん (スッップ Sd8a-crdR) mailto:sage [2017/07/27(木) 19:24:23.50 ID:F0lzbPxld.net]
>>983
良くおわかりで

996 名前:デフォルトの名無しさん (ペラペラ SDb6-ZO1u) mailto:sage [2017/07/28(金) 06:55:18.07 ID:mjoh45CgD.net]


997 名前:デフォルトの名無しさん (ペラペラ SD2a-ZO1u) mailto:sage [2017/07/28(金) 21:15:49.27 ID:aEgnwK31D.net]


998 名前:デフォルトの名無しさん (ワッチョイ f39a-crdR) mailto:sage [2017/07/28(金) 23:12:30.76 ID:d5LZ2kks0.net]


999 名前:デフォルトの名無しさん (ワッチョイ 7346-PRKf) [2017/07/29(土) 00:21:09.72 ID:lS34gLdW0.net]
仙一

1000 名前:デフォルトの名無しさん (ワッチョイ 976f-ZO1u) mailto:sage [2017/07/29(土) 05:44:39.91 ID:fSkalPfO0.net]
えっ

1001 名前:デフォルトの名無しさん (ワッチョイ 6a32-ZO1u) [2017/07/29(土) 07:39:00.75 ID:q+2MbaQ80.net]
なにっ

1002 名前:デフォルトの名無しさん (ブーイモ MMbf-ov1m) mailto:sage [2017/07/29(土) 12:21:39.86 ID:klnxojNUM.net]
次スレmevius.2ch.net/test/read.cgi/tech/1501295308/

1003 名前:デフォルトの名無しさん (ワッチョイ 738e-PRKf) [2017/07/29(土) 16:04:09.21 ID:mj0H/MXI0.net]
>>991


1004 名前:デフォルトの名無しさん (ワッチョイ 976f-ZO1u) mailto:sage [2017/07/29(土) 20:09:55.91 ID:vcBWoe5a0.net]
>>991




1005 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd8a-fKJy) mailto:age [2017/07/29(土) 21:58:36.04 ID:Y9LsTA7nd.net]
埋め立てふせ

1006 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd8a-fKJy) mailto:sage [2017/07/29(土) 21:59:10.94 ID:Y9LsTA7nd.net]
埋めまーす。

1007 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd8a-fKJy) mailto:sage [2017/07/29(土) 22:01:20.68 ID:Y9LsTA7nd.net]
埋め星

1008 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd8a-fKJy) mailto:sage [2017/07/29(土) 22:03:11.75 ID:Y9LsTA7nd.net]
埋まるちゃん

1009 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd8a-fKJy) mailto:sage [2017/07/29(土) 22:04:40.24 ID:Y9LsTA7nd.net]
「最後に言い残したことはないか?」

1010 名前:デフォルトの名無しさん (オッペケ Srb3-Ibwl) mailto:sage [2017/07/29(土) 22:05:00.29 ID:E0esoNX5r.net]
template d<0>J<0>(); // 明示的インスタンス化

1011 名前:デフォルトの名無しさん (アウアウウー Sa9f-Gwu1) [2017/07/29(土) 22:05:20.80 ID:46B+r2PEa.net]
梅ッシュ

1012 名前:デフォルトの名無しさん (ワッチョイ 0f4d-V1Wy) mailto:sage [2017/07/29(土) 22:06:46.19 ID:gp3BUyJn0.net]
むしろ混乱する。

1013 名前:1001 [Over 1000 Thread.net]
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
life time: 120日 13時間 18分 57秒

1014 名前:過去ログ ★ [[過去ログ]]
■ このスレッドは過去ログ倉庫に格納されています








[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

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

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