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


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

C++相談室 part119



1 名前:デフォルトの名無しさん [2015/08/31(月) 18:19:04.13 ID:NE3NvROE.net]
C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレに
お願いします。

前スレ
C++相談室 part118
peace.2ch.net/test/read.cgi/tech/1435970316/

このスレもよろしくね。
【初心者歓迎】C/C++室 Ver.97【環境依存OK】 [転載禁止]©2ch.net
peace.2ch.net/test/read.cgi/tech/1439849418/

次期規格C++1zはこちら
C++14/C++1z 20
peace.2ch.net/test/read.cgi/tech/1410382924/

■長いソースを貼るときはここへ。■
 codepad.org/
 ideone.com/

620 名前:デフォルトの名無しさん mailto:sage [2015/09/29(火) 08:27:03.26 ID:4NffsMzC.net]
働かなくても生活出来ること

621 名前:デフォルトの名無しさん mailto:sage [2015/09/29(火) 08:30:36.21 ID:Y2fWXifr.net]
>>571
>参照先を関数内で変更出来ない
意味がわからない
codepad.org/mXQd0mNP
参照であっても参照先を関数内で変更できるようだが

622 名前:デフォルトの名無しさん mailto:sage [2015/09/29(火) 08:42:57.14 ID:Y2fWXifr.net]
>>576
STLのイテレータをみていると、これはポインタと同じ使い方
本当にポインタを撲滅する気があるようにはみえない
codepad.org/gQY11puS

623 名前:デフォルトの名無しさん mailto:sage [2015/09/29(火) 08:46:58.42 ID:GdgkSls5.net]
>>612
参照が示す場所と言えば良かったかな?
参照先の値を変更出来るのは当たり前だからわざわざコード書かなくてもいいよ

624 名前:デフォルトの名無しさん mailto:sage [2015/09/29(火) 09:18:41.17 ID:kfE15Zdi.net]
C++になっても生ポインタを結局ばりばりに
使うのだよな・・・みんな。

625 名前:デフォルトの名無しさん mailto:sage [2015/09/29(火) 09:38:09.16 ID:bCmPOTpj.net]
>>613
それはナマポ派のひとを取り込むためにわざと記法を似せてるんじゃないかな?

626 名前:デフォルトの名無しさん mailto:sage [2015/09/29(火) 09:42:32.67 ID:2BMWd/g5.net]
どうしてもイヤならC++なんか手を引くべき

627 名前:デフォルトの名無しさん mailto:sage [2015/09/29(火) 09:43:37.29 ID:bCmPOTpj.net]
>>614
よく分からんがポインタのアドレス値そのものを書き換えるってこと??

もらったポインタをfor文の中でインクリメントしてデータアクセスする以外の用途が思いつかないな

上記の用法ならイテレータの参照を渡すかのが普通だからわざわざポインタ使うほどのものでもないし

628 名前:デフォルトの名無しさん mailto:sage [2015/09/29(火) 09:46:03.17 ID:bCmPOTpj.net]
>>615
それがC++の良いところでもあり悪いところでもある
清濁併せて飲み込んじゃう混沌さがC++らしさ



629 名前:デフォルトの名無しさん mailto:sage [2015/09/29(火) 09:51:42.83 ID:GdgkSls5.net]
>>618
> よく分からんがポインタのアドレス値そのものを書き換えるってこと??

そう
変更出来ない事を(細かい事だが)メリットとして挙げてる
ポインタもconst付ければ変更出来ないけど面倒くさいからな

630 名前:デフォルトの名無しさん [2015/09/29(火) 11:25:09.86 ID:NXR0Nytt.net]
標準アルゴリズムはナマポ前提でそ
ナマポとイテレータを透過的に置き換えられるってだけで
ナマポ撲滅を主張するような作りにはなってない

631 名前:デフォルトの名無しさん mailto:sage [2015/09/29(火) 11:39:27.99 ID:9FBYnxt5.net]
ポインタを使うて事にそんなにアレルギーがある人がいるんだ…
コードを全部配列で書いてもアレルギーでるの?

632 名前:デフォルトの名無しさん mailto:sage [2015/09/29(火) 11:49:34.30 ID:Fziu4eIr.net]
>>622
Cかよと面倒臭い気持ちにはなる
んで、しぶしぶtraitsを書こうと思って、c++ array specializeでググる

633 名前:デフォルトの名無しさん mailto:sage [2015/09/29(火) 12:13:37.73 ID:XovM8eOK.net]
生ポがわいてんのか

634 名前:デフォルトの名無しさん mailto:sage [2015/09/29(火) 12:35:12.59 ID:Y2fWXifr.net]
>>614
ますます意味がわからない

>>571
>参照先を関数内で変更出来ない

できちゃってるよ‥
codepad.org/6rGzlzmc
参照を使っても呼び出し元に影響を与えないわけではないのだが、どういうメリットを強調したかったの?

635 名前:デフォルトの名無しさん mailto:sage [2015/09/29(火) 12:37:23.78 ID:bCmPOTpj.net]
>>620
あ、了解。やっとわかった。

ポインタのメリットとして書き換え可能をあげてるのかと勘違いしてた

参照のメリットとしてアドレス値(?)が書き換わる可能性が無いと言うことね

636 名前:デフォルトの名無しさん mailto:sage [2015/09/29(火) 17:06:50.42 ID:0lZfHTgJ.net]
参照はだいたい理解したんだが
&& と言うのだけが理解出来ないよ。

637 名前:デフォルトの名無しさん [2015/09/29(火) 19:52:43.47 ID:NXR0Nytt.net]
テンポラリへの参照

638 名前:デフォルトの名無しさん mailto:sage [2015/09/29(火) 20:32:38.62 ID:rSzsIUwL.net]
new, deleteを生で書かないという前提なら生ポでいいじゃん



639 名前:デフォルトの名無しさん mailto:sage [2015/09/29(火) 20:37:38.49 ID:XSRpVFiu.net]
>>627
右辺値への参照です
 int a=0;
 int & lr = a; //左辺値参照
 int & rr = 0; // 右辺値参照

 void f(int &); void f(int &&); //両方のオーバーロード
 f( a ); // f(int &)
 f( 0 ); // f(int &&)

 int g();
 int && rr2 = g(); //g()呼び出し結果は右辺値

640 名前:デフォルトの名無しさん mailto:sage [2015/09/29(火) 20:38:39.97 ID:XSRpVFiu.net]
失礼
int && rr = 0; // 右辺値参照
だった

641 名前:デフォルトの名無しさん mailto:sage [2015/09/29(火) 20:42:24.19 ID:XSRpVFiu.net]
class A {
 void f() &;
 void f() &&;
}

A a;
a.f();//f()&
(new A())->f(); // f()&&

642 名前:デフォルトの名無しさん mailto:sage [2015/09/29(火) 20:59:50.06 ID:UeLWTQcw.net]
shared_ptrが遅いって言ってるやつはどの操作にとんなコストがかかるか理解して言ってるんだろうか

643 名前:デフォルトの名無しさん mailto:sage [2015/09/29(火) 21:05:55.31 ID:Z5H58J48.net]
shared_ptrを使ってみて遅いと評価することと
どの操作にとんなコストがかかるか理解
することにどのような因果関係があるのでしょう

644 名前:デフォルトの名無しさん mailto:sage [2015/09/29(火) 21:09:20.14 ID:VAPx39zG.net]
まあ、実際sharedは遅いよ。
それでも多言語のGCやらに比べればマシだけど。
要は機能豊富過ぎるんだよね。

殆どの用途にはuniqueで十分

645 名前:デフォルトの名無しさん mailto:sage [2015/09/29(火) 22:00:15.35 ID:UeLWTQcw.net]
どの操作にどんなコストが掛かるのか知らないと効率的な利用が出来ないだろ

646 名前:デフォルトの名無しさん mailto:sage [2015/09/29(火) 22:06:58.07 ID:xQzivTWI.net]
shared_ptrの効率的な利用のためにshared_ptrの仕組みを理解することと
shared_ptrをナマポの代替で使ってみて遅いケースがあると判断することに
何の関係が

647 名前:デフォルトの名無しさん mailto:sage [2015/09/29(火) 22:13:09.38 ID:VAPx39zG.net]
実装の詳細は知らんけど
ナマポと比較して
shared_ptr1つ目生成時中間バッファ作成コスト、コピー作成時とコピー削除時に同期コスト、weakも入れた最後の削除時に中間バッファ削除コスト、
デリファレンス時ノーコスト

ってな感じじゃね。

648 名前:デフォルトの名無しさん mailto:sage [2015/09/29(火) 22:13:19.41 ID:diX6sJrx.net]
(new A())->f() は f() && でなくf() & が呼ばれる
*(new A()) が左辺値だから



649 名前:デフォルトの名無しさん mailto:sage [2015/09/29(火) 22:31:50.55 ID:mPnf6nOs.net]
>>636
こないだstd::mapのstd::setを使ったらスゲー請求書が来てびっくりした

650 名前:デフォルトの名無しさん mailto:sage [2015/09/29(火) 22:46:20.57 ID:diX6sJrx.net]
そういやshared_ptrのカスタムデリーターってtype erasureしてる?
制御情報と別にさらに動的領域が必要になりそうな

651 名前:デフォルトの名無しさん [2015/09/29(火) 23:01:51.29 ID:NXR0Nytt.net]
>>639
だよな、俺も変だと思った
ビルトイン演算子の単項 * は常に左辺値を生じるわけで

652 名前:デフォルトの名無しさん mailto:sage [2015/09/29(火) 23:17:58.28 ID:H886HULU.net]
shared_ptr使ったらいつのまにかuse_countが万単位になっててビビった

>>635みたいなバカは実測もしないでshared_ptrがGCより速いと勘違いしてんだろw

653 名前:デフォルトの名無しさん mailto:sage [2015/09/29(火) 23:18:59.34 ID:OUPKSVtA.net]
万の共有してるお前がバカなだけ

654 名前:デフォルトの名無しさん mailto:sage [2015/09/29(火) 23:27:46.40 ID:mPnf6nOs.net]
やっぱスコープを超えて生きつづけるような動的メモリ確保は悪
個数に上限がない上に、ソースコードの検索で実体を特定できない分グローバル変数より性質が悪い

1スコープ1画面すなわち25行未満とするの正義

655 名前:デフォルトの名無しさん mailto:sage [2015/09/29(火) 23:35:18.44 ID:LyudXVtb.net]
2015年に於いて一画面が25行の環境の>>645
ムーブセマンティクス全否定だそうです

656 名前:デフォルトの名無しさん mailto:sage [2015/09/29(火) 23:42:59.40 ID:mPnf6nOs.net]
動的メモリ確保を必要以上に有りがたがって多用する奴は
グローバル変数を多用するビギナー未満の存在、

チューリングマシンあたりからやり直せ

657 名前:デフォルトの名無しさん mailto:sage [2015/09/29(火) 23:56:13.74 ID:VAPx39zG.net]
そりゃ実行時のデータで必要なオブジェクトの数や種類が変わらないなら必要は無いのだろうが。

658 名前:デフォルトの名無しさん mailto:sage [2015/09/30(水) 00:49:17.79 ID:k73k1QZf.net]
>>638
make_shared使ったら中間バッファ作成コストは無くなる
その代わりweak_ptrを使った場合それが残ってる間も解放されない


あと、shared_ptrのコピー速度が問題になる程コピーするか?
そんな設計だと生ポインタだったら所有権の管理出来ないと思うんだが

>>643
糞実装というのは置いといてもshared_ptrの速度と何の関係が?
gcのある環境だと数万も参照持つ程長い間生きてるといざ解放するときstop the worldになる糞コスト高い世代のgcになるだろうけどな



659 名前:デフォルトの名無しさん [2015/09/30(水) 01:08:31.92 ID:YymjgiCr.net]
GCとshared_ptrの速度を比較する馬鹿がいると聞いてきました。
しかもネタじゃなくて本気で書き込んでるらしいと聞きました。

660 名前:デフォルトの名無しさん [2015/09/30(水) 01:44:40.15 ID:wkMyE1bD.net]
どっちが速いかって問題じゃないから
ここが通じないやつと話しても不毛なだけだよ

661 名前:デフォルトの名無しさん mailto:sage [2015/09/30(水) 07:07:44.73 ID:L4DkDpWh.net]
>>630
分からん。
そもそも右辺値参照する理由は何ですの?

662 名前:デフォルトの名無しさん mailto:sage [2015/09/30(水) 08:23:18.30 ID:FCo7WZBm.net]
>>652
ま、もったいないお化けの呪いです。

663 名前:デフォルトの名無しさん mailto:sage [2015/09/30(水) 11:52:14.07 ID:Q1Di+uY9.net]
関数の戻り値を変数に受けずに直接ゴニョゴニョするときに有益

664 名前:デフォルトの名無しさん mailto:sage [2015/09/30(水) 12:49:31.47 ID:4JsedgFo.net]
>>652
右辺値参照はパフォーマンス向上のために導入されたもので、参照先は、以後のスコープで使われる機会のない(デストラクトを待つだけの)一時オブジェクトと見なされる。

実際に使われる機会のないことはプログラマーが保証する

665 名前:デフォルトの名無しさん mailto:sage [2015/09/30(水) 13:08:20.36 ID:vdDHGEBP.net]
>>652
右辺値参照が導入された第一の理由はmoveセマンティクスを実現するため

666 名前:デフォルトの名無しさん mailto:sage [2015/09/30(水) 13:16:43.24 ID:L4DkDpWh.net]
分からん。c++以外の言語で右辺値参照と言う機構は有るんでっか?
もしc++固有の機構なら何でc++だけそんなもん導入する必要があるのですかい?

667 名前:デフォルトの名無しさん mailto:sage [2015/09/30(水) 13:39:20.73 ID:VnaX2NHk.net]
C++はスタックにオブジェクトを確保するから

668 名前:デフォルトの名無しさん mailto:sage [2015/09/30(水) 13:45:19.98 ID:VnaX2NHk.net]
いや、もちろんヒープに確保する事もできるんだけどGCが無いから



669 名前:デフォルトの名無しさん mailto:sage [2015/09/30(水) 13:55:13.48 ID:XhnAqUEm.net]
unique_ptrのmoveコンストラクタの存在とコピーコンストラクタがないことでどういう効果があるか考えれば分かると思う。

670 名前:デフォルトの名無しさん mailto:sage [2015/09/30(水) 14:19:24.56 ID:7iKwfO2h.net]
>>657
俺様的個人見解では
コピーでなくムーブで済ませるのは本来ならコンパイラやインタプリタの最適化ルーチンのお仕事

それを言語仕様上「いいか、絶対にコピーするなよ、絶対にだぞ!」
と明記することが出来るようにしたのが右辺値参照


ムーブできなくてコピーが発生するくらいならコンパイルエラーにしてくれ
俺(プログラマ)がムーブ出来るように手順を考え直すから
と言うことを&&でコンパイラさんに伝えてる

他の言語は「こまけーことはいいんだよ!」でできています。

671 名前:デフォルトの名無しさん mailto:sage [2015/09/30(水) 14:28:06.26 ID:vdDHGEBP.net]
>>657
C++は他の高級言語と比べて高パフォーマンスであることを特に重要としてるから
プログラマの工夫で高速化できる機能が備わってる

672 名前:デフォルトの名無しさん [2015/09/30(水) 14:49:50.37 ID:R06l1h0q.net]
C++以外はすべて糞言語だから右辺値参照が無い。

673 名前:デフォルトの名無しさん mailto:sage [2015/09/30(水) 21:51:39.92 ID:L4DkDpWh.net]
>>661
うーん、まだ分からん。

674 名前:デフォルトの名無しさん mailto:sage [2015/09/30(水) 21:58:53.58 ID:lnfdPqWh.net]
コピーよりスワップのほうが早い場合があるだろ

675 名前:デフォルトの名無しさん mailto:sage [2015/09/30(水) 22:00:11.74 ID:VnaX2NHk.net]
srad.jp/~taro-nishino/journal/507551/
これ読んで分らなかったらあきらめな

676 名前:デフォルトの名無しさん mailto:sage [2015/09/30(水) 22:01:27.44 ID:k73k1QZf.net]
>>664
存在する理由が解らなければ使わなければいいよ
標準ライブラリを使ってるだけで割と恩恵受けてるから

677 名前:デフォルトの名無しさん mailto:sage [2015/09/30(水) 22:16:34.76 ID:L4DkDpWh.net]
>>666
読んでいる途中で諦めた。明日再挑戦するわ…

678 名前:デフォルトの名無しさん mailto:sage [2015/09/30(水) 22:19:44.01 ID:VnaX2NHk.net]
こんなやつ・・・



679 名前:デフォルトの名無しさん mailto:sage [2015/09/30(水) 22:34:51.73 ID:IxoD0KLd.net]
>>666
『名前を持たないなら、それは右辺値"なのである』
その理屈で行くと*(new int)が右辺値になってしまうな

680 名前:デフォルトの名無しさん [2015/09/30(水) 23:35:15.70 ID:aEcL3JaV.net]
peace.2ch.net/test/read.cgi/internet/1401535906/107
  ↑ ↑ ↑ ↑ ↑ ↑ 

681 名前:デフォルトの名無しさん [2015/10/01(木) 00:18:26.56 ID:MrcZAfOx.net]
メンバ変数とメンバ関数の定義ってどういう順序で書くのが一般的なの?

【VC++方式】
publicメンバ関数
privateメンバ関数
publicメンバ変数
privateメンバ変数

【Google方式】
publicメンバ関数
publicメンバ変数
privateメンバ関数
privateメンバ変数


貴様らはどっちを使ってるの?

682 名前:デフォルトの名無しさん mailto:sage [2015/10/01(木) 00:23:26.58 ID:W6dzHXP5.net]
全部パブリックだし無駄なアクセサとか作らない性質なんで関係無いですね

683 名前:デフォルトの名無しさん mailto:sage [2015/10/01(木) 00:26:52.37 ID:yE0+l/d1.net]
統一されてりゃいい

684 名前:デフォルトの名無しさん mailto:sage [2015/10/01(木) 00:28:09.19 ID:0eXwX1cj.net]
変数は全部上に持ってってる。
何で下に配置しようとするのか理解できない。

685 名前:デフォルトの名無しさん mailto:sage [2015/10/01(木) 00:34:01.87 ID:e+Nqpsc9.net]
クラスを利用するときは変数なんて見ないだろう

686 名前:デフォルトの名無しさん mailto:sage [2015/10/01(木) 00:43:09.13 ID:j4gRyYlh.net]
変数が上だな
つーかデフォルトprivateなのだから
そこから書くのが自然な気がする。

687 名前:デフォルトの名無しさん mailto:sage [2015/10/01(木) 00:43:40.25 ID:P62utjXs.net]
何で上に持っていくのか理解できない

688 名前:デフォルトの名無しさん mailto:sage [2015/10/01(木) 00:46:42.51 ID:KtuKSkrc.net]
ヘッダファイルが誰のためにあるのか考えろや



689 名前:デフォルトの名無しさん mailto:sage [2015/10/01(木) 00:47:30.33 ID:W6dzHXP5.net]
これはね、
内部仕様を大事にする東洋哲学と
外部仕様を大事にする西洋哲学の
違いですね

690 名前:デフォルトの名無しさん [2015/10/01(木) 01:06:55.36 ID:W4wdkuI5.net]
>>635>>640の話をよくよく聞いてみたところ、彼ら、ソートを再帰で作ってたらしいです。
引数としてstd::shared_ptrを渡していたのでコピーコストが凄いことになっていたようです。
ソースを戴いたのでループに修正してあげたところ、かなり驚いた様子で改心していました。

691 名前:デフォルトの名無しさん mailto:sage [2015/10/01(木) 01:17:32.02 ID:aA9UfTOs.net]
>>681
shared_ptrを引数として渡すならconst参照でいい

692 名前:デフォルトの名無しさん [2015/10/01(木) 02:12:38.73 ID:W4wdkuI5.net]
>>682

>>635の人ですか。
また何か疑問がわきましたか?

693 名前:デフォルトの名無しさん mailto:sage [2015/10/01(木) 02:32:50.77 ID:aA9UfTOs.net]
>>683
ちげえよ

引数でshared_ptrを渡すならコピー渡しじゃなくて
const std::shared_ptr<T>& p
にしろ
その関数内で所有権が欲しいならその時にコピーしろ

694 名前:デフォルトの名無しさん mailto:sage [2015/10/01(木) 02:52:40.21 ID:aA9UfTOs.net]
何でソートをオレオレ実装してんだstd::sort使えよとか他にも突っ込み所あるけどね

695 名前:デフォルトの名無しさん mailto:sage [2015/10/01(木) 08:01:51.69 ID:ZyUEx0el.net]
つーかキチンと所有権管理の意識をしていたら、わざわざsharedを使う場面が殆ど無いことに気づくはず。

696 名前:デフォルトの名無しさん mailto:sage [2015/10/01(木) 09:58:06.89 ID:LB18ex5+.net]
std::sortはpredを値渡しだが、少し複雑なpredのメンバにshared_ptrを持たせたことがあった。それが正しい判断だったのか余計な心配だったのか不明。

697 名前:デフォルトの名無しさん mailto:sage [2015/10/01(木) 15:43:10.33 ID:mZxAmtu3.net]
faithandbrave.hateblo.jp/entry/20121116/1353047948
boost::threadのスタックサイズはthread::attributes::set_stack_sizeで設定できるようですが
std::threadではどのようにして設定するのでしょうか?

698 名前:デフォルトの名無しさん mailto:sage [2015/10/01(木) 16:41:46.71 ID:lsGbndod.net]
You can't.



699 名前:デフォルトの名無しさん [2015/10/01(木) 19:19:35.56 ID:BUCLrkun.net]
Oh,no.

700 名前:デフォルトの名無しさん mailto:sage [2015/10/01(木) 20:12:32.90 ID:LB/4icN7.net]
C++のクラスとか実は構造体なのだからデータ1stに決まってるだろ;
メンバ関数から書く奴は頭おかしい(もしくはclassとstructの明示的使い分けを説明できねばならない

まあ一応概念上は「手続きに与えるデータ」の側面(手続きがメイン)を強調したいときがstructで
それ以外はclassではある

701 名前:デフォルトの名無しさん mailto:sage [2015/10/01(木) 21:11:20.09 ID:P62utjXs.net]
>>691
関係ない

702 名前:デフォルトの名無しさん mailto:sage [2015/10/01(木) 21:21:12.13 ID:WeiZCb/T.net]
>>691
>もしくはclassとstructの明示的使い分けを説明できねばならない
互換性以外でstruct意味あるの?
自分のコードでは使おうと思ったことない

703 名前:デフォルトの名無しさん mailto:sage [2015/10/01(木) 21:31:33.68 ID:QENZiec8.net]
使い分けなんか決まりが有るわけでもないし適当でいい。
それより「クラスとか実は構造体」なんてアホなこと言ってる奴は
早く病院行った方がいい

704 名前:デフォルトの名無しさん [2015/10/01(木) 21:35:17.70 ID:BUCLrkun.net]
構造体をクラスで特殊化しようとしたら出来なかったから同じではないみたい

705 名前:デフォルトの名無しさん mailto:sage [2015/10/01(木) 21:39:07.38 ID:BshYJ+by.net]
TMPにはまってた頃はstructばっかりだったな。
データを持つなんてことは滅多にないし。

706 名前:デフォルトの名無しさん mailto:sage [2015/10/01(木) 21:41:20.18 ID:QENZiec8.net]
「構造体」などという定義の不明な用語を用いる奴は
アビバに行ってエクセルでも勉強してた方がいい

707 名前:デフォルトの名無しさん mailto:sage [2015/10/01(木) 21:55:36.66 ID:LB/4icN7.net]
>>692-695
structの実体は全メンバがデフォルトでpublicなだけのclassにすぎないと
ストラストロウpップ本のどっかに書いてあった

一方クラス名と構造体名は同ではないが理由は知らん

708 名前:デフォルトの名無しさん mailto:sage [2015/10/01(木) 22:03:04.84 ID:QENZiec8.net]
「全メンバがデフォルトでpublicなだけのclassにすぎない」
そんな嘘つき本は
早く窓から投げ捨てた方がいい



709 名前:デフォルトの名無しさん mailto:sage [2015/10/01(木) 22:21:18.99 ID:BshYJ+by.net]
親クラスがデフォルトでpublic

あとは何だっけ?

710 名前:デフォルトの名無しさん mailto:sage [2015/10/01(木) 22:23:51.58 ID:+UnsXPfG.net]
classから/への継承ができない
POD型になれる(Cと共用することができる)

711 名前:デフォルトの名無しさん mailto:sage [2015/10/01(木) 22:32:16.11 ID:CWBNpZAW.net]
classもPODになれるぞ

712 名前:デフォルトの名無しさん mailto:sage [2015/10/01(木) 22:32:25.91 ID:LB/4icN7.net]
classにできてstructにできないこと(あるいはその反対)とは?
2011年の規格になるがn3337.pdfならタダでダウソできるので
classとstructの違いがどこに書いてあるか指摘してくれると嬉しい

713 名前:デフォルトの名無しさん mailto:sage [2015/10/01(木) 22:35:10.94 ID:QENZiec8.net]
三つ前のレスも読めない奴は
早く眼科に行った方がいい

714 名前:デフォルトの名無しさん mailto:sage [2015/10/01(木) 22:40:03.08 ID:LB/4icN7.net]
>POD型になれる(Cと共用することができる)
classもPOD型になれる
n3337.pdfのChapter 9より
>A POD struct109 is a non-union class that is both a trivial class and a standard-layout class, and has no
>non-static data members of type non-POD struct, non-POD union (or array of such types).
で、
>A standard-layout struct is a standard-layout class defined with the class-key struct or the class-key class.
なのである

classがCと共用できないのはそれはその通りだがC++内の話題か?

715 名前:デフォルトの名無しさん mailto:sage [2015/10/01(木) 22:40:18.43 ID:o05Ai7EN.net]
>>686
unique_ptrは逆に、所有権のない生ポの代替にはならないところがなぁ。
前に誰かが言っていたけど、コピー不可の「ほぼuniqueな」shared_ptrがあったらよさそうなのにな。

・基本、コピー不可
・使いまわす場合はweak_ptr(相当のもの)で
・それをlock()して得られるのも「ほぼuniqueなshared_ptr」
・それをローカルスコープの外に持ち出すには明確な記述が必要なんで
非ユニークな期間の管理は容易

自分でも作れるかもしれないけど、なんか落とし穴があったりするかな?

716 名前:デフォルトの名無しさん mailto:sage [2015/10/01(木) 22:41:52.40 ID:LB/4icN7.net]
>>704
で、classにできてstructにできないこと(あるいはその反対)とは?

717 名前:デフォルトの名無しさん mailto:sage [2015/10/01(木) 23:12:05.84 ID:P62utjXs.net]
>>699
どこが嘘つきなの?

718 名前:デフォルトの名無しさん mailto:sage [2015/10/01(木) 23:41:36.26 ID:YVTNhxF0.net]
>>706
それweak_ptr経由したら無限にコピー作れるよね



719 名前:デフォルトの名無しさん mailto:sage [2015/10/01(木) 23:46:09.70 ID:BshYJ+by.net]
クラスのメンバとして「所有権は持ってるけどコピーは可能としたい。だけど

720 名前:自分でnew deleteを書きたくない。」
っていう一番素朴ともいえる需要にはunique_ptrもshare_ptrも答えてくれないんだよね。
要素1個のvectorを持てば目的には合うけど、それはちょっと。
[]
[ここ壊れてます]






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

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

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