次スレを立てる時は本文の1行目に以下を追加して下さい。
!extend:on:vvvvv:1000:512
C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。
前スレ
C++相談室 part137 (正しくはpart138)
http://mevius.5ch.net/test/read.cgi/tech/1535353320/
C++相談室 part139
https://mevius.5ch.net/test/read.cgi/tech/1538755188/
このスレもよろしくね。
【初心者歓迎】C/C++室 Ver.103【環境依存OK】
https://mevius.5ch.net/test/read.cgi/tech/1530384293/
■長いソースを貼るときはここへ。■
http://codepad.org/
https://ideone.com/
[C++ FAQ]
https://isocpp.org/wiki/faq/
http://www.bohyoh.com/CandCPP/FAQ/ (日本語)
----- テンプレ ここまで -----
-
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
探検
C++相談室 part140
■ このスレッドは過去ログ倉庫に格納されています
2019/01/13(日) 05:56:22.70ID:9RrR7Arz
200デフォルトの名無しさん
2019/01/27(日) 00:46:42.48ID:UseBSW0P 別にあーでもないこーでもないと議論する分にはいいだろ、ってことだよ
蒸し返すとか何様だ、と。
結構有意義な話(テンプレートでそれっぽいものを実現する試みとか)もあったしな
蒸し返すとか何様だ、と。
結構有意義な話(テンプレートでそれっぽいものを実現する試みとか)もあったしな
201デフォルトの名無しさん
2019/01/27(日) 00:49:33.88ID:uLg7jbtK つーかそんなにC#風のプロパティつかいたいなら素直にC#つかっとけ、みたいな
「なんでC#風のプロパティがないんだよ!」って言ってるやつを野放しにしておくと
そのうち「そもそも言語仕様でガベージコレクションが無いのがおかしい」とか
「今時テキストのソースから直にネイティブコードにコンパイルするのは設計が古い!
一旦中間コードにしてJITで実行するスタイルにすべき!」とか言いだすからな
「なんでC#風のプロパティがないんだよ!」って言ってるやつを野放しにしておくと
そのうち「そもそも言語仕様でガベージコレクションが無いのがおかしい」とか
「今時テキストのソースから直にネイティブコードにコンパイルするのは設計が古い!
一旦中間コードにしてJITで実行するスタイルにすべき!」とか言いだすからな
202デフォルトの名無しさん
2019/01/27(日) 00:52:46.05ID:Br2P5aSl203デフォルトの名無しさん
2019/01/27(日) 00:53:56.73ID:2l9KjIWi 確かにな
ラムダ式でもそういう論調だった
ラムダ式でもそういう論調だった
204デフォルトの名無しさん
2019/01/27(日) 01:03:48.51ID:UseBSW0P gcが無いのは理由はっきりしてるだろ
ゼロオーバーヘッドに反しない方法で実装するのは困難だと
ゼロオーバーヘッドに反しない方法で実装するのは困難だと
205はちみつ餃子 ◆8X2XSCHEME
2019/01/27(日) 01:06:02.76ID:1QlbAeGp まあ蒸し返してる人も、過去の話に納得いかなくて蒸し返してるわけじゃなくて
新しくやってきた人なんだろうと思うけど、以前から見てるとまあうんざりするってのは
わかって欲しい。
新しくやってきた人なんだろうと思うけど、以前から見てるとまあうんざりするってのは
わかって欲しい。
206デフォルトの名無しさん
2019/01/27(日) 01:10:03.22ID:RXDbyT6p だったら議論内容をスレタイにでも入れれば?
207はちみつ餃子 ◆8X2XSCHEME
2019/01/27(日) 01:12:18.91ID:1QlbAeGp >>200
プロキシクラスでプロパティっぽいものを作るやつのこと?
それももういいかげんしつこいくらい繰返されたネタで、
もういっぺん取り上げても有意義な要素はなんもない。
個人的には、 opaque alias と組み合わせればより
プロパティっぽいものに近づける可能性はあるかもな
とは思ってるけど。
プロキシクラスでプロパティっぽいものを作るやつのこと?
それももういいかげんしつこいくらい繰返されたネタで、
もういっぺん取り上げても有意義な要素はなんもない。
個人的には、 opaque alias と組み合わせればより
プロパティっぽいものに近づける可能性はあるかもな
とは思ってるけど。
208デフォルトの名無しさん
2019/01/27(日) 08:10:25.76ID:c/5YNENH >>198
オブジェクトに付随する直接アクセスしたくなる変数とはプロパティなのだから、関数を介して公開せよという前にプロパティ型があれば頑強になるって事だろね。
オブジェクトに付随する直接アクセスしたくなる変数とはプロパティなのだから、関数を介して公開せよという前にプロパティ型があれば頑強になるって事だろね。
209デフォルトの名無しさん
2019/01/27(日) 09:52:06.44ID:66i7lFVh210デフォルトの名無しさん
2019/01/27(日) 10:01:16.61ID:5DHtGtFO うんざりだとか言ってる奴らの方がウザイ件
211デフォルトの名無しさん
2019/01/27(日) 11:06:12.21ID:un/kMxTa >>210
数億年前からスレに居る生きた化石なので尊重せよ
数億年前からスレに居る生きた化石なので尊重せよ
212デフォルトの名無しさん
2019/01/27(日) 11:21:12.79ID:un/kMxTa で、やっぱプロパティー実装するんなら
オブジェクトxのプロパティーy(yの型はt)のアドレスp取った時点でIDかなんかを発行して、
*pへの読み書きで(IDかなんかを通して)x.yの読み書きに変換されないと嘘だよねと、
(カプセル化の原則により、クラスyの利用者はデータメンバとプロパティーの区別とかいちいちしてくんないのが前提
C++/CXのは「区別してくれ!」という中途半端仕様である…
もちろんpの加減算は、sizeof(t)バイト分の加減算に変換されねばならない
pがt*の変数に代入されたりpの配列なんか作られた日にはもう最悪で、
t* q = p;
*q = (t)1234; // !!!!(A)
t* some_array[3] = { &x1.y, &x2.y, &x3.y };
*(some_array[0]) = (t)1000; // !!!!(B)
とかされたときどういうコードを吐けば良いんじゃ…
もはや従来の生ポインタは生ポインタだけで済まなくなり、
IDなのかポインタなのかを区別するフラグが従来の生ポインタに付加されねばならない
ポインタ(に見えねばならないp)に対するアライメントの設定がまだ規格化されていないのは不幸中の幸いであった
オブジェクトxのプロパティーy(yの型はt)のアドレスp取った時点でIDかなんかを発行して、
*pへの読み書きで(IDかなんかを通して)x.yの読み書きに変換されないと嘘だよねと、
(カプセル化の原則により、クラスyの利用者はデータメンバとプロパティーの区別とかいちいちしてくんないのが前提
C++/CXのは「区別してくれ!」という中途半端仕様である…
もちろんpの加減算は、sizeof(t)バイト分の加減算に変換されねばならない
pがt*の変数に代入されたりpの配列なんか作られた日にはもう最悪で、
t* q = p;
*q = (t)1234; // !!!!(A)
t* some_array[3] = { &x1.y, &x2.y, &x3.y };
*(some_array[0]) = (t)1000; // !!!!(B)
とかされたときどういうコードを吐けば良いんじゃ…
もはや従来の生ポインタは生ポインタだけで済まなくなり、
IDなのかポインタなのかを区別するフラグが従来の生ポインタに付加されねばならない
ポインタ(に見えねばならないp)に対するアライメントの設定がまだ規格化されていないのは不幸中の幸いであった
213デフォルトの名無しさん
2019/01/27(日) 11:30:27.56ID:c/5YNENH 言い訳ばかりで使えねーなお前ら。
214デフォルトの名無しさん
2019/01/27(日) 11:36:02.94ID:ODbeTmQz じゃあ君が素晴らしい解決策を考え出して委員会に提案すれば?
デフォルト比較演算子の問題をspaceship operatorの導入で解決したみたいにな
アイデアはいつでも歓迎されてるぞ
デフォルト比較演算子の問題をspaceship operatorの導入で解決したみたいにな
アイデアはいつでも歓迎されてるぞ
215デフォルトの名無しさん
2019/01/27(日) 11:39:24.94ID:2l9KjIWi perlではよく見る <=>
それだったら 真似たから解決した じゃね
それだったら 真似たから解決した じゃね
216デフォルトの名無しさん
2019/01/27(日) 11:49:20.75ID:8lOUNKLd C++の宇宙船演算子、とてもよく出来てる
ルーツは他言語だけど単純に真似ただけ、というわけではない
ルーツは他言語だけど単純に真似ただけ、というわけではない
217はちみつ餃子 ◆8X2XSCHEME
2019/01/27(日) 13:54:08.60ID:1QlbAeGp プロパティとは何かというのがそもそもなんだかバラバラな意見だったりするんよ。
私は「ふたつの関数の組にしたもの (またはひとつの関数) を変数として抽象化 (見せかけ) したもの」
と考えていて、それが結果的に変数へのアクセサ・モディファイアとしてして機能し得る、
更にそれによってアクセスコントロールできるというのは用途のひとつに過ぎないと思う。
だから >>178 みたいな意見はスコープが小さすぎて割に合わないと思う。
もしプロパティが導入されるとしたら、クラスの外から見る限りでは変数と区別が
つかないようになっているべきだと思うのだが、 >>212 のような問題はあるし、
テンプレートでの推論ルールとかも考え始めると
まともなルールを決めるのはほとんど無理だと思えてくる。
「変数に見せかける」のは中途半端でいいから「プロパティ」が欲しいというような >>208
のような立場は一見して比較的に楽 (既存のルールを考えずに新しいものが増える) だが、
逆に言えば今まで無かった変数カテゴリが出現するわけなのでそれはそれで
既存の機能 (特にライブラリ) と辻褄を合わせるのはなかなか大変そうだ。
そういった部分を勘案して、あえてプロパティと呼べるようなものを導入するのだとしたら、
プロキシクラスによって実現することを軸にした上で
それで実現しきれない部分を埋めていくというアプローチが妥当だと思う。
前述 (>>207) のように、 opaque alias は有用な機能だろう。
な〜んか、「思う」って言いすぎな気がするけど、
「思う」って言っとかないとまた「勝手に委員会を代弁している!」とか言い出すから、
明示的に「思う」って書いておくことにする。
私は「ふたつの関数の組にしたもの (またはひとつの関数) を変数として抽象化 (見せかけ) したもの」
と考えていて、それが結果的に変数へのアクセサ・モディファイアとしてして機能し得る、
更にそれによってアクセスコントロールできるというのは用途のひとつに過ぎないと思う。
だから >>178 みたいな意見はスコープが小さすぎて割に合わないと思う。
もしプロパティが導入されるとしたら、クラスの外から見る限りでは変数と区別が
つかないようになっているべきだと思うのだが、 >>212 のような問題はあるし、
テンプレートでの推論ルールとかも考え始めると
まともなルールを決めるのはほとんど無理だと思えてくる。
「変数に見せかける」のは中途半端でいいから「プロパティ」が欲しいというような >>208
のような立場は一見して比較的に楽 (既存のルールを考えずに新しいものが増える) だが、
逆に言えば今まで無かった変数カテゴリが出現するわけなのでそれはそれで
既存の機能 (特にライブラリ) と辻褄を合わせるのはなかなか大変そうだ。
そういった部分を勘案して、あえてプロパティと呼べるようなものを導入するのだとしたら、
プロキシクラスによって実現することを軸にした上で
それで実現しきれない部分を埋めていくというアプローチが妥当だと思う。
前述 (>>207) のように、 opaque alias は有用な機能だろう。
な〜んか、「思う」って言いすぎな気がするけど、
「思う」って言っとかないとまた「勝手に委員会を代弁している!」とか言い出すから、
明示的に「思う」って書いておくことにする。
218デフォルトの名無しさん
2019/01/27(日) 14:01:58.46ID:eq6vjzxS >>208
>プロパティ型
いじっていい変数ならプロパティクラス作って明示すればいいだけじゃねえの
class A
{
public:
CPropety<int> i;
CProperty<double > d;
};
main()
{
A a;
a.i=10;
a.d=0.0;
}
>プロパティ型
いじっていい変数ならプロパティクラス作って明示すればいいだけじゃねえの
class A
{
public:
CPropety<int> i;
CProperty<double > d;
};
main()
{
A a;
a.i=10;
a.d=0.0;
}
219デフォルトの名無しさん
2019/01/27(日) 14:05:45.29ID:ODbeTmQz class A
{
public:
// 別々のgetterとsetterを付けたい
CPropety<int> i;
CPropety<int> j;
};
どうすんのさ
書き込む前に少しくらい考えようよ
{
public:
// 別々のgetterとsetterを付けたい
CPropety<int> i;
CPropety<int> j;
};
どうすんのさ
書き込む前に少しくらい考えようよ
220デフォルトの名無しさん
2019/01/27(日) 14:16:19.49ID:eq6vjzxS >>219
オーバーロードしたらあかんの
CPropety<int> Ci {setter, getter}
CPropety<int> Cj {setter, getter}
class A
{
Ci i;
Cj j;
}
オーバーロードしたらあかんの
CPropety<int> Ci {setter, getter}
CPropety<int> Cj {setter, getter}
class A
{
Ci i;
Cj j;
}
221デフォルトの名無しさん
2019/01/27(日) 14:18:42.56ID:ODbeTmQz そのCiとかCjは一体何なんだよ
クラスか?関数か?ぼくのかんがえたあたらしいプロパティプリミティブなのか?
考えて書け
クラスか?関数か?ぼくのかんがえたあたらしいプロパティプリミティブなのか?
考えて書け
222デフォルトの名無しさん
2019/01/27(日) 14:26:38.19ID:eq6vjzxS >>221
ぼくのかんがえたなんちゃらだよ
あたらしいかどうかしらんが
ちょっと書き方間違えてたな
class Ci: CProperty<int>{ setter,getter}
class Cj: CProperty<int>{ setter,getter}
これでどうだ
ぼくのかんがえたなんちゃらだよ
あたらしいかどうかしらんが
ちょっと書き方間違えてたな
class Ci: CProperty<int>{ setter,getter}
class Cj: CProperty<int>{ setter,getter}
これでどうだ
223デフォルトの名無しさん
2019/01/27(日) 15:41:24.57ID:QVcPa6hj224デフォルトの名無しさん
2019/01/27(日) 16:00:58.63ID:8RlUJd7m まぁ、親クラスのメンバにアクセスしたくなることはけっこうあるけどねw
225223
2019/01/27(日) 16:57:18.32ID:ZgdL6mkb いや、単にこういう話
CPropety<std::string> Cs {setter, getter};
Cs = "hogehoge"; // これは出来ても
size_t n = Cs.size(); // これは無理
まぁプロパティ絶対要る、って言いたいわけじゃないけどさ
>>189の言うようにあれば使う程度だけど
CPropety<std::string> Cs {setter, getter};
Cs = "hogehoge"; // これは出来ても
size_t n = Cs.size(); // これは無理
まぁプロパティ絶対要る、って言いたいわけじゃないけどさ
>>189の言うようにあれば使う程度だけど
226デフォルトの名無しさん
2019/01/27(日) 17:05:46.66ID:CCjvW4Nh リフレクションがないのにプロパティだけあっても意味ないだろう
227デフォルトの名無しさん
2019/01/27(日) 17:28:45.73ID:+XT4q6a0 一般に「プロパティ」と言ったとき
- 変数メンバと同じ字面でアクセスできる
- 列挙可能
C#は両方実現してるけどJavaBeansだと後者だけだね。
C++で話題に挙がるのは専ら前者の性質だけのような気がするが、確かに
それだけだとあまり意味がないと思う。
- 変数メンバと同じ字面でアクセスできる
- 列挙可能
C#は両方実現してるけどJavaBeansだと後者だけだね。
C++で話題に挙がるのは専ら前者の性質だけのような気がするが、確かに
それだけだとあまり意味がないと思う。
228デフォルトの名無しさん
2019/01/27(日) 19:36:10.69ID:ZgdL6mkb リフレクション知らんかったので調べてみたけど
ttps://ufcpp.net/study/csharp/sp_reflection.html
ファイルから読んだ内容から動的にクラスを作ったりできる、で合ってるだろうか?
確かにプロパティが欲しくなる場面って設定ファイルの読み書きとかだから、
そういうファイルと言語の橋渡しの機能が無いと片手落ちだというのはわかる気がする(合ってるか知らんけど
仮にINIファイルに対する読み書きを自動化するとして
[Key]
value = ほげほげ
というhoge.iniがあったときに
Ini hoge_ini("hoge.ini");
hoge_ini.Key.value = "ふがふが";
みたいなことが、C++でも出来なくはないけど(そのINIファイルに相当するクラスを手動で書けば)・・・
言語に取り入れようとしたら静的型付けやテンプレートとは死ぬほど相性悪いから無理だろうなぁ
ttps://ufcpp.net/study/csharp/sp_reflection.html
ファイルから読んだ内容から動的にクラスを作ったりできる、で合ってるだろうか?
確かにプロパティが欲しくなる場面って設定ファイルの読み書きとかだから、
そういうファイルと言語の橋渡しの機能が無いと片手落ちだというのはわかる気がする(合ってるか知らんけど
仮にINIファイルに対する読み書きを自動化するとして
[Key]
value = ほげほげ
というhoge.iniがあったときに
Ini hoge_ini("hoge.ini");
hoge_ini.Key.value = "ふがふが";
みたいなことが、C++でも出来なくはないけど(そのINIファイルに相当するクラスを手動で書けば)・・・
言語に取り入れようとしたら静的型付けやテンプレートとは死ぬほど相性悪いから無理だろうなぁ
229デフォルトの名無しさん
2019/01/27(日) 19:45:08.53ID:c/5YNENH 気合で何とか。
230デフォルトの名無しさん
2019/01/27(日) 19:59:29.75ID:RXDbyT6p 使ってるエディタにプロパティージェネレート機能でも入れれば?
それくらいしょうもない話。
それくらいしょうもない話。
231デフォルトの名無しさん
2019/01/27(日) 20:02:24.90ID:8lOUNKLd そのうち入る静的なリフレクションで十分用はたせそう
プロパティが実現するかは知らんが
プロパティが実現するかは知らんが
232デフォルトの名無しさん
2019/01/27(日) 20:04:51.92ID:Br2P5aSl プリプロセッサ強化しただけ
233デフォルトの名無しさん
2019/01/27(日) 22:48:48.02ID:biLrTPET メタプログラミング・オープンクラスなど、Ruby が遅い理由
obj.f( )
インスタンスの型が動的だから、obj の型と、メソッドf を毎回チェックするから、遅い
ほとんどのケースで、メソッドが変化しないのだから、
インスタンスをfreeze するとか、
JIT の予測分岐みたいなものを採用しないといけない
obj.f( )
インスタンスの型が動的だから、obj の型と、メソッドf を毎回チェックするから、遅い
ほとんどのケースで、メソッドが変化しないのだから、
インスタンスをfreeze するとか、
JIT の予測分岐みたいなものを採用しないといけない
234デフォルトの名無しさん
2019/01/27(日) 22:50:00.96ID:mMLi4Nw2 C++でテストは何を使用してる?
BoostTest?
GoogleTest?
VC++のネイティブC++Test?
そもそもテストは作成しない?
BoostTest?
GoogleTest?
VC++のネイティブC++Test?
そもそもテストは作成しない?
235デフォルトの名無しさん
2019/01/27(日) 22:58:11.13ID:ZSGm5vTO みなさん、そんなに高度なプログラム書いてるんですか?
集団開発してる人間としてはちょっと信じられない。趣味でやるならわかるけど。
集団開発してる人間としてはちょっと信じられない。趣味でやるならわかるけど。
236デフォルトの名無しさん
2019/01/27(日) 23:00:26.40ID:ZSGm5vTO 商用だけどparasoftのC++Test使ってて、なかなかいいですよ
237デフォルトの名無しさん
2019/01/27(日) 23:02:22.43ID:2bDlyD0p 昔はSoftIceとBoundsChecker使っていたけど
238デフォルトの名無しさん
2019/01/27(日) 23:08:30.18ID:24JMkTQP テストは基本手動で確認でしょう
239デフォルトの名無しさん
2019/01/27(日) 23:12:29.52ID:RXDbyT6p googletest使ってる。準備しやすいし、そこそこ信用できるから。
240デフォルトの名無しさん
2019/01/27(日) 23:12:43.73ID:8lOUNKLd VC++のネイティブテスト使ってる
しかしGithubあたりでCIするには相性よろしくない・・・
しかしGithubあたりでCIするには相性よろしくない・・・
241デフォルトの名無しさん
2019/01/27(日) 23:20:00.64ID:Br2P5aSl テストなんか手で書こうがフレームワーク使おうが同じ
242デフォルトの名無しさん
2019/01/28(月) 02:32:45.22ID:3CrwaDYk >>234
ライブラリのように汎用性の高いものは、テスト用のプロジェクト作ってる(そういうのは大体テンプレ使っててビルドに時間を食われるので)。
実装コードの単体テスは、main のド頭で起動時に必ず実行(リリース時は外す)。
専用ツールの必要性を感じた事がないです。
ライブラリのように汎用性の高いものは、テスト用のプロジェクト作ってる(そういうのは大体テンプレ使っててビルドに時間を食われるので)。
実装コードの単体テスは、main のド頭で起動時に必ず実行(リリース時は外す)。
専用ツールの必要性を感じた事がないです。
243デフォルトの名無しさん
2019/01/28(月) 07:11:36.24ID:i7DZcl3V MyClass c;
と
MyClass* c = new MyClass();
は何が違うんですか?
クラスはnewしないと使えないと書いてあるサイトもありますが上記の表記でも使えているようです
と
MyClass* c = new MyClass();
は何が違うんですか?
クラスはnewしないと使えないと書いてあるサイトもありますが上記の表記でも使えているようです
244デフォルトの名無しさん
2019/01/28(月) 07:24:44.89ID:EQR7aoi9 「スタック ヒープ」でググっといで
245デフォルトの名無しさん
2019/01/28(月) 07:24:45.02ID:sAOHdtTv 質問させて
以下のコードで関数functionの引数にクラスhogeのインスタンスのみを受け付けるようにするにはどうしたらいい?
template<typename T>
class hoge {
省略
};
template<typename T>
class fuga {
省略
};
template<ここがわからない>
hogehoge function(わらないclass hoge のインスタンスのみを受け付けたい)
{
省略
}
以下のコードで関数functionの引数にクラスhogeのインスタンスのみを受け付けるようにするにはどうしたらいい?
template<typename T>
class hoge {
省略
};
template<typename T>
class fuga {
省略
};
template<ここがわからない>
hogehoge function(わらないclass hoge のインスタンスのみを受け付けたい)
{
省略
}
246デフォルトの名無しさん
2019/01/28(月) 07:24:53.78ID:i7DZcl3V すみません、使うメモリ管理の方法が違うということなんですね
では、メモリ使用量をほとんど気にしなくていいPC用アプリの場合はnewを使うのは配列を作るときくらいでしょうか?
では、メモリ使用量をほとんど気にしなくていいPC用アプリの場合はnewを使うのは配列を作るときくらいでしょうか?
247デフォルトの名無しさん
2019/01/28(月) 07:29:06.39ID:EQR7aoi9 template<typename T>
hogehoge function(hoge<T> h)
{}
hogehoge function(hoge<T> h)
{}
248デフォルトの名無しさん
2019/01/28(月) 07:46:48.21ID:SfbWAPdM249デフォルトの名無しさん
2019/01/28(月) 07:50:40.23ID:i7DZcl3V250デフォルトの名無しさん
2019/01/28(月) 07:52:22.02ID:rMzIHoqv251デフォルトの名無しさん
2019/01/28(月) 10:26:04.99ID:zheEgWgK252デフォルトの名無しさん
2019/01/28(月) 11:15:40.31ID:ZoLOGP13 すまぽ使う場合って明示的にdeleteはしないんですか?
253デフォルトの名無しさん
2019/01/28(月) 11:21:32.36ID:6rt4c1kU 内部で明示的にdeleteされてます
254デフォルトの名無しさん
2019/01/28(月) 12:04:58.06ID:FhzO2Cs0 中に人がいるってことですか?
255デフォルトの名無しさん
2019/01/28(月) 12:18:45.84ID:Pe4cCHSm sumapoってさ
参照カウント処理はアトミックなの?
シングルスレッドのときにオーバーヘッドは問題ないの?
参照カウント処理はアトミックなの?
シングルスレッドのときにオーバーヘッドは問題ないの?
256デフォルトの名無しさん
2019/01/28(月) 12:35:54.44ID:zheEgWgK shared_ptrかunique_ptrかで違う
パフォーマンス気にするなら自分で計測しろ
パフォーマンス気にするなら自分で計測しろ
257デフォルトの名無しさん
2019/01/28(月) 12:51:46.26ID:4hOio++r さすがに今時アトミックなインクリメントをネイティブにサポートしてないようなCPUは考慮不要だろ
そんなゴミデバイスをターゲットにした開発でスマポなんか使うとは思えん
そんなゴミデバイスをターゲットにした開発でスマポなんか使うとは思えん
258デフォルトの名無しさん
2019/01/28(月) 12:52:40.84ID:yOibm1qy >>251
>ただし今時生で使うのはご法度なのでスマポで使う
そんなことない。C++ の本流は今でも生ポインタ。
ポインタは理解できない人が多くて、そういう人が嫌いがちなだけ。
それは彼女自身が理解できないから。
>ただし今時生で使うのはご法度なのでスマポで使う
そんなことない。C++ の本流は今でも生ポインタ。
ポインタは理解できない人が多くて、そういう人が嫌いがちなだけ。
それは彼女自身が理解できないから。
259デフォルトの名無しさん
2019/01/28(月) 13:06:48.75ID:ji//xT0N そやな
260デフォルトの名無しさん
2019/01/28(月) 13:20:55.77ID:4hOio++r そもそも有効範囲を把握できなくなるような行方不明オブジェクトなんかそんなに必要になるかね
GC言語でもそんなの滅多にないわ
大抵のケースではオブジェクトの生存期間と一致する適当な親玉クラスが存在するから、そいつがまとめて掃除するように作るだろ
GC言語でもそんなの滅多にないわ
大抵のケースではオブジェクトの生存期間と一致する適当な親玉クラスが存在するから、そいつがまとめて掃除するように作るだろ
261デフォルトの名無しさん
2019/01/28(月) 14:17:08.44ID:XpM1DMeN 彼女?
262デフォルトの名無しさん
2019/01/28(月) 14:23:26.09ID:sZicpJ+d 本流が何を指すのかよく分からないが個人的な観測範囲ではスマポ推奨する人間の方が多い
大体ポインタ理解した所でヒューマンエラーが防げる訳じゃないんだからスマポに頼るほうが結果的に楽だと思うがなぁ
大体ポインタ理解した所でヒューマンエラーが防げる訳じゃないんだからスマポに頼るほうが結果的に楽だと思うがなぁ
263デフォルトの名無しさん
2019/01/28(月) 14:40:06.30ID:pZ9xHEQJ いっさいdeleteしないという方針にするならわかるけど混ざるのは嫌だね
いざというときの安全策というのでは曖昧すぎ
いざというときの安全策というのでは曖昧すぎ
264デフォルトの名無しさん
2019/01/28(月) 15:18:30.76ID:VEGJrOTQ RAIIとかデストラクタ書くのめんどいとかでスマポよく使うけど
それでもファクトリ?パターンとか生存期間の明確な管理をすべき場面、戻り値の共変性のために
そこそこ生ポ使うけどな
生ポがご法度とか、お前ご法度言いたいだけちゃうんかと
それでもファクトリ?パターンとか生存期間の明確な管理をすべき場面、戻り値の共変性のために
そこそこ生ポ使うけどな
生ポがご法度とか、お前ご法度言いたいだけちゃうんかと
265デフォルトの名無しさん
2019/01/28(月) 15:25:11.18ID:sZicpJ+d そりゃdeleteはしない方針ですよスマポ使うんだから
deleteだって言ってるからメモリアドレスを扱いたいのではなくヒープ確保の結果であるポインタとして話をするね
ライフタイム全部管理し切る自信があって、ムーブとか書くのがめんどくさいってんなら生ポでも良いと思う
ただ人間そんなに優秀じゃないので必然性に迫られない限りスマポ使う方が大多数には向いてるし、ヒープ確保の結果としてのポインタが生ポインタである必然性ってそうそう出会わなくない?
(有るなら具体例を示して貰えるととても有難い)
deleteだって言ってるからメモリアドレスを扱いたいのではなくヒープ確保の結果であるポインタとして話をするね
ライフタイム全部管理し切る自信があって、ムーブとか書くのがめんどくさいってんなら生ポでも良いと思う
ただ人間そんなに優秀じゃないので必然性に迫られない限りスマポ使う方が大多数には向いてるし、ヒープ確保の結果としてのポインタが生ポインタである必然性ってそうそう出会わなくない?
(有るなら具体例を示して貰えるととても有難い)
266デフォルトの名無しさん
2019/01/28(月) 15:30:59.26ID:3CrwaDYk 親玉クラスに任せられない時は、実体管理用のクラス作ってるわ。
何とかFactoryって。仮想クラスはオブジェクトスライシングを避けるためにも基本参照でしか使わん。
いい加減ガベコレつけろよ、と。
何とかFactoryって。仮想クラスはオブジェクトスライシングを避けるためにも基本参照でしか使わん。
いい加減ガベコレつけろよ、と。
267デフォルトの名無しさん
2019/01/28(月) 16:06:58.04ID:sZicpJ+d factoryがunique_ptrじゃだめな場面ってそんなに多いんですかね
268デフォルトの名無しさん
2019/01/28(月) 16:34:44.00ID:yOibm1qy そもそも boost や STL って、C++をC++でなくしてしまうことがある
奇妙で変なライブラリだ。
奇妙で変なライブラリだ。
269デフォルトの名無しさん
2019/01/28(月) 16:36:58.41ID:jKaiFfBH なんか、C++をスクリプト言語化したい人の集まりみたいになってる。
JS や Python みたいな書き方のまま、C++ の速度だけが得られることが
彼らの希望のように思える。
JS や Python みたいな書き方のまま、C++ の速度だけが得られることが
彼らの希望のように思える。
270デフォルトの名無しさん
2019/01/28(月) 17:00:48.06ID:6rt4c1kU 何言ってるんっだこいつ
271デフォルトの名無しさん
2019/01/28(月) 17:10:28.91ID:eIQ8PC4T そういう言語じゃないの?
The Real Stroustrup Interviewで
> I designed C++ so programmers could write code that is both elegant and efficient.
って言ってるけど
The Real Stroustrup Interviewで
> I designed C++ so programmers could write code that is both elegant and efficient.
って言ってるけど
272デフォルトの名無しさん
2019/01/28(月) 17:37:02.66ID:ehhV00bD273デフォルトの名無しさん
2019/01/28(月) 17:57:23.32ID:yOibm1qy >>271
Stroustrup の定義した C++ は結構美しかったんだよ。
boost と stl によってはものすごく汚くなった。
C++ 98 位でが本当の C++ で、それより後は C++ ではないと思う。
Stroustrup の定義した C++ は結構美しかったんだよ。
boost と stl によってはものすごく汚くなった。
C++ 98 位でが本当の C++ で、それより後は C++ ではないと思う。
274デフォルトの名無しさん
2019/01/28(月) 18:01:22.30ID:6rt4c1kU ぼくが考える最強のC++
275デフォルトの名無しさん
2019/01/28(月) 18:13:41.58ID:yOibm1qy 口だけ達者だからな。スクリプター達は。。。
276デフォルトの名無しさん
2019/01/28(月) 18:30:57.19ID:6rt4c1kU >>275
お前のことだぞ
お前のことだぞ
277デフォルトの名無しさん
2019/01/28(月) 18:32:51.86ID:sZicpJ+d278デフォルトの名無しさん
2019/01/28(月) 18:39:44.25ID:jKaiFfBH というか、スクリプターの方がバイナリ・プログラマより圧倒的に多いので
(スクリプト言語の方が習得が簡単なためだと考えられている)、
どうしたってこうなっちゃうな。
でもC++の厳格な書き方は、大きなプログラムを書くときには便利なんだけどね。
(スクリプト言語の方が習得が簡単なためだと考えられている)、
どうしたってこうなっちゃうな。
でもC++の厳格な書き方は、大きなプログラムを書くときには便利なんだけどね。
279デフォルトの名無しさん
2019/01/28(月) 18:40:38.89ID:6rt4c1kU ????
何を言ってるのか分からんのだが
何を言ってるのか分からんのだが
280デフォルトの名無しさん
2019/01/28(月) 18:42:34.38ID:ehhV00bD281デフォルトの名無しさん
2019/01/28(月) 18:45:57.76ID:tKT6HQoa 美しいとかそんなのどうでもいいんだよ!
C++ってのはなぁ、戦略爆撃機に例えるとB52なんだよ
基本設計は大昔すぎて今となっては古くさい
後付けでゴチャゴチャと魔改造やりすぎたせいで
今時の若造が見ると「なんでもっとスマートにできないのか」って言う
だがな、こいつは戦争の道具なんだ
たかがちんけな美学のために性能や機能は犠牲にしない
必要とあれば何でも貪欲に付けたしていくがそれは時代に迎合したいからではなく
仕事に必要だからやるだけだ
そんなプロフェッショナルのための戦争の道具、それがC++だ!
C++ってのはなぁ、戦略爆撃機に例えるとB52なんだよ
基本設計は大昔すぎて今となっては古くさい
後付けでゴチャゴチャと魔改造やりすぎたせいで
今時の若造が見ると「なんでもっとスマートにできないのか」って言う
だがな、こいつは戦争の道具なんだ
たかがちんけな美学のために性能や機能は犠牲にしない
必要とあれば何でも貪欲に付けたしていくがそれは時代に迎合したいからではなく
仕事に必要だからやるだけだ
そんなプロフェッショナルのための戦争の道具、それがC++だ!
282デフォルトの名無しさん
2019/01/28(月) 18:48:22.51ID:m1mrBSmH283デフォルトの名無しさん
2019/01/28(月) 19:15:51.56ID:E4+rgmE7284デフォルトの名無しさん
2019/01/28(月) 19:20:45.82ID:8pg5nSAS イミュータボォなヴァリューオブジェクトを実装するときにコピコン使うかスマポ使うか悩む
285デフォルトの名無しさん
2019/01/28(月) 19:46:05.45ID:zheEgWgK 例外安全性考えたらスマポ使わないでやるのは地獄
生ポとかいってるやつはどうせリークしまくりコード書いてるだろ
たとえ例外オフにしてたとしてもな
生ポとかいってるやつはどうせリークしまくりコード書いてるだろ
たとえ例外オフにしてたとしてもな
286デフォルトの名無しさん
2019/01/28(月) 19:56:32.74ID:ehhV00bD 何言ってんだこいつ
287デフォルトの名無しさん
2019/01/28(月) 20:02:46.72ID:s951gwaK スマポがなかった頃、僕はリークしまくりでしたっていう自己紹介文では?
288デフォルトの名無しさん
2019/01/28(月) 20:22:57.30ID:UJKy5wM0 aho ?
289デフォルトの名無しさん
2019/01/28(月) 20:28:40.03ID:zE5Bvtvg >>247
出来ましたーありがとうm(_ _)m
出来ましたーありがとうm(_ _)m
290デフォルトの名無しさん
2019/01/28(月) 21:27:20.71ID:jKaiFfBH291デフォルトの名無しさん
2019/01/28(月) 21:35:34.93ID:3CrwaDYk 流れを切って悪いが、コンセプトを使ってクラスを抽象化するのってありだと思う? 仮想関数のコストを払いたくないのが主な理由です。
これに関する指針とか本とかあったら教えてつかわさい。
これに関する指針とか本とかあったら教えてつかわさい。
292はちみつ餃子 ◆8X2XSCHEME
2019/01/28(月) 22:06:31.16ID:UMu6PPgN294デフォルトの名無しさん
2019/01/28(月) 22:23:20.84ID:ehhV00bD295デフォルトの名無しさん
2019/01/28(月) 22:27:46.35ID:zheEgWgK 例外安全性の困難さを知らないやつほど大口を叩く
296デフォルトの名無しさん
2019/01/28(月) 22:35:01.85ID:ehhV00bD お前の業界の話なんか知らんわ
例外使わない&リソース管理は一元化してる業種だってあるんだよボケ
自分が他人をけなしてるから自分もけなされてるってわかってるか?
例外使わない&リソース管理は一元化してる業種だってあるんだよボケ
自分が他人をけなしてるから自分もけなされてるってわかってるか?
297デフォルトの名無しさん
2019/01/28(月) 22:36:25.09ID:m1mrBSmH >>293
メモリー買い足してもダメ?
メモリー買い足してもダメ?
298デフォルトの名無しさん
2019/01/28(月) 22:39:50.87ID:6rt4c1kU >スマポが無いとリソース管理全く出来ないやつとかお断りだわ
ガチで障害者で草
ガチで障害者で草
299デフォルトの名無しさん
2019/01/28(月) 22:47:52.82ID:zheEgWgK リソース管理一元化の意味わかる人、解説頼む
スマポ使わない理由なのかそれ
スマポ使わない理由なのかそれ
300はちみつ餃子 ◆8X2XSCHEME
2019/01/28(月) 22:49:39.89ID:UMu6PPgN std::shared_ptr は、まあ速度的に不利になる場合もあるだろうけど、
std::unique_ptr を避ける理由って C++11 すら使えない環境の場合以外にはないと思うんだが、何かある?
std::unique_ptr を避ける理由って C++11 すら使えない環境の場合以外にはないと思うんだが、何かある?
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 空自機レーダー照射、音声データ公開 中国 ★2 [蚤の市★]
- 中国とロシアの爆撃機、日本周辺で共同飛行 [少考さん★]
- 「中国側も日本機のレーダーを感知していた」 中国メディアが報道 [♪♪♪★]
- 【YouTuber】バイク事故で入院のゆたぼん、振込で「お見舞金」募る [muffin★]
- 高市早苗首相、消費税減税に後ろ向き 足かせはレジシステム? 「責任ある積極財政」期待高いが [蚤の市★]
- 堀江貴文、キャッシュレス非対応の店にモヤッ 『PayPay』立ち上げの人物にまさかの直談判「現金決済しかできないんだけど…」 [冬月記者★]
- 防衛省、中国を完全論破www 「事前通告があったのは海自であって空自ではない」 高市早苗勝利 [175344491]
- 今のレス…まさか全力か?
- 不登校だけど今日の夜食はサッポロ一番の…
- 【朗報】かつやが明日から4日間感謝祭開催で200円引き!
- 【悲惨】中国軍が自衛隊に「事前通告」し自衛隊も返答した音声が公開されてしまうwwwこれは高市チェックアウトゕ★4 [597533159]
- 千晴って働いてるの?
