[過去ログ] C++相談室 part130 [無断転載禁止]©2ch.net (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
783(1): (ワッチョイ 955a-qt4g) 2017/07/16(日)16:21 ID:CxpOV7IS0(1/2) AAS
const が付いてるからじゃね
784: (ワッチョイ 0aa6-1m9k) 2017/07/16(日)17:06 ID:o1PqrRM30(2/3) AAS
>>783
constなintなのにconst T&のconst関係なくない?
それにT(&)[4]の方がより細かい気がする
785: (ワッチョイ 955a-qt4g) 2017/07/16(日)18:31 ID:CxpOV7IS0(2/2) AAS
struct A<T (&)[4]> は、
struct A<const T &> の特殊化じゃないんじゃね?
786: (ワッチョイ f146-I8+U) 2017/07/16(日)18:46 ID:TI5o59vg0(1/2) AAS
テンプレート引数型を明示してるのに、その型に一意にマッチする定義がないからでしょ。
どっちが近いかを決定するような優先順位の規定がないので ambiguous になる。
compiler からしてみたら仕様がなければ勝手に判断できないって話。
787: 片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd70-qcL/) 2017/07/16(日)18:49 ID:8ivnKhmqd(1) AAS
int (&)[4]の左側にconst付ける意味あんの?
788: (オッペケ Srea-1m9k) 2017/07/16(日)19:11 ID:0XlWr73/r(1/2) AAS
>どっちが近いかを決定するような優先順位の規定がない
何故か規格を読まない奴ほど自信満々に嘘をつく法則
789(1): (オッペケ Srea-1m9k) 2017/07/16(日)19:21 ID:0XlWr73/r(2/2) AAS
規格の8.3.4p1により配列のconstは要素のconstと等価なので、A<int const (&)[4]>はA<T const &>に適合する
790(1): (ワッチョイ f6e4-PXrN) 2017/07/16(日)19:35 ID:F/PpVxkG0(1/2) AAS
C++14まででいいので全文日本語の規格書くれよ
791: (ワッチョイ 0aa6-1m9k) 2017/07/16(日)20:01 ID:o1PqrRM30(3/3) AAS
優先順位ルールよくわからんっす
792: (スプッッ Sd2a-aKa0) 2017/07/16(日)20:21 ID:5frVCgipd(1) AAS
>>781
vbやったことないからなるほどよくわからん...
vb6.0についてとか全然書籍とかもないから本当に困る
793: (ワッチョイ f6e4-PXrN) 2017/07/16(日)20:26 ID:F/PpVxkG0(2/2) AAS
古代言語の解読は自己責任だ
細かいこと考えたくなければ標準入出力で繋げばいい
794: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ d015-S4qQ) 2017/07/16(日)20:41 ID:tihnLl5v0(1) AAS
>>790
JIS に働きかけてくれ
795: (ワッチョイ f146-I8+U) 2017/07/16(日)21:06 ID:TI5o59vg0(2/2) AAS
>>789
ありがとう、探してくれて。
796: (オッペケ Sr10-1m9k) 2017/07/16(日)21:31 ID:Z5uaiz2pr(1) AAS
テンプレートの部分順序は規格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
797: (ワッチョイ 1a42-Z+b3) 2017/07/17(月)06:43 ID:WTwWKmZ80(1/2) AAS
>>673
プロパティってのはオブジェクトの状態の抽象化
例えば、コンテナのlistのsizeはコンテナとしての状態
sizeは要素数に対して定数時間で取得可能って条件があるからメンバ変数としてsizeを持ってる
そうでなければ線形時間になってしまう
vectorは大抵の場合、確保したメモリの始端と終端、要素の終端を表すポインタをメンバ変数に持つけど
ポインタ演算で定数時間で求められるから、sizeのメンバ変数は持っていない
emptyも状態、listもvectorも空を表すbool型のメンバ変数は持たないけど
コンテナとしてemptyかどうかの状態を取得できるわけで、メンバ変数と対とはなっていない
つまり、クラス設計上必要なオブジェクトとしての状態のget/setが目的であって
省5
798(1): (オッペケ Sr10-1m9k) 2017/07/17(月)09:28 ID:ESb998SRr(1/2) AAS
>エンディアンは気にしないw
物は言い様で、本当は触ったことが無いのであった
AIXやSPARC使いに「インテル能乙」と揶揄されても仕方ない
799: (ワッチョイ 1a42-Z+b3) 2017/07/17(月)09:43 ID:WTwWKmZ80(2/2) AAS
>>798
1つの方法を示しただけで、必要なら気にしたら良いってレベルの話なんだけどな
質問者も完全な解決策ではなくアイディアを求めているだろうし
800: (ワッチョイ 3eaf-iUs+) 2017/07/17(月)09:52 ID:NM7AtMtK0(1) AAS
エクスプレッションテンプレートを使った二項演算子のオーバーロードって
・グローバル空間全体
・特定の名前空間で定義して、使う部分ではその名前空間を指定
のどちらかになるということになりますか?
つまり通常のクラスの演算子オーバーロードのようにクラス単位に限定する方法はなさそうです?
801: (オッペケ Sr10-1m9k) 2017/07/17(月)22:32 ID:ESb998SRr(2/2) AAS
通常のクラスの例であるstd::complex<>は二項演算子を使う部分で名前空間など指定しなくても良いし
そのオーバーロード関数はクラスではなくstd名前空間に限定している
式テンプレートでそれ以上のことが必要なのだろうか
802(1): (ワッチョイ 7011-MRQN) 2017/07/18(火)00:26 ID:2CukONSS0(1/2) AAS
名前空間で定義して、ETで使うクラス全て特定の名前空間内で定義するか、
ライブラリが提供する型以外を許容しないなら、演算子を各クラス内に定義するだけでいい
ETと協調しうるあらゆる型も許容するために
template <typename T, typename U>
fugaexpression<T, U, ...> operator +(T t, U u);
と書きたいのなら、演算子を名前空間内に書くとか
enable_ifで条件に合わないものを弾くなりしないといけない
803: (ワッチョイ 7011-MRQN) 2017/07/18(火)12:37 ID:2CukONSS0(2/2) AAS
訂正
ETだから参照でないといかんね
operator +(T &&t, U &&u)
804: (ワッチョイ 3eaf-iUs+) 2017/07/18(火)12:44 ID:VOd4+Wz60(1) AAS
なんとなくわかりました
やってみます
805: (ブーイモ MMfd-I8+U) 2017/07/18(火)12:53 ID:CTdksPCiM(1) AAS
式テンプレート作るのと、右辺値参照モノをしっかり作り込むのとどちらが良さげ?
806(2): (スプッッ Sd9e-aKa0) 2017/07/18(火)14:06 ID:C2L8wOjPd(1) AAS
上でVB6.0について質問してるものだけどさらに重ねて質問させてください
VB6.0→C++に通信してる箇所が存在していてそこがstring→char※になってる
これって文字化けしないの??
807: (スップ Sd02-y/ao) 2017/07/18(火)15:57 ID:LmZYlO3Ud(1) AAS
>>806
さあ?
"まみむめも"でも試しに入力してみれば?
808(1): (アウアウエー Sa66-C5HA) 2017/07/19(水)07:57 ID:4WYjcaP8a(1) AAS
>>806
コード内で文字列生成して表示したらエンコードが違って文字化けとかあるけど、外部から文字列受け取ってただ表示するだけならエンコードとか関係ないから問題は無い。
(ただのバイト列)
外部から文字列受け取ってそれを加工するとかだと問題ある時はあるが。
809: (ワッチョイ 3eaf-iUs+) 2017/07/19(水)14:22 ID:cdBaS5I50(1) AAS
804ですが
>>802
>名前空間で定義して、ETで使うクラス全て特定の名前空間内で定義する
これでできました。
ありがとうございます。
810(3): (スプッッ Sd9e-aKa0) 2017/07/19(水)20:36 ID:ogeQAtV7d(1/13) AAS
>>808
サンクス!!!
いじらないことにした
明示的なdllの呼び出しも出来なくて震えてます
Getprocaddressが出来ずに進まないです
何か間違っている箇所があれば教えてほしいです
dllは同階層に配置してます
あとdll側の宣言でWINAPIがあるパターンとないパターンを見るのだけども
必要ないってことはあり得るのでしょうか
dll側
省12
811(1): 片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/) 2017/07/19(水)20:49 ID:MaD+cEa1d(1/25) AAS
>>810
importとexportを間違ってるよ。
812: (スプッッ Sd9e-aKa0) 2017/07/19(水)21:54 ID:ogeQAtV7d(2/13) AAS
>>811
あ ごめん
そこはexportってしてるから問題ない
スマホで書き込む際に間違えただけです
813: 片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/) 2017/07/19(水)22:02 ID:MaD+cEa1d(2/25) AAS
まずは、出来たdllをダンプしてみな。関数型にはWINAPIが必要だよ。
814(1): (オッペケ Srea-hJ3a) 2017/07/19(水)22:06 ID:QocMLB2Ar(1) AAS
>>810
>間違っている箇所があれば教えてほしいです
ほれ
1. (int (*)(int,int))
2. GetProcAddress(hDLL, "AAA")
815(1): 片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/) 2017/07/19(水)22:06 ID:MaD+cEa1d(3/25) AAS
こういう場合は関数ポインタ型をtypedefしたら楽だよ。
816: (スプッッ Sd9e-aKa0) 2017/07/19(水)22:10 ID:ogeQAtV7d(3/13) AAS
>>814
ここ間違ってる?
dll側の関数の引数に合わせてるのと、getprocaddressを使って関数呼び出してるだけだから問題ないと思ってるのだけども
>>815
それって
>>810
>間違っている箇所があれば教えてほしいです
ほれ
これをint (*)(int,int)を定義するってことよね?
817: 片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/) 2017/07/19(水)22:12 ID:MaD+cEa1d(4/25) AAS
typedef int (WINAPI *MYFUNC)(int, int);
818: (スプッッ Sd9e-aKa0) 2017/07/19(水)22:13 ID:ogeQAtV7d(4/13) AAS
__stdcallがないってことか!!!!!
819: 片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/) 2017/07/19(水)22:14 ID:MaD+cEa1d(5/25) AAS
dumpbinというダンプツールがあるから、それを使ってdllの情報をダンプする。
820(1): 片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/) 2017/07/19(水)22:16 ID:MaD+cEa1d(6/25) AAS
どうやってdllを作った? 初心者だから作り方間違ってる可能性がある。
821(1): (スプッッ Sd9e-aKa0) 2017/07/19(水)22:18 ID:ogeQAtV7d(5/13) AAS
>>820
ダンプするってのがほぼほぼ理解できてない
visualstudioでdll選んで空のプロジェクトを選んだ
それでcpp追加してその内容にさっきの構文とおまじないのwinmainを書いてビルド
822: 片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/) 2017/07/19(水)22:21 ID:MaD+cEa1d(7/25) AAS
>>821
dllの場合はWinMain要らない。ダンプは専用のコマンドプロンプトで行う。ってことは、コマンドプロンプトの使い方も勉強しないといけない。
823(1): 片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/) 2017/07/19(水)22:22 ID:MaD+cEa1d(8/25) AAS
DLLの場合はDllMainだね。
824: (スプッッ Sd9e-aKa0) 2017/07/19(水)22:25 ID:ogeQAtV7d(6/13) AAS
>>823
あ それか
落ちてる理由はそこな気がしてきた...
825(1): 片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/) 2017/07/19(水)22:25 ID:MaD+cEa1d(9/25) AAS
あっ、それからC++からC言語の関数を定義・参照するにはextern "C"を付けないといけない。
826: 片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/) 2017/07/19(水)22:31 ID:MaD+cEa1d(10/25) AAS
C++関数のシンボル名は「mangling」によって変な名前になり、コンパイラーによって違うから(標準化されていない)、DLLでは使いづらいので、C言語関数にすることが多い。
827: 片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/) 2017/07/19(水)22:39 ID:MaD+cEa1d(11/25) AAS
DLL内部の輸出関数にextern "C"を付けてC言語関数にする。
関数ポインター型をtypedefする。
DLLをダンプして関数シンボル名を確認する。
828(1): (スプッッ Sd9e-aKa0) 2017/07/19(水)22:41 ID:ogeQAtV7d(7/13) AAS
>>825
C言語の関数を定義参照するってのは.cファイルが出てきたときの話よね?
829(1): 片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/) 2017/07/19(水)22:43 ID:MaD+cEa1d(12/25) AAS
コンパイラーによって違うが、C言語関数が__cdeclのときは、そのシンボル名は先頭に下線が付き、__stdcallのときは関数名そのままだったかと。
830(1): 片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/) 2017/07/19(水)22:46 ID:MaD+cEa1d(13/25) AAS
>>828
C++でDLL関数を参照するときは、DLL関数がC言語関数でないと、シンボル名がややこしくなって、GetProcAddressが難しくなるよ。ダンプすればシンボル名が確認できる。
831(2): (スプッッ Sd9e-aKa0) 2017/07/19(水)22:51 ID:ogeQAtV7d(8/13) AAS
>>830
CでもC++でも構わないのだけどその関数のなかでクラスを呼ぼうとしてるのだけど可能なのだろうか??
>>829も少し気になったのだけど
__stdcallしてたのにリンカエラーの時に__cdeclのリンカエラーが出ていた
832: 片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/) 2017/07/19(水)22:54 ID:MaD+cEa1d(14/25) AAS
スタートメニューのVSの項目に、「なんちゃらコマンドプロンプト」というのがあるはずだ。
ソイツを起動すると黒い画面が出て来て、キーボードで「CD」コマンドで対象のフォルダに移動。
dumpbinに適当なコマンドライン引数を付けてEnter。
833: 片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/) 2017/07/19(水)22:56 ID:MaD+cEa1d(15/25) AAS
>>831
DllMainにも__stdcallが必要。
834(1): 片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/) 2017/07/19(水)22:59 ID:MaD+cEa1d(16/25) AAS
>>831
関数の引数と戻り値がC言語関数に見えれば中身C++でもOkay。
835: (スプッッ Sd9e-aKa0) 2017/07/19(水)22:59 ID:ogeQAtV7d(9/13) AAS
>>834
そうなんだ
じゃあextern cつけておいた方が安全みたいなのね
名前解決しやすいかしにくいかの話になるんだね
836: 片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/) 2017/07/19(水)23:00 ID:MaD+cEa1d(17/25) AAS
__stdcallやWINAPIなどを付けなければ、デフォルトで__cdeclになる。
837: 片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/) 2017/07/19(水)23:02 ID:MaD+cEa1d(18/25) AAS
コンパイラーによってはデフォルトの呼び出し規約を変更できるかも知れない。
838(1): 片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/) 2017/07/19(水)23:07 ID:MaD+cEa1d(19/25) AAS
複数の関数を、extern "C" { ... } で囲ってもいいし、関数の直前にextern "C"を付けてもいい。
839(1): (スプッッ Sd9e-aKa0) 2017/07/19(水)23:10 ID:ogeQAtV7d(10/13) AAS
>>838
個々につけた方が明示的で良いように思ったので個々でつけることにします
dll難しい....
linuxのsoファイル作成のソースコードと、winのdll作成のコードを共通化しようとしたら
defineで切るしかない??
840(1): (スプッッ Sd9e-aKa0) 2017/07/19(水)23:14 ID:ogeQAtV7d(11/13) AAS
質問ばかりで申し訳ないけどもヘッダファイルって作られないのかな?
dll側で定義した関数を公開するときにインポートライブラリで読み込ませるならばヘッダファイル必要になると思うのだけど
それは自身で作成することになる??
841(1): (ワッチョイ f6e4-PXrN) 2017/07/19(水)23:16 ID:rRbujBCW0(1/2) AAS
>>839
Boost.DLLを使う
842: 片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/) 2017/07/19(水)23:17 ID:MaD+cEa1d(20/25) AAS
>>840
Unmanaged C/C++では、慣習として、公開するヘッダーファイルは自分で書かないといけない。
それは公開する範囲を決める意味で重要な作業になる。
843(1): 片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/) 2017/07/19(水)23:25 ID:MaD+cEa1d(21/25) AAS
WinMainやDllMainなど以外で自分で作った関数については、WINAPIよりもAPIENTRYを使うのがマナー。
844: (スプッッ Sd9e-aKa0) 2017/07/19(水)23:28 ID:ogeQAtV7d(12/13) AAS
>>843
なんだそのAPIENTRYというのは
>>841
さらに知らない単語も出てきた
845(1): (ワッチョイ 96ea-zKZC) 2017/07/19(水)23:30 ID:K+rHLYmS0(1) AAS
もう面倒だからC#で作れよ
846(1): 片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/) 2017/07/19(水)23:32 ID:MaD+cEa1d(22/25) AAS
<windows.h>の中身を覗いてみると、Win32APIの流儀が見えてくる。時間泥棒かも知れないが、それが面白い。
847: 片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/) 2017/07/19(水)23:35 ID:MaD+cEa1d(23/25) AAS
Boostという準標準ライブラリ群があって、Boost.DLLはその一部。APIENTRYマクロはWINAPIマクロの別名。
848: 片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/) 2017/07/19(水)23:39 ID:MaD+cEa1d(24/25) AAS
面倒なのが嫌なら最初からC#使え。C++は素人が来るところではない。
849: (スプッッ Sd9e-aKa0) 2017/07/19(水)23:46 ID:ogeQAtV7d(13/13) AAS
>>845
開発でC++が必須なんだ..
850(1): 片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd94-qcL/) 2017/07/19(水)23:50 ID:MaD+cEa1d(25/25) AAS
で、問題は解決したか?
851(1): (ワッチョイ f6e4-PXrN) 2017/07/19(水)23:52 ID:rRbujBCW0(2/2) AAS
それはいいけどググればすぐ解決する程度の問題をわざわざ人に聞くべきではない
852: (ワッチョイ 274b-FPZE) 2017/07/20(木)00:02 ID:a17NgPNI0(1) AAS
ググれってよく見るけど、最近はググった結果がQiitaとかで余計わからなくなる人いそう
853(1): (スプッッ Sd7f-7lrd) 2017/07/20(木)00:26 ID:68uSpz6dd(1) AAS
>>851
ぐぐった結果色々な方法がありすぎてどれが正しいか判断つかなくてここにきた
>>850
今は自習中
明日の業務で試してみます
854: (ワッチョイ 47e4-OcZC) 2017/07/20(木)00:35 ID:am65me5o0(1) AAS
色々は無いでしょ
855: (ワッチョイ dff0-E/h9) 2017/07/20(木)11:41 ID:aRd+na0X0(1) AAS
>>846
<windows.h>の中身を覗いてMSの片鱗を味わったがsmallに引っ掛かって1時間ほど時間を潰した
どうしてくれるんだ
856(1): (オッペケ Sr1b-3YgS) 2017/07/20(木)19:54 ID:z9hoJ4whr(1) AAS
>>853
ひょっとしてまだやってるのか?
方法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) にする
省4
857: (ササクッテロリ Sp1b-Iuq2) 2017/07/20(木)23:54 ID:8WEeg4Ctp(1) AAS
winapiの流儀とか見ていて吐き気を催す
858: (ワッチョイ 47e4-OcZC) 2017/07/21(金)00:44 ID:OjZ8KrLm0(1/4) AAS
WINAPIのtypedefされた型を元のプリミティブ型に書き直すのが趣味です
859: (ワッチョイ dfaa-E/h9) 2017/07/21(金)00:47 ID:zOHs/jgU0(1) AAS
F12を叩きたいのか
860: (ワッチョイ df9f-2Ge4) 2017/07/21(金)04:01 ID:7GF1vWDt0(1/5) AAS
extern "C" __declspec(dllexport) int __stdcall func(int,int){}
"?AAA@@YGHHH@Z"のような吐き気催す引数無くした名前だけ出力したい場合は extern "C" を前に付けると解決
861: (ワッチョイ a7b4-jxVo) 2017/07/21(金)07:00 ID:h5hvtEqn0(1) AAS
外部リンク:qiita.com
uniqu_ptrに頼って生歩使わないとか、
そんなだったらはじめからC++なんか使うな
アホはC++使うなって見本
>リソースを生で使うのは アンチデザパタです!
それがどーした。パターンでしか考えられないお前
862: (ワッチョイ a709-leQM) 2017/07/21(金)07:42 ID:7e+pM3K/0(1/3) AAS
えらいねー。
863: (スッップ Sdff-AsiQ) 2017/07/21(金)07:57 ID:SclDYwDCd(1/4) AAS
所有権を持った人が自分でnew deleteするってのは確かにもうあり得ないでいいだろう。
それを「生ポインタを使わない」と表現するのは言い過ぎというか誤解を生む。
864(1): (ワッチョイ 274b-G5Pk) 2017/07/21(金)08:46 ID:2RjE57oB0(1) AAS
生保使う場面ってどんな時だろ?
865: (ドコグロ MM9f-tIP3) 2017/07/21(金)08:47 ID:fYLttpYeM(1/2) AAS
delete禁止構文欲しいぜ
866: (ワッチョイ a709-leQM) 2017/07/21(金)08:49 ID:7e+pM3K/0(2/3) AAS
生ぽは、その場で文字列生成して関数に食わせる以外は参照だなぁ。
867: (ドコグロ MM9f-tIP3) 2017/07/21(金)08:54 ID:fYLttpYeM(2/2) AAS
>>864
nullptr受け取る可能性のある古臭い設計のコードを使うときじゃね?
自分で設計するときは使わん。
868: (スッップ Sdff-AsiQ) 2017/07/21(金)10:34 ID:SclDYwDCd(2/4) AAS
自分でnew deleteするなんて発想が無くなってきたから別にポインタ渡しに違和感ないけどな
869: (ワッチョイ a709-leQM) 2017/07/21(金)11:14 ID:7e+pM3K/0(3/3) AAS
設計的にどうなんだろう。
870: (スッップ Sdff-AsiQ) 2017/07/21(金)11:40 ID:SclDYwDCd(3/4) AAS
生ポインタは誰が資源管理するのか曖昧になるからよくない、って主張は昔はあったと思う。
いまソースコードを検索してnew もdeleteも見当たらないという状況なら、そんなのはもう
忘れていいと思う。
871: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ df15-QK4i) 2017/07/21(金)12:08 ID:2BokDUmp0(1) AAS
例外が発生したときの後始末なんかもきちんとしようと考えると面倒くさいし、
スマートポインタは積極的に使うべきなんだろうな。
872: (ワッチョイ 47e4-OcZC) 2017/07/21(金)12:40 ID:OjZ8KrLm0(2/4) AAS
Qtみたいな自分でnewはするけど親オブジェクトがdeleteしてくれるようなものもある
873: (ワッチョイ df9f-2Ge4) 2017/07/21(金)17:13 ID:7GF1vWDt0(2/5) AAS
unique_ptrとか中身リファレンサだろうしリファレンサとかクラスで自己実装しちゃうけどね
874: (ワッチョイ df9f-2Ge4) 2017/07/21(金)17:16 ID:7GF1vWDt0(3/5) AAS
あ、unique_ptrは複製が効かないポインタか
shared_ptrと混同していたorz
875: (ワッチョイ df9f-2Ge4) 2017/07/21(金)17:18 ID:7GF1vWDt0(4/5) AAS
でもイラネな
unique_ptrでメンバ全部実装やるとアタマ狂うだろ多分
876(1): (ワッチョイ 67a2-fDNv) 2017/07/21(金)18:24 ID:uK7tgvol0(1/2) AAS
いらないとか使わないとか言いつつ、実のところ、理解できなくて使えません、って人を現場で何人も見てきたよ。
877: (ワンミングク MMbf-Y5fB) 2017/07/21(金)18:39 ID:rSdKKkw+M(1/2) AAS
うちのプロダクションコードほぼ100%はユニポだよ
リファレンスはそこらじゅうでもってるけど
878(1): (スッップ Sdff-AsiQ) 2017/07/21(金)18:56 ID:SclDYwDCd(4/4) AAS
>>876
なんでそんなやつを雇ったんだよ
879: (ワッチョイ 67a2-fDNv) 2017/07/21(金)19:36 ID:uK7tgvol0(2/2) AAS
>>878
人手不足なんじゃね?
俺が雇ったわけじゃないし、派遣さんとかだと法律上選べないでしょ。
880: (ワッチョイ ff32-3c2/) 2017/07/21(金)21:20 ID:QkEYt5+b0(1) AAS
誰も触れないけど、delete[] だよな?
まぁ、さておき、new使うか?
オレnew自体ほとんど使わないんだけど。。。
組み込み系だとやっぱ使うのかね?
メモリ管理なんて、スタック上とか、コンテナに任せちゃえば、いいとおもうんだ。
881: (ワッチョイ 47e4-OcZC) 2017/07/21(金)21:43 ID:OjZ8KrLm0(3/4) AAS
いいと思うよ
今のバージョンではnewを使わせるライブラリ以外で使う状況が無い
882: (スプッッ Sd7f-AsiQ) 2017/07/21(金)22:02 ID:mLcSl7GWd(1) AAS
make_uniqueとmake_sharedが出来てからはな
上下前次1-新書関写板覧索設栞歴
あと 120 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.049s