C++相談室 part124 [無断転載禁止]©5ch.io
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん 転載ダメ©2ch.net (ワッチョイ 7fc9-G+K4)
2016/04/03(日) 00:22:24.07ID:ZT/2NYWz0ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレに
お願いします。
前スレ
C++相談室 part123
http://echo.2ch.net/test/read.cgi/tech/1456040187/
このスレもよろしくね。
【初心者歓迎】C/C++室 Ver.97【環境依存OK】
http://peace.2ch.net/test/read.cgi/tech/1439849418/
■長いソースを貼るときはここへ。■
http://codepad.org/
http://ideone.com/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
0002デフォルトの名無しさん (ワッチョイ 7fc9-G+K4)
2016/04/03(日) 00:23:36.87ID:ZT/2NYWz0https://isocpp.org/wiki/faq/
http://www.bohyoh.com/CandCPP/FAQ/ (日本語)
0003デフォルトの名無しさん (ワッチョイ 7fc9-G+K4)
2016/04/03(日) 00:24:40.13ID:ZT/2NYWz0環境によるだろ。
俺はBorland-C++5.6.2に -D_RTLDLL オプションを指定して、極力
ランタイムを使用するようにして使っているが、例えばstd::vectorを
使っても使わない時と比べ10Kほどしか増えない
すげえ。ダイナミックリンクしといてファイルサイズが増えないとかいってるよ。この人。
C1010: プリコンパイル済みヘッダーの検索中に予期しない EOF を検出しました。
とかいうエラーが出るんだけどこれってどうすればいいの?
#include <stdafx.h>
後死ね。
言葉が悪いな。それで教えているつもりか。
まぁヒントぐらいにはなったな。
うむごくろう。
0004デフォルトの名無しさん (ワッチョイ 7fc9-G+K4)
2016/04/03(日) 00:25:56.22ID:ZT/2NYWz00005デフォルトの名無しさん (ワッチョイ b742-G+K4)
2016/04/04(月) 01:31:35.53ID:QWzclXen0これは>>1乙じゃなくて\0終端を表すzeroの頭文字なんだからね!
0006デフォルトの名無しさん (ガックシ 0+af-e5NB)
2016/04/04(月) 16:33:22.23ID:vx7kDnRQ+auto operator * (const matrix<T>& A, const matrix<U>& B)
-> matrix<decltype( std::declval<T>() * std::declval<U>() )>
ってTがcomplex<float>, Uがcomplex<U>のときにうまくいかないみたい
ttp://stackoverflow.com/questions/16865376/idiomatic-c11-type-promotion
に書いてあることと同じ現象が発生するわ
0007デフォルトの名無しさん (ワッチョイ b7a8-ppXo)
2016/04/04(月) 17:51:25.41ID:K+tP/W6A0これは無理だろ
0008デフォルトの名無しさん (オッペケ Sref-G+K4)
2016/04/04(月) 19:03:53.18ID:C11O14/Yr代わりにstd::common_type_t<T, U>にしたらいかんの?
0009デフォルトの名無しさん (ワッチョイ b77b-Kvzb)
2016/04/04(月) 19:30:33.08ID:ogDZeBJL0何をやりたいのか勘違いしてるかも知れないけど「Uがcomplex<U>」は書き間違いだとして、
そもそも
complex<double> z1;
complex<float> z2;
z1*z2;
とかは標準のままじゃ出来ないだろ。演算子定義してる?
リンク先の現象とは別のものだと思うけど?
0010デフォルトの名無しさん (jp 0Haf-e5NB)
2016/04/04(月) 20:11:57.58ID:jBujPHQXHごめん。complex<U>→complex<double> だった。
template <class T, class U>
std::complex< decltype(std::declval<T>()*std::declval<U>() )>
operator * (const std::complex<T>& z1, const std::complex<U>& z2)
{
return std::complex< decltype(std::declval<T>()*std::declval<U>() )>
(z1.real()*z2.real()-z1.imag()*z2.imag(),
z1.real()*z2.imag()+z1.imag()*z2.real() );
}
は準備してるけど、これがなくてもコンパイル通る。ところが
template <class T> std::complex<T> operator * (int d, const std::complex<T>& z)
{
return std::complex<T>(d*real(z), d*imag(z));
}
がないと、
エラー C2893 関数テンプレート 'matrix<unknown-type> operator *(const U &,const matrix<T> &)' の特定に失敗しました
エラー C2784 'matrix<unknown-type> operator *(const matrix<T> &,const matrix<U> &)':
テンプレート 引数を'const matrix<T> &' に対して 'const std::complex<float>' から減少できませんでした
・・・みたいなのがわんさか出る.
0011デフォルトの名無しさん (jp 0Haf-e5NB)
2016/04/04(月) 20:15:55.07ID:jBujPHQXHmatrix<complex<double>> b(3,3);
af*bの演算やると、VC++2015では
警告 C4244 '引数': 'double' から 'int' への変換です。データが失われる可能性があります。 mat_test3 c:\users\ayabe\desktop\mat_test3\mat_test3\matrix_.h 203
がでる.gcc(TDM gcc 5.1.0)では警告すらでずにdoubleからintへの型キャストが起こる。
0012デフォルトの名無しさん (jp 0Haf-e5NB)
2016/04/04(月) 20:31:24.66ID:jBujPHQXH{
return std::complex<T>(d*real(z), d*imag(z));
}
↓訂正
template <class T> std::complex<T> operator * (const std::complex<T>& z, int d)
{
return std::complex<T>(d*real(z), d*imag(z));
}
まあ,decltypeはもう使わないからいいか。お騒がせしました。
0013デフォルトの名無しさん (ワッチョイ b77b-Kvzb)
2016/04/04(月) 20:36:09.73ID:ogDZeBJL0これがもうダメだろ。例えばTがcomplex<double>、Uがcomplex<float>なら*の結果の型が定義されていないんだから
VS2015の警告はこれに関しては全く正しいよ
0014デフォルトの名無しさん (jp 0Haf-e5NB)
2016/04/04(月) 20:41:55.46ID:jBujPHQXHそれと結果の型をどうやって定義するんですか?
MPLかなんか知らんけど、そんなことするくらいならBlitz++を開発した
人のプリプロセッサ命令使うわ
0015デフォルトの名無しさん (ワッチョイ b77b-Kvzb)
2016/04/04(月) 21:04:57.93ID:ogDZeBJL0あなたがそうさせたから
だから標準ではcomplex<double>*complex<float>とか
complex<double>*floatとか、complex<double>*intとかは定義されていないの
そこにあなたがcomplex<T>*intを定義したもんだから
complex<double>*floatがcomplex<double>*intに変換されたてしまったというだけ
型変換ルールは難しいよね
このままC++でプログラミングを続けると躓きまくるパターンだな
0016デフォルトの名無しさん (jp 0Haf-e5NB)
2016/04/04(月) 21:16:48.03ID:jBujPHQXHあんたみたいな奴に上から目線で言われたくない。馬鹿
0017デフォルトの名無しさん (ワッチョイ b77b-Kvzb)
2016/04/04(月) 21:18:22.81ID:ogDZeBJL00018デフォルトの名無しさん (ワッチョイ 9fa6-eoZT)
2016/04/04(月) 21:36:28.38ID:aM9lztCf00019デフォルトの名無しさん (ワッチョイ 6fcc-G+K4)
2016/04/05(火) 14:56:46.43ID:FzTJXf0400020デフォルトの名無しさん (ワッチョイ 7c16-QzB1)
2016/04/07(木) 09:40:32.57ID:sYQgs7of00021デフォルトの名無しさん (スプー Sdb8-xmDs)
2016/04/07(木) 11:23:16.83ID:AC5hJBPJd状況:授業の必修でJavaがあるからなんなら同時進行でC++もやろうと思う
家に母艦となりうる富士通Esprimoという一体型PCあり
家との距離や買い物サークルの関係で図書館利用が多いのでノートパソコンでの学習を希望
質問一 どのレベルのノーパソコンだとストレスフリーか?
できれば住民の使ってるものも教えてもらいたい
質問二 また他の機材はいるか?
質問三 参考書としてどうしても必要なものと入門書について
0022デフォルトの名無しさん (スプー Sdc8-Ixw5)
2016/04/07(木) 11:28:08.01ID:geZU7+Zhd0023デフォルトの名無しさん (ワントンキン MM40-xmDs)
2016/04/07(木) 12:36:54.37ID:XWAdlud5M回答一 最低でも100万円クラスのものが必要となる
回答二 専用キーボードとデバッグ用ディスプレイというものが必須である
また、オプションではあるがコード解析用RAMがあったほうがよい
回答三 C++のJIS規格書が必要である
参考書はThe Art of Computer programming、Structure and Interpretation of Computer Programs、Numerical Recipesなどを読むことが望ましい
0024デフォルトの名無しさん (スプー Sdc8-Ixw5)
2016/04/07(木) 12:47:48.05ID:geZU7+Zhd0025デフォルトの名無しさん (ガラプー KK8d-nXV3)
2016/04/07(木) 13:50:27.18ID:D9AesW8PK完全にストレスフリーではない(eclipse使用時や、VSのインテリセンスの動作速度)が、許容範囲。
SSDモデルであればストレスフリーかと思う。
2.あると便利なのはWindows 7以下のOSと、Linux。
Windowsの方はデバイスロスト対策(8以上は発生しない)の勉強、
Linuxはオーバーランとかのセキュリティの勉強。
(Windowsは例外投げられて止まる。コンパイラオプション無効にしても書き換え後が以前と変わってると無意味だった)
3.ドラフト(規格の草案)がgithubにあって無料。
『プログラミング言語C++第4版』、『C++のためのAPIデザイン』、『effective modern C++』、『C++テンプレートテクニック 第2版』
第4版は必須。
あと>>23死んでくれ
0026デフォルトの名無しさん (JP 0H8d-90FX)
2016/04/07(木) 14:37:39.73ID:/RqFI3WhH表面上似ているからかえって混同してどっちも使いものにならないよ
0027デフォルトの名無しさん (ワッチョイ 7c7b-N9sV)
2016/04/07(木) 14:43:04.17ID:qpo8uFCK0どちかに固まってしまうほうがまずい。
0028デフォルトの名無しさん (ワッチョイ 7c16-QzB1)
2016/04/07(木) 14:51:19.83ID:sYQgs7of01.
CPUはCore-i5程度でおつりがくる。ATOMでもclangやgccは使える。
RAMは2Gあれば充分。
HDDは250GBあれば充分。
モニタの解像度は予算が許す限りの最大。狭い画面では思考まで狭くつぶされてしまう。
OSはWindowsでよいが、Linuxならモアベター。
2.
プリンタ。
実にくだらんことだが、プログラムはただ紙に印刷してみるだけで、モニタでは気付けなかったことがわかるからだ。(そして、そのあと決まって紙を無駄遣いしたと思う)
ついつい生活用を兼ねてインクジェットが欲しくなるかも知れんが、プログラム用にはモノクロレーザーがよい。プログラム自体に色はついていないし、レーザーは乾燥させなくてよく、トナーがインクより日持ちする。
3.
・必要
プログラム言語C++第4版 ISBN-13: 978-4797375954
ISO/IEC 14882:2014
・入門書
ストラウストラップのプログラミング入門 ISBN-13: 978-4798119595
0029デフォルトの名無しさん (ワッチョイ 7c7b-N9sV)
2016/04/07(木) 15:00:08.34ID:qpo8uFCK0それに俺が使ってるエディタ上では色ついてるし。
0030デフォルトの名無しさん (スプー Sdb8-xmDs)
2016/04/07(木) 15:09:43.34ID:QhAHKtTedありがとうございます
0031デフォルトの名無しさん (ワッチョイ 9dcb-sG86)
2016/04/07(木) 17:11:02.42ID:8Ibgsdhs00032デフォルトの名無しさん (JP 0H8d-90FX)
2016/04/07(木) 20:52:38.47ID:/RqFI3WhH夢見すぎ
独学でどっちか片方それなりにでも身についてれば御の字
0033デフォルトの名無しさん (ワッチョイ 7c16-QzB1)
2016/04/07(木) 21:12:54.17ID:sYQgs7of0マシン語もZ80と6800を並列で(当時の俺にとって2つの別言語)
N-BASICとF-BASICと大型のBASICも脳の別領域を使ってたし
0034はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 95a8-j/+h)
2016/04/07(木) 21:20:11.88ID:DadLuQug0JIS の C++ は C++03 だぞ。
0035デフォルトの名無しさん (ワッチョイ 7c16-QzB1)
2016/04/07(木) 21:36:31.97ID:sYQgs7of00036デフォルトの名無しさん (ブーイモ MM8d-xmDs)
2016/04/07(木) 23:00:34.69ID:KjNJiL53Mうちのプロジェクト500万ステップオーバーなんだけど、どうか印刷しないでくれよな。
0037デフォルトの名無しさん (ワッチョイ 7c16-QzB1)
2016/04/07(木) 23:11:01.88ID:sYQgs7of00038デフォルトの名無しさん (ワッチョイ 74d4-+kqq)
2016/04/07(木) 23:28:30.78ID:EsZr6lr20time_tで日付表示しようとすると全然違う日付になるんだけど、
long型の宣言を何に変えればいいんでしょうか
0039デフォルトの名無しさん (ワンミングク MM40-m9JC)
2016/04/07(木) 23:32:49.64ID:s1RKY7ZgMtime_t型
0040デフォルトの名無しさん (オッペケ Sr29-xmDs)
2016/04/07(木) 23:54:11.99ID:OOVH0iNWr0041デフォルトの名無しさん (ワッチョイ 3d7b-m9JC)
2016/04/08(金) 00:13:14.18ID:tJM0u/og0何を当たり前の事を仰ってるのでしょうか
0042デフォルトの名無しさん (ワッチョイ 7f7b-DytT)
2016/04/08(金) 13:25:37.92ID:nRvqcDPq0符合有無
を正しく使い分けなきゃならない
0043デフォルトの名無しさん (オッペケ Sr29-xmDs)
2016/04/08(金) 19:57:04.15ID:BVnlFcaMrそれは全部区別ついてないとだめだろ
0044デフォルトの名無しさん (ワッチョイ f68b-vY2k)
2016/04/08(金) 22:08:41.94ID:WlvNU3n40違ったっけ
charが符号付か否かは処理系依存
ただし表示可能文字(isprint()が非0を返す文字)は正であることはC言語の規格で決まっている、
0045デフォルトの名無しさん (ワッチョイ fac9-xmDs)
2016/04/09(土) 00:37:51.56ID:0tLp+Ivi00046デフォルトの名無しさん (ワッチョイ bbce-xmDs)
2016/04/09(土) 18:54:14.11ID:ALj0g4vo00047デフォルトの名無しさん (オッペケ Sr29-xmDs)
2016/04/10(日) 10:27:04.69ID:y7qpDauWr0048デフォルトの名無しさん (ワッチョイ 9d53-QzB1)
2016/04/10(日) 23:05:48.42ID:DxYgjy+n0ptrdiff_tの話を間違った?
0049デフォルトの名無しさん (ワッチョイ fac9-xmDs)
2016/04/10(日) 23:40:34.03ID:XJxT0yj800050デフォルトの名無しさん (ブーイモ MM8d-xmDs)
2016/04/11(月) 12:18:23.22ID:0MIRpDyTM0051デフォルトの名無しさん (スプー Sdb8-xmDs)
2016/04/11(月) 12:21:40.37ID:I1gJlU3cd0052デフォルトの名無しさん (ワッチョイ 7c36-QzB1)
2016/04/11(月) 16:45:35.21ID:uv6GH2mg0それはコンパイラの問題であって、規格に文句を言うのはお門違いってやつだ
規格合致プログラムなのに難癖つける余計なお節介が邪魔なら、
それをやめさせる方法を探すか、窓から投げ捨てるかは、おまえ自身の問題だし
0053デフォルトの名無しさん (ワッチョイ 7f7b-DytT)
2016/04/11(月) 18:25:06.27ID:cJbV017h0お前バカだろう。>>42を正しく使い分けるためにコンパイラにチェックさせるんだよ。
0054デフォルトの名無しさん (ガラプー KKbf-nXV3)
2016/04/11(月) 19:31:17.66ID:RH3X14PwK詳しくは知らないけど測度論?でもやってんのかと言いたい。
バナッハ・タルスキのあれな。
現実には存在しえないだろ負値。
0055デフォルトの名無しさん (ワッチョイ 88cb-j/+h)
2016/04/11(月) 20:14:37.61ID:F0n0MoRl00056デフォルトの名無しさん (アウアウ Sac1-L6fk)
2016/04/11(月) 20:26:21.31ID:Whc/9IOHaあとは効率次第
0057デフォルトの名無しさん (スプー Sdb8-xmDs)
2016/04/11(月) 20:46:28.59ID:liIxp6L/dバナタルは測度が定義できない部分集合に分解
0058デフォルトの名無しさん (ワッチョイ fe98-QzB1)
2016/04/11(月) 22:15:52.94ID:DS0BshJK0正しく使い分けるを定義しろ
いちいち明示的にキャストすることか
それとも変換も昇格も一切使わないことか
0059デフォルトの名無しさん (ワントンキン MM40-xmDs)
2016/04/11(月) 22:20:20.19ID:t8dajl0XM0060デフォルトの名無しさん (オッペケ Sr29-SddS)
2016/04/11(月) 22:41:24.20ID:+GeXodTxrコンパイラーは意図があって警告を出してるのであって
その意図に照らし合わせて規格がこうあるべきだったと言っているのに、
規格通りなら文句言うなとか、アスペなの?
0061デフォルトの名無しさん (アウアウ Sac1-L6fk)
2016/04/11(月) 23:05:12.91ID:Whc/9IOHa0062デフォルトの名無しさん (ワッチョイ e042-j/+h)
2016/04/11(月) 23:07:04.91ID:4BrCfwua00063デフォルトの名無しさん (ワッチョイ a030-j/+h)
2016/04/11(月) 23:19:25.81ID:x/V8tc7c0アスペ全然関係ねぇだろって状況でしか
使われるの見たことないなそういやw
0064デフォルトの名無しさん (ワッチョイ 413c-SddS)
2016/04/12(火) 00:26:59.20ID:0UTgzyp30アスペ
0065デフォルトの名無しさん (ワッチョイ 7f7b-DytT)
2016/04/12(火) 01:17:31.61ID:sQLQIwRw0定義してもらわなきゃわからない素人は引っ込んでようね
0066デフォルトの名無しさん (ドコグロ MM1c-SddS)
2016/04/12(火) 08:30:13.78ID:xYAotuK9MC脳の老害はそろそろ引退しろよ
0067デフォルトの名無しさん (ワッチョイ 9da8-QzB1)
2016/04/12(火) 08:42:37.79ID:xvAFE9Om0定義できないんだろ?
自分の主張をきちんと整理できないのは
素人以前に論客としての基本ができてないんだよ
恥を知ろうね
0068デフォルトの名無しさん (オッペケ Sr29-SddS)
2016/04/12(火) 18:30:33.78ID:Pt+c78dMrintを使った演算をしたいことはある。
キャストしなきゃいけないのは流石に不便
0069デフォルトの名無しさん (ガラプー KKbf-nXV3)
2016/04/12(火) 20:26:27.00ID:EvPGf+vtK具体的にどんな操作ですか?
0070デフォルトの名無しさん (ワッチョイ 7f7b-DytT)
2016/04/13(水) 00:00:27.02ID:z3tTaqtH0そんなに教えて欲しいのか?
添削してやるから定義してみな。
0071デフォルトの名無しさん (ワッチョイ 9da8-QzB1)
2016/04/13(水) 00:28:53.46ID:CqRnSqIY0定義するのはおまえだよ
小学生以下のすり替えしてんじゃねえ
つーか誰が何を主張してるのか整理できない
掛け値なし小学生以下の論客くずれじゃしゃーねーかw
0072デフォルトの名無しさん (ワッチョイ d37b-pOi2)
2016/04/14(木) 03:08:20.77ID:PjjDqAVF0教えをこう時は「お願いいたします」と頭を下げるのが、小学生でも知ってる常識だ
バカめ
0073デフォルトの名無しさん (アウアウ Sa67-rJyw)
2016/04/14(木) 03:47:34.18ID:/Il1GiFba0074デフォルトの名無しさん (ワッチョイ 7bb4-w4ft)
2016/04/14(木) 13:08:33.42ID:bhJKkgbs0お前らはどの言語にいくの?
D? Rust?
0075デフォルトの名無しさん (ワッチョイ db38-TaqW)
2016/04/14(木) 13:11:50.21ID:rJmmubWG0JavaScriptに逃げます
0076デフォルトの名無しさん (ワッチョイ 27a8-q6hj)
2016/04/14(木) 13:18:07.01ID:/lkdV6bx0おまえに教えを請うバカは全宇宙に1人もいねーよど低脳
おまえの主張が俺に伝わらなくて困るのはおまえだろ
俺にとって顔も知らん池沼のあうあうあーが意味わかんなくても当たり前だし
0077デフォルトの名無しさん (ブーイモ MM2f-Gtsw)
2016/04/14(木) 13:30:04.13ID:RrIZ4ynPM普通、外部リンケージの関数を使うときはプロトタイプ宣言をすればすむ話ですよね
0078デフォルトの名無しさん (ブーイモ MM2f-Gtsw)
2016/04/14(木) 13:38:38.96ID:EGbMBKF8M0079デフォルトの名無しさん (ワッチョイ 7bb4-w4ft)
2016/04/14(木) 14:18:48.75ID:OJhwzOCe0一方で C++ において extern 修飾子はそれを外部に公開することを示す
したがって extern "C" とは
0080デフォルトの名無しさん (スプー Sd2f-Gtsw)
2016/04/14(木) 14:48:57.71ID:r/b7CawPd0081デフォルトの名無しさん (ブーイモ MM2f-Gtsw)
2016/04/14(木) 15:46:36.79ID:RrIZ4ynPMそれはそうですが、externだけの場合の話です
>>79
感心しました。C#もお願いします
0082デフォルトの名無しさん (ワッチョイ 6fcc-Gtsw)
2016/04/14(木) 16:05:37.53ID:Bx+gDZ8M00083デフォルトの名無しさん (ワッチョイ 6ba8-Jz3o)
2016/04/14(木) 16:21:43.87ID:LtT4shjO0Rust で C++ コンパイラの開発を試みます。
0084デフォルトの名無しさん (ブーイモ MM2f-Gtsw)
2016/04/14(木) 16:51:00.65ID:RrIZ4ynPMプロトタイプ宣言との違いが分かりません
すみませんが例を示していただけないでしょうか?
0085デフォルトの名無しさん (ワッチョイ 6fcc-Gtsw)
2016/04/14(木) 17:34:52.06ID:Bx+gDZ8M0extern記述しないとできないから
0086デフォルトの名無しさん (スプー Sdaf-VZXL)
2016/04/14(木) 17:41:13.29ID:tV4LbGhWd0087デフォルトの名無しさん (ワッチョイ 4bdc-WXps)
2016/04/14(木) 17:51:08.75ID:Y6Qtie590付けても害はないし、つけなくても意味は同じ。
古いCとの互換性とかで残ってるんだと思ったが、
Cにおいても「externなしだと曖昧になる場面」てのが思い浮かばない。
g++ では関数内での外部関数宣言もexternなしで通ったよ。
0088デフォルトの名無しさん (ワッチョイ 6fcc-Gtsw)
2016/04/14(木) 17:55:10.24ID:Bx+gDZ8M00089デフォルトの名無しさん (ワッチョイ 6fcc-Gtsw)
2016/04/14(木) 17:56:53.73ID:Bx+gDZ8M00090デフォルトの名無しさん (ワッチョイ 4bdc-WXps)
2016/04/14(木) 20:24:15.71ID:Y6Qtie590引数型の簡単な変換のインライン定義とを並べて書くときに…
namespace SomeSpace {
extern bool some_condition_check(const char* str);
inline bool some_condition_check(const std::string& str) {return str.c_str();}
bool another_condition_check(const char* str);
inline bool another_condition_check(const std::string& str) {return str.c_str();}
}
externを書いておくと関数名がきれいに縦に並んでちょっと見やすくなる
という効用があるね。"extern" と "inline" の字数が同じだから。
0091デフォルトの名無しさん (ワッチョイ 5f13-mNwz)
2016/04/14(木) 20:43:24.46ID:f1hhftJp0へえ‥今は関数の内部に構造体の定義が書けるんだ‥新鮮だね
0092デフォルトの名無しさん (JP 0H07-DByn)
2016/04/14(木) 21:23:16.59ID:BY7gxQ6DH0093デフォルトの名無しさん (ワッチョイ a742-VZXL)
2016/04/14(木) 21:30:57.47ID:4DxPT4rq0lambdaもだめか
0094デフォルトの名無しさん (オッペケ Sr27-Gtsw)
2016/04/14(木) 21:43:18.93ID:sprOrblAr0095デフォルトの名無しさん (ワッチョイ 27a8-q6hj)
2016/04/14(木) 22:38:49.39ID:/lkdV6bx0自分の関数原型と関数定義をexternにするとか?
今となってはD組の話、とタカをくくると思わぬところで足をすくわれる
# 死刑執行がおせーんだよ >WG21
0096デフォルトの名無しさん (ワンミングク MMef-8wQM)
2016/04/15(金) 00:42:56.90ID:MuKGbCphM0097デフォルトの名無しさん (ワッチョイ b763-Gtsw)
2016/04/15(金) 08:37:52.62ID:wcmNmqit0extern void f();
一体何を検知したいのか
0098デフォルトの名無しさん (ブーイモ MM2f-Gtsw)
2016/04/15(金) 15:29:12.25ID:wsA6y7yQM自分もそう理解してました
実はコードはC++でなくCなのですが、まぁそこは同じですよね
NASA、エアバス、ボーイングなどが参画してる某OSSなんですが、
あまり洗練されたコードじゃないので深く意味を考えないほうがいいかも
0099デフォルトの名無しさん (スプー Sdaf-VZXL)
2016/04/15(金) 15:37:21.93ID:rmsnL02Wdstd::array< char, sizeof( hoge ) > buf;
hoge* a = new( buf.data() ) hoge;
a->s = "aaaaaaaaaaa";
std::array< char, sizeof( hoge ) > buf2;
buf2 = buf;
hoge* b = reinterpret_cast< hoge* >( buf2.data() );
b->s = "bbbbbbbbbb";
std::printf( "%s %s\n", a->s.c_str(), b->s.c_str() );
aとbはオブジェクトとして使っても大丈夫ですか
0100デフォルトの名無しさん (ワッチョイ 277b-GRux)
2016/04/15(金) 15:53:10.39ID:CjDQhw6r00101デフォルトの名無しさん (スプー Sdaf-VZXL)
2016/04/15(金) 16:08:36.54ID:rmsnL02Wd0102デフォルトの名無しさん (ワッチョイ b763-Gtsw)
2016/04/15(金) 16:14:01.72ID:wcmNmqit0これが許されない
0103デフォルトの名無しさん (ワッチョイ b763-Gtsw)
2016/04/15(金) 16:18:15.70ID:wcmNmqit00104デフォルトの名無しさん (ワッチョイ 277b-GRux)
2016/04/15(金) 16:22:54.24ID:CjDQhw6r0これ
buf2 = buf;
これではstd::stringをメンバとして含む非PODオブジェクトをバイナリコピーしちゃってる
2つを別々にplacement new/deleteすれば問題ないと思うけど
0105デフォルトの名無しさん (ワンミングク MMef-8wQM)
2016/04/16(土) 00:18:14.54ID:/5mBf/vNMデストラクタ呼んでないからリークするけど。
bは駄目
0106デフォルトの名無しさん (ワッチョイ b763-Gtsw)
2016/04/16(土) 00:28:56.13ID:Wk1F8zu40問題無いと盲信するのは労害に違いない。
まあオツムの進化がPODで止まっているようでは仕方ない
0107デフォルトの名無しさん (ワンミングク MMef-8wQM)
2016/04/16(土) 00:33:12.94ID:/5mBf/vNMえ?何で?
0108デフォルトの名無しさん (ワッチョイ 277b-GRux)
2016/04/16(土) 06:08:39.46ID:4BDbPdkp0自分こそ老害であるとは思わないのかw
老人用オムツつけてるんじゃないのかおい
0109デフォルトの名無しさん (ワッチョイ b763-Gtsw)
2016/04/16(土) 11:08:08.36ID:Wk1F8zu40alignas(aho) char buf1[sizeof(aho)];
0110デフォルトの名無しさん (ワッチョイ b763-Gtsw)
2016/04/16(土) 12:14:16.20ID:Wk1F8zu40struct a() { // 非PODだがメモリコピー可能
public: double v;
private: double w;
};
0111デフォルトの名無しさん (ワッチョイ 27a8-q6hj)
2016/04/16(土) 12:23:56.26ID:KhM6yuxr00112デフォルトの名無しさん (ワッチョイ 277b-GRux)
2016/04/16(土) 13:45:45.95ID:4BDbPdkp0やけに自信満々で勿体ぶってると思ったらそれだったかwオムツ着用じいちゃん
std::array<char, N>で得られる領域は1バイトアライメントになるとでも思い込んでいそうだな
0113片山博文MZ ◆T6xkBnTXz7B0 (ガラプー KK77-vtUn)
2016/04/16(土) 14:01:09.62ID:ri69Z7UDKhttp://ideone.com/ZmTMFB
0114デフォルトの名無しさん (ワッチョイ 277b-GRux)
2016/04/16(土) 14:05:28.67ID:4BDbPdkp0そんなこと言い出したらis_pod<T>::valueがfalseになるのに実はメモリコピーして問題ないなんて例はいくらでも出せるわ
>>99のhogeはメモリコピー不可なのは明らかなのによくそんな難癖つけられるもんだな
ナウでいけてるヤングはメモリコピー可能なオブジェクトかどうかはis_pod<T>::valueで判断する
0115デフォルトの名無しさん (ワッチョイ 277b-GRux)
2016/04/16(土) 14:42:33.12ID:4BDbPdkp0>struct a() {
なんなんだよ()って?そんな文法知らないし、コンパイルできないんですけどw
俺が書いた
>placement new/deleteすれば問題ない
のdeleteを「placement newの戻り値をdeleteしちゃう」と解釈しちゃうくらいのアスペなら
こういうところは間違わないほうがいいよ
0116デフォルトの名無しさん (ワッチョイ b763-Gtsw)
2016/04/16(土) 14:43:42.03ID:Wk1F8zu40trivially copyableの概念が確立されていなかった時代のJIS規格票()で見かけたPODを信じちゃったんだろうな低能は
0117デフォルトの名無しさん (スプー Sd2f-Gtsw)
2016/04/16(土) 14:48:58.78ID:i8qYlRuXdよくわかんないけどそれPODと呼べないんだっけ?
0118デフォルトの名無しさん (ワッチョイ b763-Gtsw)
2016/04/16(土) 14:54:31.09ID:Wk1F8zu40★の条件が満たせない
PODの条件
standard-layout
すべてが非vritual
アクセス制御が一通り★
:
トリビアルなクラス
トリビアルなデフォルトコンストラクター
trivially copyable
トリビアルなコピー/ムーブコンストラクター
トリビアルな代入/ムーブ演算子
トリビアルなデストラクター
0119デフォルトの名無しさん (ワッチョイ b763-Gtsw)
2016/04/16(土) 15:01:12.47ID:Wk1F8zu40ちょっとワロタ
その理屈は正しいw
0120デフォルトの名無しさん (ワッチョイ 277b-GRux)
2016/04/16(土) 15:07:51.48ID:4BDbPdkp0>std::is_trivially_copyable_v
またやっちゃたようだな。is_trivially_copyable_vなんてあるか?
is_trivially_copyableならあるが
せっかく知識はあるのにしょうもないところで墓穴を掘るタイプだな
0121デフォルトの名無しさん (ワッチョイ 277b-GRux)
2016/04/16(土) 15:13:47.13ID:4BDbPdkp00122デフォルトの名無しさん (ワッチョイ b763-Gtsw)
2016/04/16(土) 15:16:16.66ID:Wk1F8zu40悪ぃ悪ぃ、規格じゃなくてN4567見てたわ
で、
>std::array<char, N>で得られる領域は1バイトアライメントになるとでも思い込んでいそうだな
思ってたけど、違うの?
http://ideone.com/OEAth2
0123デフォルトの名無しさん (アウアウ Sa67-33s9)
2016/04/16(土) 18:10:30.85ID:Xvqhm3pva0124デフォルトの名無しさん (ワッチョイ 277b-GRux)
2016/04/16(土) 19:32:32.34ID:4BDbPdkp0std::arrayのアライメントの件についてはあなたが正しかったことを全面的に認めます
new char[N]なら規格の5.3.4/10で
"an integral multiple of the strictest fundamental alignment requirement"
になることが保証されているのと混同してた
よって、std::arrayで確保した領域でalignof(T)が1以外のオブジェクトをplacement newするのはあなたの指摘通り許されません
std::arrayの代わりにstd::aligned_storageを使うべきですね
0125デフォルトの名無しさん (ワッチョイ b763-Gtsw)
2016/04/17(日) 01:00:29.55ID:xPbVippa0ここはお前の日記帳じゃない
ゴミを垂れるな
誰かがそのウンコードを真似したらどうすんだ
0126デフォルトの名無しさん (ワッチョイ d37b-pOi2)
2016/04/17(日) 08:26:09.36ID:b+eVByZe0整数型の正しい使い方を定義できないゴブリン脳が一匹いる
>>58だ
0127デフォルトの名無しさん (ワッチョイ b763-Gtsw)
2016/04/17(日) 11:50:26.61ID:xPbVippa00128デフォルトの名無しさん (ワッチョイ 27a8-q6hj)
2016/04/17(日) 13:17:00.83ID:xNZ/zNBq00129デフォルトの名無しさん (ワッチョイ 7b54-bJ9H)
2016/04/17(日) 14:09:07.52ID:oaifAOu80まあ規格にある int_least64_tだけ使えば良いと思うけど
0130デフォルトの名無しさん (ワッチョイ b763-Gtsw)
2016/04/17(日) 14:23:59.21ID:xPbVippa0long longとint_least64_tの違いは
それより小さくて64ビット以上の他の型が存在するかどうかなのだが
何を言っているんだお前は
0131デフォルトの名無しさん (ワッチョイ 6fcc-Gtsw)
2016/04/17(日) 14:51:46.39ID:efZowWH000132デフォルトの名無しさん (ワッチョイ 27d9-Gtsw)
2016/04/17(日) 15:06:35.52ID:l5b4C1Fn00133デフォルトの名無しさん (ワッチョイ 27d9-Gtsw)
2016/04/17(日) 15:09:31.34ID:l5b4C1Fn00134デフォルトの名無しさん (ワッチョイ b763-Gtsw)
2016/04/17(日) 15:24:52.93ID:xPbVippa0何より2の補数表現が保証されたint??_tは捨てがたい
0135デフォルトの名無しさん (ワッチョイ b7cf-cFRK)
2016/04/17(日) 15:30:50.77ID:JUdcx65W00136デフォルトの名無しさん (ブーイモ MM47-Gtsw)
2016/04/17(日) 15:48:10.23ID:nxW4nqqmMお前日本人?
64bitより小さくて、かつ、64bit以上の型が存在するかってことだろ?
つまり、
えっ?
0137デフォルトの名無しさん (ワッチョイ 0b91-Gtsw)
2016/04/17(日) 15:52:23.49ID:CNQH8xMB0一台増やそうと思うんだが
0138デフォルトの名無しさん (ワッチョイ 7b54-Gtsw)
2016/04/17(日) 16:02:37.24ID:oaifAOu80かつlong longとも異なら無ければ使う意味はないよ
だって大きさの定義はlong longと同じだから
0139デフォルトの名無しさん (ワッチョイ 7b54-Gtsw)
2016/04/17(日) 16:03:57.71ID:oaifAOu80使う意味が無いではなく、使い分ける意味がない
0140デフォルトの名無しさん (ワッチョイ 27d9-Gtsw)
2016/04/17(日) 16:30:44.23ID:l5b4C1Fn0低レベル用途には必須だけど、アプリ用途だとleast/fastの方が使いやすいと思った。
0141片山博文MZ ◆T6xkBnTXz7B0 (ワッチョイ d38f-2SUX)
2016/04/17(日) 16:40:45.16ID:EFtPKpBL0https://github.com/katahiromz/unboost
0142デフォルトの名無しさん (ワッチョイ eb7b-Jz3o)
2016/04/17(日) 18:32:32.08ID:ZM27BkVH0C99, C++11は規格になってるだろ
0143デフォルトの名無しさん (ワッチョイ 27d9-Gtsw)
2016/04/17(日) 20:04:12.55ID:l5b4C1Fn0規格で処理系依存ってなってたと思うけど、違った?
0144デフォルトの名無しさん (ワッチョイ 0b7b-8wQM)
2016/04/17(日) 20:33:26.12ID:BVEBxeTg0とは言っても対応してない環境は余程特殊なものだろうから無いことを心配するより他の心配した方がいいんじゃないかと思う
0145デフォルトの名無しさん (ワッチョイ 27d9-Gtsw)
2016/04/17(日) 22:04:32.45ID:l5b4C1Fn0どう判断するかは個々人の問題なので。
0146デフォルトの名無しさん (ワッチョイ b763-Gtsw)
2016/04/17(日) 22:52:17.63ID:xPbVippa0Cのint64_tはかなりネガティブな書き方がしてあるから仕方ない
sprintf_sに至っては虫の息
0147デフォルトの名無しさん (ワッチョイ 7bb4-w4ft)
2016/04/18(月) 00:56:20.08ID:5Ir4szOL00148デフォルトの名無しさん (ワッチョイ cf53-q6hj)
2016/04/18(月) 06:24:07.28ID:0gSzJGDh0http://kakaku.com/pc/note-pc/itemlist.aspx?pdf_Spec105=24
0149デフォルトの名無しさん (オッペケ Sr27-Gtsw)
2016/04/18(月) 18:05:37.23ID:geM4ik0Wrループ変数にintじゃなくstd::int64_tとか使ってたら
変人だと思うわ
0150デフォルトの名無しさん (ドコグロ MM0f-Gtsw)
2016/04/18(月) 19:50:05.92ID:C+iDXaNwM必要なら普通に使うけど?
0151デフォルトの名無しさん (ワンミングク MMef-Gtsw)
2016/04/18(月) 20:19:07.03ID:y+UdHKG3Mといってもrange-baseしか最近使ってないけどね
0152デフォルトの名無しさん (ワッチョイ 3fa6-Jz3o)
2016/04/18(月) 21:08:16.98ID:Qvk/GJ/v00153デフォルトの名無しさん (アウアウ Sa67-pOi2)
2016/04/19(火) 03:50:29.85ID:sEKB8saBa0154デフォルトの名無しさん (ワッチョイ 27d9-Gtsw)
2016/04/19(火) 08:38:50.82ID:SvHoNoSF0よう!俺。
0155デフォルトの名無しさん (ワッチョイ cf20-q6hj)
2016/04/19(火) 09:17:49.99ID:Mp5r7P9F0uint_least160_tつーか、uint_least<160>がねえのもおかしいし
0156デフォルトの名無しさん (ワッチョイ 277b-GRux)
2016/04/19(火) 09:55:09.78ID:nL6Ii7Gq0バーカ
0157デフォルトの名無しさん (ワッチョイ db38-TaqW)
2016/04/19(火) 10:08:58.32ID:FK9rMfbT0喧嘩したけりゃ他行きな小僧
0158デフォルトの名無しさん (ワッチョイ 277b-GRux)
2016/04/19(火) 10:30:19.44ID:nL6Ii7Gq0俺はこのバカに少なくとも「バーカ」って言ってあげた
それでお前はこのバカになにが出来るの?
なにも出来ないならお前が消えな
0159デフォルトの名無しさん (ワッチョイ db38-TaqW)
2016/04/19(火) 10:58:38.53ID:FK9rMfbT0喧嘩したけりゃ他行きな小僧
0160デフォルトの名無しさん (ワッチョイ 3742-Jz3o)
2016/04/19(火) 11:04:51.69ID:pETlWi8B00161デフォルトの名無しさん (ワッチョイ 277b-GRux)
2016/04/19(火) 11:13:16.48ID:nL6Ii7Gq0俺に喧嘩売ってるのがFK9rMfbT0、pETlWi8B0
本当に役に立たないゴミだな
0162デフォルトの名無しさん (ワッチョイ db38-TaqW)
2016/04/19(火) 11:15:39.94ID:FK9rMfbT0喧嘩したけりゃ他行きな小僧
0163デフォルトの名無しさん (ワッチョイ 0b7b-8wQM)
2016/04/19(火) 11:22:46.44ID:qXd1Jas400164tasuketekesuta (ワッチョイ d3d5-j49k)
2016/04/19(火) 21:50:00.65ID:spYNmTFF0■DataSet/DataAdapterの仕様
DataAdapter には、SELECT、UPDATE、INSERT、DELETEのSQL文が設定できます。
Fillメソッドを実行するとSELECTのSQL文の基づいてDataSetにデータを読み込みます。このときDataSetの各行には「編集なし」のマークがついています。
値を更新するとそのマークが「更新済」、削除すると「削除済」、データを追加すると「追加済」のマークに変わります。
Updateメソッドを実行すると、DataSetの各行のマークに応じて、設定してあるUPDATE、INSERT、DELETEのSQL文を実行します。
0165tasuketekesuta (ワッチョイ d3d5-j49k)
2016/04/19(火) 21:51:02.12ID:spYNmTFF0■実施したい事【概要】
DataAdapterのFillメソッドで取得したDataSet内のDataTableに対して、
挿入/更新操作をかけていき、全ての処理が終わったら、UPDATEを行う。
その際、DataTableに挿入した順番でDBへの挿入SQLが流れてほしい。
0166tasuketekesuta (ワッチョイ d3d5-j49k)
2016/04/19(火) 21:51:29.36ID:spYNmTFF0DataTable^ tbl;//←DataAdapterのFillメソッドで取得したDataSet内のDataTableだとします
while(10000行程度ループ){
DataRow^ tg_row = tbl->Rows->Find(ループ毎に変わる値);
if( static_cast<DataRow^>(tg_row)==nullptr){
DataRow^ row = tbl->NewRow();
row["hogehoge"] = ループ毎に変わる値;
tbl->Rows->Add(row);//←★★★★★★初期挿入★★★★★★★
}
else{
row["hogehoge"] = ループ毎に変わる値;
}
}
上記のソースで5000行のレコードが出来たと仮定します。
※つまり"ループ毎に変わる値"の重複が半分あったということ
この状態でUPDATEを行うと、
なぜか、初期挿入した順番通りにinsert文が発行されません。
※DB上で見ると順番がごちゃまぜです
0167デフォルトの名無しさん (ワッチョイ d3d5-j49k)
2016/04/19(火) 21:52:10.39ID:spYNmTFF0■質問�@
なぜ、初期挿入した順番通りにinsert文が発行されないのでしょうか?
tbl->Rows->Findで取得したレコードの値を変更すると順番が変更になってしまうのでしょうか?
■質問�A
初期挿入した順番にinsert文が発行されようにするには、
どの様にしたら良いでしょうか?
解決策をご教授下さい。
0168デフォルトの名無しさん (ワッチョイ b763-Gtsw)
2016/04/19(火) 21:59:51.04ID:4s2SrkGy0荒らしは去れ
0169デフォルトの名無しさん (アークセー Sx27-bDYe)
2016/04/20(水) 03:23:29.57ID:y2Y1qnWRxデータベースに依存した問題
てか、SQLのほうの話題だろ
0170デフォルトの名無しさん (ワッチョイ cf13-kHia)
2016/04/20(水) 05:58:33.09ID:Ysvgw+BH0そもそも、挿入順とDB上での順番が一致することは保証されていない。
http://q.hatena.ne.jp/1153407134
0171デフォルトの名無しさん (アウアウ Sa67-33s9)
2016/04/20(水) 07:18:51.45ID:dTPS4iPYa0172デフォルトの名無しさん (オッペケ Sr27-Gtsw)
2016/04/20(水) 07:58:13.83ID:thevk6F2r0173デフォルトの名無しさん (オッペケ Sr27-Gtsw)
2016/04/20(水) 08:01:43.93ID:thevk6F2r0174デフォルトの名無しさん (ワンミングク MMef-Gtsw)
2016/04/20(水) 09:22:54.95ID:8iJwmy9eM0175デフォルトの名無しさん (ワッチョイ 4b40-u1fT)
2016/04/20(水) 23:06:05.59ID:sW5MEHFW00176デフォルトの名無しさん (ワッチョイ 0b7b-y51b)
2016/04/20(水) 23:42:45.99ID:ZQBKVnsi00177デフォルトの名無しさん (ワッチョイ 19e3-zfCm)
2016/04/21(木) 22:25:29.05ID:3sH/HRos0理想的には、実行イメージ全体が1つの翻訳単位に収まっていることだね
翻訳単位の境界をまたげない最適化が結構もったいないことになってるから
0178デフォルトの名無しさん (ワッチョイ 4db4-z8Ax)
2016/04/22(金) 16:20:21.52ID:VK3N1B+b00179デフォルトの名無しさん (ワッチョイ 3e16-zfCm)
2016/04/22(金) 16:27:16.85ID:trDHzPiw0最適化をがっつりやるならその分の時間はかかるだろうし
0180デフォルトの名無しさん (ワントンキン MMd0-3Kaz)
2016/04/22(金) 17:55:39.19ID:bwUeH041M0181デフォルトの名無しさん (JP 0H41-SZE8)
2016/04/22(金) 19:18:24.79ID:cAq2nbH2H0182デフォルトの名無しさん (ワッチョイ 4b02-gALo)
2016/04/22(金) 19:35:18.98ID:LlaEs4+z00183デフォルトの名無しさん (ワッチョイ 4b3c-FmnC)
2016/04/22(金) 19:47:23.35ID:x1AcDznE00184デフォルトの名無しさん (アウアウ Sa05-1g4J)
2016/04/22(金) 21:06:06.11ID:7+eL8tO2aコーディング速度や実行速度の為ではない
0185デフォルトの名無しさん (ワンミングク MMd0-3Kaz)
2016/04/22(金) 21:27:17.03ID:+uE+J+gQM0186デフォルトの名無しさん (ワッチョイ 217b-xSxp)
2016/04/23(土) 02:40:57.38ID:m/KBeaUS0信号処理とかだとテンプレートなしではもう無理
論理的に同じ処理をするのに、整数、float、doubleで別々のコードを書かなきゃいけないなんて
やってられない
0187デフォルトの名無しさん (ワッチョイ f1e1-gALo)
2016/04/23(土) 08:43:35.78ID:F/8DDl4q0テンプレート引数にテンプレートを指定する手法が必要な時。
0188デフォルトの名無しさん (ワッチョイ 6be7-FmnC)
2016/04/23(土) 08:46:03.16ID:bKfgUY2x00189デフォルトの名無しさん (ワッチョイ 4db4-z8Ax)
2016/04/23(土) 14:18:29.26ID:nvSaEwLX0型の振る舞いだけに着目して抽象的な操作を記述できるようにする
だから静的型付けの言語でテンプレートやらジェネリクスやらをまともに使うには型制約が必須なんだけど、
未だに型制約を記述するための支援がない言語があるらしい
0190デフォルトの名無しさん (ワッチョイ 57e6-zfCm)
2016/04/23(土) 19:16:14.77ID:tcao+QTV00191デフォルトの名無しさん (ワッチョイ 1030-gALo)
2016/04/23(土) 20:18:32.35ID:hfDo0ds000192デフォルトの名無しさん (ワッチョイ 57e6-zfCm)
2016/04/23(土) 21:02:12.70ID:tcao+QTV0やってられない
じゃあ、これ以上の答えがあるってのか?
0193デフォルトの名無しさん (ワッチョイ 1ec0-v6Xr)
2016/04/23(土) 21:36:34.80ID:zzpDuGYL00194デフォルトの名無しさん (ワッチョイ 1030-gALo)
2016/04/23(土) 23:38:40.69ID:hfDo0ds00それはテンプレートの基本機能じゃね?
0195デフォルトの名無しさん (ワッチョイ 5cec-zfCm)
2016/04/24(日) 06:26:37.85ID:936uZ4pr00196デフォルトの名無しさん (ワッチョイ 1030-gALo)
2016/04/24(日) 09:20:15.79ID:bi4aOyNo00197デフォルトの名無しさん (ワッチョイ 6be7-FmnC)
2016/04/24(日) 09:37:21.56ID:qrH7Oshx00198デフォルトの名無しさん (スプー Sdf8-DbIH)
2016/04/24(日) 09:53:33.85ID:PJXOgY3Xd非型は?
0199デフォルトの名無しさん (アウアウ Sa05-L+iy)
2016/04/24(日) 14:18:35.81ID:nyww5Nv/a0200デフォルトの名無しさん (オッペケ Sr8d-DbIH)
2016/04/24(日) 22:23:36.21ID:tmf17AXnr0201デフォルトの名無しさん (ワッチョイ 4b02-gALo)
2016/04/24(日) 22:35:15.43ID:C4if0ujR00202デフォルトの名無しさん (ワッチョイ f140-FmnC)
2016/04/25(月) 02:07:03.74ID:4nVWf6Tg00203デフォルトの名無しさん (アウアウ Sa05-1g4J)
2016/04/25(月) 08:14:09.84ID:4toUZyy7a0204デフォルトの名無しさん (スプー Sdf8-DbIH)
2016/04/25(月) 08:48:18.03ID:RM4kY/BSdパターンについてのバリエーションをtemplateで表現できるようになった。
俺はヘタレなのでかなり難しくなったと感じている。
0205デフォルトの名無しさん (ワッチョイ 5c42-zfCm)
2016/04/25(月) 13:43:44.73ID:d+bG+pO00無数にあっちゃいけない関数はオーバーロード一択でそ
0206デフォルトの名無しさん (JP 0H41-uQxx)
2016/04/25(月) 14:15:42.28ID:FkG7uZgrH'abc.exe': 'C:\Visual Studio 2008\Projects\xyz.dll' を読み込みました。Cannot find or open the PDB file
'abc.exe': 'C:\Visual Studio 2008\Projects\xyz.dll' をアンロード
このアンロードはどうやって止めるのでしょうか?
実行した際に、dll内のメソッドを参照できないようで、以下のエラーとなります。
ハンドルされていない例外: System.IO.FileNotFoundException: ファイルまたはアセン
ブリ 'hoge.dll'、またはその依存関係の 1 つが読み込めませんでした。
指定されたモジュールが見つかりません。
場所 hoge.hogeclass..ctor()
場所 main(Int32 argc, SByte** argv)
場所 _mainCRTStartup()
コンパイルはできています。
よろしくお願いします。
(なんか急にできなくなった気がします。前は、問題無だったはずなのになぁ)
0207片山博文MZ ◆T6xkBnTXz7B0 (ガラプー KK9b-0LZu)
2016/04/25(月) 14:21:48.07ID:9Ydy9LbhKファイル'hoge.dll'が見付からないからエラーになってる。'hoge.dll'はどこにある?
0208デフォルトの名無しさん (JP 0H41-uQxx)
2016/04/25(月) 16:01:11.85ID:FkG7uZgrHexeと、同じフォルダにあります。
読み込みました」って、出てるから、いったん読み込みはできてると思うのですが。
Cannot find or open the PDB file
(このPDBについてのメッセージは、関係ないと思います)
よろしくおねがいします。
0209デフォルトの名無しさん (ワッチョイ 98ff-nTsV)
2016/04/25(月) 16:14:18.30ID:Y5eHwd9i0そのパスはほんとにそのまま?日本語混ざってたりしないよね
0210デフォルトの名無しさん (ワントンキン MMd0-DbIH)
2016/04/25(月) 16:17:09.73ID:nodCWmX5M0211デフォルトの名無しさん (JP 0H41-uQxx)
2016/04/25(月) 16:33:35.80ID:FkG7uZgrH>209
日本語は、入っていません。
>210
拾ってきたdllでして、pdbがありません。
他にも、以下のような、謎のメッセージも出ています。
'abc.exe': 'ImageAtBase0x10000000' を読み込みました。含める/除外する設定により、読み込みは無効になっています。
'abc.exe': 'ImageAtBase0x10000000' をアンロード
よろしくおねがいします。
0212デフォルトの名無しさん (ワッチョイ 397b-DbIH)
2016/04/25(月) 17:20:39.11ID:Vz/PfYjH0盗品だから?
0213デフォルトの名無しさん (ワッチョイ 66a6-zfCm)
2016/04/25(月) 18:20:21.95ID:zMzD7cFX00214デフォルトの名無しさん (ワッチョイ 3e4e-DbIH)
2016/04/25(月) 21:18:39.53ID:nQ9xWXS00まさかデバッガでステップインしようとしてる?
0215デフォルトの名無しさん (ワッチョイ 3ee5-v6Xr)
2016/04/25(月) 22:09:57.56ID:p2RYg3GI00216デフォルトの名無しさん (ワントンキン MMd0-DbIH)
2016/04/25(月) 22:22:09.27ID:nodCWmX5Mビルドの設定が違うとかじゃないの
ランタイムをマルチスレッドにするかマルチスレッドDLLにするかとか
depedency walkerかなんかで必要なdll探してみて足りなきゃ置く、ランタイムのバージョンそろえる、そもそもランタイムの要否を調べてみたら
0217デフォルトの名無しさん (ワッチョイ 6aa6-gALo)
2016/04/25(月) 22:25:01.35ID:gNn0n/ow0なんでどさくさに紛れて変なこと言うの?www
0218デフォルトの名無しさん (ワッチョイ 7063-DbIH)
2016/04/25(月) 22:35:01.48ID:yNWSO4Dk0.NET Frameworkの質問をC++スレでするな低能
知らない奴がdepedency walkerとか言い出しちゃうだろ
0219デフォルトの名無しさん (ワッチョイ 3951-DxlG)
2016/04/25(月) 23:23:42.73ID:yWovrPca0xyz.dllが使ってる他のdllが見つからなかったからxyz.dllのロードも失敗したってことだろ。
0220デフォルトの名無しさん (ドコグロ MM5c-DbIH)
2016/04/26(火) 07:05:42.42ID:9Pm0YF2lM理解できないものはないものとして使わない
って言うのは正しい姿勢
なので
> 右辺値なんて無くてもいいよね
と君が考えるのは正しい
0221デフォルトの名無しさん (ワッチョイ 617b-3Kaz)
2016/04/26(火) 08:03:25.27ID:uoCWhHDE00222デフォルトの名無しさん (スプー Sda8-DbIH)
2016/04/26(火) 08:08:11.99ID:X2oLSlFmd0223デフォルトの名無しさん (ワントンキン MMd0-DbIH)
2016/04/26(火) 08:30:56.28ID:15Xmlz4WMdoubleとかを返す関数で、return前に
double calc() {
double&& res = ...
return std::move(res);
}
は意味ないよね?
std::vector<double> calc() {
std::vector<double>&& res = {};
//ごにょごにょ
return std::move(res);
};
も意味ないよね?
const std::vector<double>& calc() {
std::vector<double>&& res = {};
//ごにょごにょ
return std::move(res);
};
は意味ある
でも、
std::vector<double> v = calc();
だと結局コピーが起きてもったいない?
const std::vector<double>& v = calc();
だと意味ある
こんな認識なんだけど正しいのだろうか
0224デフォルトの名無しさん (ワッチョイ 8dec-zfCm)
2016/04/26(火) 08:46:32.55ID:rGhmFmB70C++98ではテンポラリを束縛する参照にconstが必須だったが、
それではムーブ動作させるのにconst_castが必要というアフォなことになっていて、
じゃあconst任意の参照を新設しましょうって出てきたのが右辺値参照で、
使うときの考え方は参照先がテンポラリの場合に使うものだ。
0225デフォルトの名無しさん (アウアウ Sa05-L+iy)
2016/04/26(火) 09:47:41.48ID:A4vuhbbUa0226デフォルトの名無しさん (スプー Sda8-DbIH)
2016/04/26(火) 10:46:34.53ID:X2oLSlFmd0227デフォルトの名無しさん (スプー Sda8-DbIH)
2016/04/26(火) 10:48:10.37ID:IHpx3UMhd0228デフォルトの名無しさん (ワッチョイ 3ee5-v6Xr)
2016/04/26(火) 11:06:37.75ID:GLJzO2KH00229デフォルトの名無しさん (スプー Sda8-DbIH)
2016/04/26(火) 11:34:25.19ID:X2oLSlFmdいかんでしょ
0230デフォルトの名無しさん (スプー Sda8-DbIH)
2016/04/26(火) 11:35:38.49ID:IHpx3UMhd0231デフォルトの名無しさん (スプー Sda8-DbIH)
2016/04/26(火) 11:52:48.14ID:X2oLSlFmdいやいかんでしょ
0232デフォルトの名無しさん (ワッチョイ 3ee5-v6Xr)
2016/04/26(火) 11:57:22.86ID:GLJzO2KH00233デフォルトの名無しさん (ワッチョイ 4306-gALo)
2016/04/26(火) 17:12:26.21ID:sp7HDy2O0っつぅか
チューリング完全ならなんでも書けるんだからC++自体いらないよね、K&Rで充分
っつぅか
0234デフォルトの名無しさん (スプー Sda8-DbIH)
2016/04/26(火) 17:55:22.27ID:X2oLSlFmdそれってRVOでなんとかなるの意?
0235はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 19a8-gALo)
2016/04/26(火) 18:01:58.79ID:1VUmXePL0一旦書いたら中身は忘れてしまいたいから壁を作ってその向こうに押しやる道具が必要なんだ。
0236デフォルトの名無しさん (スプー Sda8-DbIH)
2016/04/26(火) 18:03:13.30ID:X2oLSlFmd0237デフォルトの名無しさん (オッペケ Sr8d-DbIH)
2016/04/26(火) 18:17:56.12ID:jVopD7Dvr2番目はコピーが発生しないようムーブしているから意味はある
ただ安易なmoveや参照の使用は最適化を阻害するため推奨はされない
推奨される書き方はこう
std::vector<double> calc() {
std::vector<double> res = {};
return res;
}
std::vector<double> v = calc();
0238デフォルトの名無しさん (ワッチョイ 4b02-gALo)
2016/04/26(火) 18:57:35.91ID:tQCMt5AL0アセンブラを使わずにギリギリまでチューニングしたいときに使えるんじゃないの
知らないけど
0239デフォルトの名無しさん (ワッチョイ 4db4-gALo)
2016/04/26(火) 19:07:46.09ID:1BXtyTOd00240デフォルトの名無しさん (ワッチョイ 617b-3Kaz)
2016/04/26(火) 19:31:52.57ID:uoCWhHDE0std::vector<double> v = {};
o.assign(std::move(v));//これ以降vは使わない
でもこれも出来るのであればstd::vector<double>を返す関数作って関数の返り値を直接引数に渡せば不要
あと、std::vectorに入れるクラスの場合(nothrowな)move operator書いた方がパフォーマンスあがる事が多い
0241デフォルトの名無しさん (ワッチョイ 617b-3Kaz)
2016/04/26(火) 19:38:27.71ID:uoCWhHDE0この場合のassignの定義は
void assign(std::vector<double> v){
member.swap(v);
}
こんな感じのものね
0242デフォルトの名無しさん (ワッチョイ 7063-DbIH)
2016/04/26(火) 20:22:16.94ID:gEJwYSMG00243デフォルトの名無しさん (ワッチョイ 7063-DbIH)
2016/04/26(火) 22:14:51.75ID:gEJwYSMG0どうなってるか調べようとしないんだろか
因みにスコットメイヤーの本には値渡しはhigher costとあるな
0244デフォルトの名無しさん (スプー Sda8-DbIH)
2016/04/26(火) 22:30:23.02ID:X2oLSlFmd0245デフォルトの名無しさん (ワッチョイ 7063-DbIH)
2016/04/26(火) 22:53:39.31ID:gEJwYSMG0もし最適化されてなかったら困るのか?
別にコピーが走る訳じゃない
0246デフォルトの名無しさん (アウアウ Sa05-1g4J)
2016/04/26(火) 23:32:52.19ID:JB7K2U7Pa0247デフォルトの名無しさん (ワッチョイ 617b-3Kaz)
2016/04/27(水) 01:49:55.63ID:GuBYWkr/00248デフォルトの名無しさん (ワッチョイ 19a8-gALo)
2016/04/27(水) 01:53:22.01ID:0mhH1Qow0まあライブラリはどういう状況で使われるかわからんから積極的に性能も意識して欲しくはあるが。
0249デフォルトの名無しさん (ワッチョイ 617b-7Ba6)
2016/04/27(水) 02:12:47.40ID:GuBYWkr/0例えば
void assign(const std::vector<double>& v){
member = v;
}
こうだと必ず1度コピーが動く。
void assign(std::vector<double> v){
member.swap(v);
}
こうだと引数がrvalueの場合最適化でコピーが動かない場合があるし、
C++11ならmoveになる。
swapのコストが低いのは言わなくてもわかるよね。
lvalueの場合でもコピーは1度
C++11以降で
void assign(const std::vector<double>& v);
void assign(std::vector<double>&& v);
二つ書いたときとのコスト差はswapのみ
0250デフォルトの名無しさん (オッペケ Sr8d-DbIH)
2016/04/27(水) 19:30:14.55ID:2yCvnT+mr>コスト差はswapのみ
ムブコンのコストはどこ行ったのよ
0251デフォルトの名無しさん (ワントンキン MMd0-3Kaz)
2016/04/27(水) 19:52:26.36ID:turQDkKlMrvalue渡したらどっちもmoveになる
0252デフォルトの名無しさん (オッペケ Sr8d-DbIH)
2016/04/27(水) 20:04:17.37ID:2yCvnT+mrいやならないし
参照ならassign呼び出し時のmoveは起こらない
0253デフォルトの名無しさん (ワントンキン MMd0-3Kaz)
2016/04/27(水) 20:09:13.21ID:turQDkKlM値渡し=高コスト=糞コード
と考えもせずに言う奴の反論したかっただけだからそこまで細かい説明するのであればご自由に
0254デフォルトの名無しさん (ワントンキン MMd0-3Kaz)
2016/04/27(水) 20:16:31.83ID:turQDkKlM想像より下だったか…
void assign(std::vector<double> v);
これにrvalue渡したらmove一回swap一回
lvalue渡したらコピー1回swap一回
void assign(const std::vector<double>& v);
void assign(std::vector<double>&& v);
これにrvalue渡したら下のが呼ばれて中でmove一回
lvalue渡したら中でコピー1回
0255デフォルトの名無しさん (ワッチョイ 6aa6-gALo)
2016/04/27(水) 20:33:00.00ID:56VYowtZ0これ定義しちゃうとオーバーロードきかないんだっけ?
0256デフォルトの名無しさん (ワッチョイ 7063-DbIH)
2016/04/27(水) 23:41:06.04ID:2JVtUYOe0どこをどう数えたらswapの違いになるのか
右辺値を渡した時
f(X p);
関数呼び出しのムーブ生成(メモリ確保+ムーブ)
swap内の一時オブジェクトのムーブ生成(メモリ確保+ムーブ)
swap内のムーブ代入(破棄+ムーブ)
swap内のムーブ代入(破棄+ムーブ)
f(X && p);
ムーブ代入(破棄+ムーブ)
左辺値を渡した時
f(X p);
関数呼び出しのコピー生成(メモリ確保+コピー)
swap内の一時オブジェクトのムーブ生成(メモリ確保+ムーブ)
swap内のムーブ代入(破棄+ムーブ)
swap内のムーブ代入(破棄+ムーブ)
f(X const & p);
コピー代入(破棄+コピー)
0257デフォルトの名無しさん (ワッチョイ 6aa6-gALo)
2016/04/27(水) 23:48:41.61ID:56VYowtZ0メモリ確保って一口に言ってるけど
0258デフォルトの名無しさん (ワッチョイ 753c-C5As)
2016/04/27(水) 23:54:55.96ID:XwQarpQA0これは合法ですか?
0259デフォルトの名無しさん (ワッチョイ 7063-DbIH)
2016/04/27(水) 23:57:03.40ID:2JVtUYOe00260デフォルトの名無しさん (ワッチョイ 753c-C5As)
2016/04/27(水) 23:58:40.17ID:XwQarpQA00261デフォルトの名無しさん (ワッチョイ cb7b-HcEB)
2016/04/28(木) 00:08:31.03ID:2BwMw+ri0std::vector::swapでmoveが呼ばれるとは初耳ですわ
0262デフォルトの名無しさん (ワッチョイ cb7b-HcEB)
2016/04/28(木) 00:14:58.53ID:2BwMw+ri0聞いて解らなくてもちょっと試してみればすぐ分かる話なのに…
0263デフォルトの名無しさん (ワッチョイ 3763-hBSK)
2016/04/28(木) 00:22:32.02ID:iQ2WswSv0確かにswapは内部のポインターの交換だけで済むな。
だが値渡しがswap以外に一時オブジェクトのメモリ確保が一回多いことに変わりはない
0264デフォルトの名無しさん (ワッチョイ cb7b-HcEB)
2016/04/28(木) 00:27:19.07ID:2BwMw+ri0それをメモリ確保と呼ぶなら参照渡しのアドレスわスタックに積むのもメモリ確保になっちゃうけど?
0265デフォルトの名無しさん (ワッチョイ 3763-hBSK)
2016/04/28(木) 00:39:59.18ID:iQ2WswSv0お前の脳内ではなるのかも知れないが規格ではそう呼ばれていないし
特に関数テンプレートのようなインライン展開を期待する文脈ではスタックを消費しないだろう
std::move(obj)とか
0266デフォルトの名無しさん (ワッチョイ cb7b-RA4N)
2016/04/28(木) 00:50:17.80ID:2BwMw+ri0http://ideone.com/rl80RP
0267デフォルトの名無しさん (ワッチョイ 3763-hBSK)
2016/04/28(木) 01:06:21.52ID:iQ2WswSv0そりゃ規格で省略が許容されてるから環境依存でそうなることもあるだろう
だが「標準ライブラリは>>247方式のassignを採用していない」という事実は変わらないぞ
0268デフォルトの名無しさん (ワッチョイ 37cf-JnPK)
2016/04/28(木) 01:09:47.90ID:0YjJiZ000主張変わった? >>263 の「値渡しがswap以外に一時オブジェクトのメモリ確保が一回多い」は
取り下げってことでいいんだよね?
0269デフォルトの名無しさん (ワッチョイ cb7b-HcEB)
2016/04/28(木) 01:23:16.15ID:2BwMw+ri0環境依存て規格にある程度準拠してて最適化有効にしてこうならないコンパイラあるの?
標準ライブラリ云々は誰もそんな主張してないしそんな当たり前の事言われてもだから何としか
0270デフォルトの名無しさん (ワッチョイ 3763-hBSK)
2016/04/28(木) 07:09:49.88ID:iQ2WswSv0もう生きているのもつらいだろうな
0271デフォルトの名無しさん (ワッチョイ cb7b-HcEB)
2016/04/28(木) 07:37:37.05ID:2BwMw+ri0俺はお前が可哀想だと思うけどね
0272デフォルトの名無しさん (スプー Sdaf-hBSK)
2016/04/28(木) 08:34:17.99ID:qBtwGihyd0273片山博文MZ ◆T6xkBnTXz7B0 (ワッチョイ f38f-Ecb7)
2016/04/28(木) 12:08:14.63ID:22WGF77t0こいつは、デバッガが使えないような環境でもトレースや呼び出し
履歴を取れる代物だ。重宝するぜ。
footmark for C++ debugging
https://github.com/katahiromz/footmark
0274デフォルトの名無しさん (ワンミングク MM6f-HcEB)
2016/04/28(木) 19:31:48.39ID:f4tKx6/8M0275デフォルトの名無しさん (ワッチョイ 57cb-OoOA)
2016/04/28(木) 20:41:41.67ID:Fdy34kc400276デフォルトの名無しさん (オッペケ Sre7-hBSK)
2016/04/28(木) 21:03:01.76ID:DqjglUBWr途中で途切れた文章が指摘だったとは知らなかったぞ
オブジェクトの領域をストレージに確保することのつもりで書いた。
ここでのオブジェクトは規格の1.8のオブジェクトのことだが
フリーストアでの確保ではなく自動ストレージ期間のオブジェクトになる
0277デフォルトの名無しさん (ワッチョイ 5b3c-89Kw)
2016/04/28(木) 22:24:39.75ID:vUtl/OeK00278デフォルトの名無しさん (ワッチョイ 4b66-nlgT)
2016/04/28(木) 22:46:39.38ID:wGgKuj3r00279デフォルトの名無しさん (ワンミングク MM6f-HcEB)
2016/04/28(木) 23:19:45.20ID:f4tKx6/8M値渡しの場合にお前の言うメモリ確保が余計に実行される例そろそろ書いたら?
0280デフォルトの名無しさん (ワッチョイ 3763-hBSK)
2016/04/28(木) 23:54:08.87ID:iQ2WswSv0低能にはちょっと難しかったかもしれないが、
コンストラクターが最大何回呼ばれうるかは意識した方がいいと思う
0281デフォルトの名無しさん (ワンミングク MM6f-HcEB)
2016/04/29(金) 00:13:53.74ID:Wehf76ZnM書くのも無駄な例を意識しろってもう何言ってんのかわかんねぇわ
0282デフォルトの名無しさん (ワッチョイ 3763-hBSK)
2016/04/29(金) 00:49:18.09ID:QcOA+a6j0http://ideone.com/Hrz7ia
0283デフォルトの名無しさん (ワッチョイ cb7b-olYR)
2016/04/29(金) 02:37:05.42ID:GPvE7zg30どこのマヌケがコピーコンストラクタとコピー演算子で差のでるような実装すんの?
0284デフォルトの名無しさん (ワッチョイ 13e7-11Ad)
2016/04/29(金) 02:40:06.76ID:+q+2SQ0C0という話のように思うのだが。
C++は常にANY扱ってるわけじゃねーんだから、中身のことまでケアしてください。
0285デフォルトの名無しさん (ワッチョイ cb7b-olYR)
2016/04/29(金) 02:43:54.15ID:GPvE7zg30一種遅れやな
0286デフォルトの名無しさん (ワッチョイ 13e7-11Ad)
2016/04/29(金) 02:45:03.22ID:+q+2SQ0C0moveするときは、メンバ変数はスワップしてmove元をクリアして終わりだな。
確かmove元が使えなくなってもOKだったと思うし。
0287デフォルトの名無しさん (ワッチョイ 13e7-11Ad)
2016/04/29(金) 02:45:57.22ID:+q+2SQ0C0あ、マジで。
0288デフォルトの名無しさん (ワッチョイ cb7b-olYR)
2016/04/29(金) 02:46:41.31ID:GPvE7zg30std::vector::swapの一時オブジェクトのコストどれだけか解って言ってる?
0289デフォルトの名無しさん (ワッチョイ 13e7-11Ad)
2016/04/29(金) 02:48:27.73ID:+q+2SQ0C0オーダーは知らないが、推測では全コピーするから相当重い。
0290デフォルトの名無しさん (ワッチョイ 13e7-11Ad)
2016/04/29(金) 02:50:08.54ID:+q+2SQ0C00291デフォルトの名無しさん (ワッチョイ cb7b-olYR)
2016/04/29(金) 02:51:25.67ID:GPvE7zg30一周遅れ所じゃないぞ、そんなのでよく
>中身のことまでケアしてください
なんて言えたな…
0292デフォルトの名無しさん (ワッチョイ 13e7-11Ad)
2016/04/29(金) 02:53:25.35ID:+q+2SQ0C0それは悪かった。
じゃあ、何の話をしてるか整理しないと、認識度が段々でかみ合ってないぞ。
0293デフォルトの名無しさん (ワッチョイ cb7b-olYR)
2016/04/29(金) 03:15:26.74ID:GPvE7zg30const参照と右辺値参照2つ実装したときのコスト差はswap分か最適化によってはそれ以下って言ったら >>256 これ
まさか一時オブジェクトの為にスタックの場所取るのにコストかかるとでもおもってるような
0294デフォルトの名無しさん (ワッチョイ 3763-hBSK)
2016/04/29(金) 08:14:20.77ID:QcOA+a6j0スワップの話ではないぞ。スワップ以外でオブジェクト生成がされうるかどうかだ
>>249 「コスト差はswapのみ」
↓
>>250「ムブコンのコストはどこ行った」
>>263で「値渡しがswap以外に一時オブジェクトのメモリ確保が一回多いことに変わりはない」
↓
>>279「値渡しの場合にお前の言うメモリ確保が余計に実行される例そろそろ書いたら?」
↓
>>282
>>293
オブジェクトが余分に生成されその分デストラクターが呼び出されているんだからコストは発生しているぞ
swapの処理以外に1バイトも無駄な実行コードが生成されない確証でも出してみたらどうだ?
ちなみにスワップ以外の話をしているんだからスワップの過程で行うムーブの話はするなよ
0295デフォルトの名無しさん (ワッチョイ 3763-hBSK)
2016/04/29(金) 08:49:49.69ID:QcOA+a6j0最初に>>250でムーブ関連の小さなコストの見逃しを指摘してやったのだが
糖質はvectorの中身のコピーが行われるという指摘を受けた幻覚を見てしまってんだな。
途中で自動ストレージとかの単語が出た時点で気づきそうなものだが
〜最初の指摘(>>250)〜
> >>249
> >コスト差はswapのみ
> ムブコンのコストはどこ行ったのよ
0296デフォルトの名無しさん (ワッチョイ cb7b-olYR)
2016/04/29(金) 10:12:54.25ID:GPvE7zg30くっそどうでもいいけど。
0297デフォルトの名無しさん (ワッチョイ 5b3c-89Kw)
2016/04/29(金) 10:19:20.00ID:+JsGJ08I0こうして議論したのかなあ。
0298デフォルトの名無しさん (ワッチョイ 3fa6-OoOA)
2016/04/29(金) 10:22:08.43ID:5uxjIDtf00299デフォルトの名無しさん (ワッチョイ cf02-nlgT)
2016/04/29(金) 11:27:56.89ID:GKcYz8vk0何をするにもプランク時間はどうしてもかかる
0300デフォルトの名無しさん (ワッチョイ 9302-OoOA)
2016/04/29(金) 11:45:21.07ID:uF4QxRQl0体感で1秒が0.1秒に感じるように
0301デフォルトの名無しさん (ワッチョイ 3fa6-OoOA)
2016/04/29(金) 11:51:40.12ID:5uxjIDtf0可算ステップの任意のアルゴリズムが時間ゼロで終了すればハッピーだ。
0302デフォルトの名無しさん (アウアウ Sa27-7WOp)
2016/04/29(金) 12:53:39.12ID:w38rMPYqa宇宙人に侵略される
0303デフォルトの名無しさん (ワッチョイ 9302-OoOA)
2016/04/29(金) 13:01:53.27ID:uF4QxRQl0そうすれば今後起こる事象全てを定数化できてあらゆる実行時の処理のオーダーは1になる
C++は宇宙を制する
0304デフォルトの名無しさん (ワッチョイ 4fc0-6p9G)
2016/04/29(金) 20:45:07.19ID:JN7XYE/q00305デフォルトの名無しさん (アウアウ Sa27-7WOp)
2016/04/29(金) 21:21:37.28ID:SAOt+riJa0306デフォルトの名無しさん (ワッチョイ 13e7-11Ad)
2016/04/30(土) 01:32:01.04ID:2zZXg3Qa00307デフォルトの名無しさん (ワッチョイ cb7b-iSeV)
2016/04/30(土) 11:10:13.98ID:/qrbaLqo0C 言語でポインタ使ってりゃいいのにと思う。
0308デフォルトの名無しさん (ワッチョイ 3763-hBSK)
2016/04/30(土) 11:37:07.49ID:olAQ2y8z0基本は「嫌なら使うな」の言語
0309デフォルトの名無しさん (ワッチョイ cb7b-iSeV)
2016/04/30(土) 11:45:40.10ID:/qrbaLqo0あげく言語仕様ではこうなのにその通りに動かないコンパイラが悪いだの言い出すのが
一番の問題。
0310デフォルトの名無しさん (ワッチョイ a77b-uqHn)
2016/04/30(土) 11:56:01.21ID:Nr00vcAW0あとg++のwcoutのロケール対応は最新版だとどうなっているか誰か教えて。
0311デフォルトの名無しさん (ワッチョイ 6f3c-1woS)
2016/04/30(土) 14:00:29.09ID:uVz81x780みたいな、BitTorrentがオープンソースで開発されています
言語は何でも大丈夫だそうなので、P2P書きたい!って人居ませんか?
Covenantの作者(Lyrise)がそういう人と話したいそうなので、よろしければツイートお願いします
https://twitter.com/Lyrise_al
ちなみにオイラはCovenant(純粋P2Pのファイル共有ソフト)の完成が待ち遠しいプログラミングできないアスペルガーw
0312デフォルトの名無しさん (ワッチョイ b730-OoOA)
2016/04/30(土) 14:12:28.07ID:kBEc2ffr00313デフォルトの名無しさん (オッペケ Sre7-hBSK)
2016/04/30(土) 14:15:22.52ID:FztpmG49rマルチの荒らしは去れ
0314デフォルトの名無しさん (ワッチョイ 6f3c-1woS)
2016/04/30(土) 14:23:05.68ID:uVz81x7800315デフォルトの名無しさん (ワッチョイ 27bf-ZWIR)
2016/04/30(土) 15:24:25.97ID:EkpjLvdA00316デフォルトの名無しさん (アウアウ Sa27-7WOp)
2016/04/30(土) 16:32:02.70ID:dTOuLsNgaしかしそうすると職権乱用が懸念される。
そこで、次善の策として、国際的に承認が必要にするというのはどうか?
復号には常任理事国全ての政府の承認が必要不可欠とするというものだ
アメリカがYesと言っても中国(或いはロシア)がNoというかもしれないので安易に覗き見はできなくなるだろう
0317デフォルトの名無しさん (スプー Sd2f-hBSK)
2016/04/30(土) 18:16:59.09ID:OJjCBDMXd0318デフォルトの名無しさん (ワッチョイ cb7b-olYR)
2016/04/30(土) 20:20:59.06ID:mxQluw9J0C言語でポインタ使うのが同じくらい書くのが楽なら使うよ
それにC言語でも環境やコンパイラによってこう書いた方が効率いいとか、冗長な記述減らせるけど実行コストそれほど変わらないという議論あるよね?
0319デフォルトの名無しさん (ワッチョイ 6f3c-1woS)
2016/04/30(土) 20:35:53.60ID:uVz81x780Covenantの目的はインターネットにおける権力による抑圧を排除することが最終的な目標です。
そのためにCovenantでは、中央に依存しない、高効率で検索能力の高いファイル共有の機能をユーザーに提供します
0320デフォルトの名無しさん (JP 0H07-89Kw)
2016/04/30(土) 23:13:30.56ID:+bg/IZ99H#pragma once
#include <iostream>
#include <random>
-------------------------------
#include "stdafx.h"
using namespace std;
int main()
{
random_device rnd;
// メルセンヌ・ツイスター法による乱数発生
// mt19937 engine; // 32bitパソコン用
uniform_int_distribution<int> distribution( 0, 9 ) ; // 整数
// uniform_real_distribution<double> distribution (0.0, 9.9); // 実数
for(int i = 0 ; i!= 10 ; ++i) cout<<distribution(engine)<<endl ;
cout << endl<< "Press Enter!";
cin.get();
return 0;
}
VC++2015では毎回違う乱数が出るのに,TDM GCC(gcc5.1.0)では
同じ乱数しか出ない. gccのオプションSWの問題?
0321デフォルトの名無しさん (JP 0H07-89Kw)
2016/04/30(土) 23:15:38.21ID:+bg/IZ99H↓
mt19937_64 engine(rnd());
0322デフォルトの名無しさん (ワッチョイ 3763-hBSK)
2016/04/30(土) 23:22:10.38ID:olAQ2y8z00323デフォルトの名無しさん (ワッチョイ 3fa6-OoOA)
2016/05/01(日) 00:54:26.52ID:pgSGezQj0これを何にも使っていないからだな
>>321のように使え
0324デフォルトの名無しさん (ワッチョイ 13e7-11Ad)
2016/05/01(日) 00:58:35.24ID:fsqM/cei0初期値が変わらないと数列も変わらん。
0325デフォルトの名無しさん (JP 0H07-89Kw)
2016/05/01(日) 01:08:56.51ID:JjM58K48Hだから訂正した上で乱数が同じ値になってしまうと言ってる。
頭悪いな
0326デフォルトの名無しさん (ワッチョイ 13e7-11Ad)
2016/05/01(日) 01:15:39.33ID:fsqM/cei0普通はCPUのランダム取ってくるんだけど。
0327デフォルトの名無しさん (ワッチョイ 13e7-11Ad)
2016/05/01(日) 01:27:29.62ID:fsqM/cei0http://ideone.com/VbkxpO
イデオンってGCCだよな。たしか。
0328デフォルトの名無しさん (アウアウ Sa27-ohpd)
2016/05/01(日) 08:19:16.64ID:4ccqRarua0329デフォルトの名無しさん (JP 0H07-89Kw)
2016/05/01(日) 09:02:25.15ID:JjM58K48Hひょっとしたらgccをbuildする時のTDM-GCC(MinGW)の問題かもしれん。
https://github.com/bitcoin/bitcoin/issues/2290
しかし、英文が微妙なニュアンスでわからん。
-frandom-seedのオプションを指定しないといけないとあるようだが。
obj/%.o: %.cpp $(HEADERS)
$(CXX) -c -frandom-seed=$@ $(CFLAGS) -o $@ $<
しかし、後の方には
We don't use frandom-seed at all anymore after #4724, closing this.
とある.うーん、わからん。
0330デフォルトの名無しさん (ワッチョイ 3fa6-OoOA)
2016/05/01(日) 09:11:05.64ID:pgSGezQj0ああ >>320==>>321 だったかごめんごめん
0331デフォルトの名無しさん (JP 0H07-89Kw)
2016/05/01(日) 09:11:57.94ID:JjM58K48Hもあるな。しかし、もうこの話題はやめた
0332デフォルトの名無しさん (ワッチョイ 3763-hBSK)
2016/05/01(日) 09:48:18.92ID:p2YCnIW80『It is used to generate certain symbol names that have to be different in every compiled file. It is also used to place unique stamps in coverage data files and the object files that produce them.』
「アホか。」はお前のことだろう
0333デフォルトの名無しさん (JP 0H07-89Kw)
2016/05/01(日) 09:53:17.94ID:JjM58K48H0334デフォルトの名無しさん (ワッチョイ cb7b-1+8h)
2016/05/01(日) 10:40:34.11ID:8qUfiok/0std::mt19937 engine(std::chrono::system_clock::now().time_since_epoch().count());
とかにしておいたほうが無難だよ以下参照
http://peace.2ch.net/test/read.cgi/tech/1433514467/782
0335デフォルトの名無しさん (ワッチョイ 37d9-0GMy)
2016/05/01(日) 10:50:50.22ID:tY30d3V60random_device::entropy()の値をチェックする
これが 0 なら毎回同じ数列を返すので>>334みたいにするといい
0336デフォルトの名無しさん (ワッチョイ cb7b-1+8h)
2016/05/01(日) 11:01:18.00ID:8qUfiok/0規格通りならentropy()==0でもoperator()は「非決定性」の値を返さなきゃいけない
何度起動しても同じ数列が返るならそれは実装のバグ
0337デフォルトの名無しさん (ワッチョイ 3763-hBSK)
2016/05/01(日) 11:02:50.07ID:p2YCnIW80それだと
>>334の先の>>828に書いてある規格の要求を満たしていないだろう
ちなみに>>334の先のID:theP84i7は俺のようだ思い出した
0338デフォルトの名無しさん (JP 0H07-89Kw)
2016/05/01(日) 11:04:15.55ID:JjM58K48Hありがとうございます。助かります。
0339デフォルトの名無しさん (ワッチョイ 3763-hBSK)
2016/05/01(日) 23:34:15.98ID:p2YCnIW80具体的にはどのような場合?
静的変数の参照を返すとか?
0340デフォルトの名無しさん (ワッチョイ 3b64-nlgT)
2016/05/02(月) 00:24:24.91ID:rK2U+l6Y00341デフォルトの名無しさん (ワッチョイ 2f94-Huko)
2016/05/02(月) 01:15:48.64ID:lijKCiQb0min()の戻り値が「マイナス」max......という風になっているのですがこれはどういった意味があるのでしょうか
n1 = 2,n2 = 3,n3 = 4で、max()の戻り値は4、minの戻り値は2となっています。大小逆の数を返すのですが
マイナスに具体的にどういった役割があるのか、何と検索すればいいのか教えていただきたいです
#include "minmax.h"
// 最大値を返す
int MinMax::max(int n1, int n2, int n3) {
if (n1 > n2 && n1 > n3) {
return n1;
}
else if (n2 > n3 && n2 > n1){
return n2;
}
else if (n1 > n3 && n1 > n2){
return n1;
}
return n3;
}
// 最小値を返す
int MinMax::min(int n1, int n2, int n3) {
return -max(-n1, -n2, -n3);
}
初めて見るのでうまく説明できませんが、必要な情報は随時追加しますのでエスパーできる人
教えてください
0342片山博文MZ ◆T6xkBnTXz7B0 (ガラプー KKb7-09nV)
2016/05/02(月) 01:22:22.63ID:GdZkeqisK正の数は絶対値が大きいなら大きい数になる。
逆に負の数は絶対値が小さいなら大きい数になる。
絶対値だけを見るなら正の数の大小関係は負の数の大小関係の逆になる。
0343デフォルトの名無しさん (ワッチョイ 13e7-11Ad)
2016/05/02(月) 01:27:04.99ID:LofVFQLs0普通MinMaxって最小値と最大値をウエイトにするもんだと思うので、カスタムロジックなんじゃないか?
実装したやつに聞いてみろー。
発展としてアルファベータカットっていうものもあるよ。
MINMAX検索の一番のキモは、
最大値が最適解とは限らない。かつ、最小値が最適解とは限らない。という条件で最適な解を探す。
というもの。
それと、C++11で可変引数版、std::minとmax入ったからそっち使ったほうが読みやすい。
0344デフォルトの名無しさん (ワッチョイ 13e7-11Ad)
2016/05/02(月) 01:30:07.03ID:LofVFQLs00345片山博文MZ ◆T6xkBnTXz7B0 (ガラプー KKb7-09nV)
2016/05/02(月) 01:33:46.98ID:GdZkeqisK-min(-x,-y)=max(x,y)
を証明したい。左辺は
-(-x<-y?-x:-y)=-(x>y?-x:-y) …(1)
=(x>y?x:y) …(2)
=右辺
となる。
※(1):不等号にマイナス1を掛ける。
※(2):マイナスをカッコの中に作用させる。
証明終わり。三項についても同様。
0346デフォルトの名無しさん (ワッチョイ ef9f-qtmS)
2016/05/02(月) 01:37:24.80ID:dUwljW2j0本題と関係ないかもしれないが
そのMinMax::max関数の実装オカシイだろ
0347デフォルトの名無しさん (ワッチョイ 13e7-11Ad)
2016/05/02(月) 01:38:07.25ID:LofVFQLs0あら。元に戻っちゃった。
MINの条件はあってるのか。
そーりー。
0348デフォルトの名無しさん (アウアウ Sa27-7WOp)
2016/05/02(月) 01:49:33.84ID:87lwCP4Ca数直線書いてみれば一発だろ
n3
n1
n2
──────
-n2
-n1
-n3
上方向が正、──が0ラインな。
負にして最大を取れば、最小を負にした値(-n2)が返る。あとはこれを負にすれば元の値に戻る。確かにn2は最小だ。
工学の理念、一つ!『車輪の再発明はするな』
工学の理念、一つ!『使える車輪は使い倒せ』
maxができたのにminも同じように構築するのでは理念に反する
maxを使ってminを表現できるならそうするべき。別々に作れば、もしかするとmaxにバグがあるかも知れない、minにバグがあるかも知れない。
しかしminをmaxで実装すれば、minは事実上書いていないのでバグは存在しない。maxにバグがあるかどうかだけ心配だけすればいい。
バグを防ぐコツはコードを書かないことだ。
0349デフォルトの名無しさん (アウアウ Sa27-7WOp)
2016/05/02(月) 01:51:28.06ID:87lwCP4Ca0350デフォルトの名無しさん (ワッチョイ 13e7-11Ad)
2016/05/02(月) 01:59:45.92ID:LofVFQLs0数学ダメなんだよね〜。Orz
バグを防ぐコツは同意だ。
まぁ、車輪は使い方はマスターするべき。
そのためにも泥臭いことを否定してはいけない。(戒め)
0351片山博文MZ ◆T6xkBnTXz7B0 (ガラプー KKc7-09nV)
2016/05/02(月) 02:12:35.32ID:GdZkeqisKmax(x,y,z)=max(max(x,y),z)=max(x,max(y,z)).
min(x,y,z)=min(min(x,y),z)=min(x,min(y,z)).
0352片山博文MZ ◆T6xkBnTXz7B0 (ガラプー KKc7-09nV)
2016/05/02(月) 02:15:13.64ID:GdZkeqisK行っているので、教育上あまり好ましくない。
0353デフォルトの名無しさん (ワッチョイ 0b75-lQqR)
2016/05/02(月) 02:43:59.63ID:5VxisSG80>maxを使ってminを表現できるならそうするべき。別々に作れば、もしかするとmaxにバグがあるかも知れない、minにバグがあるかも知れない。
>しかしminをmaxで実装すれば、minは事実上書いていないのでバグは存在しない。maxにバグがあるかどうかだけ心配だけすればいい。
いやいや 341のminはバグってるし。minにINT_MINを渡したらどうなるか考えてみ。
0354デフォルトの名無しさん (ワッチョイ ef9f-qtmS)
2016/05/02(月) 02:45:04.65ID:dUwljW2j00355デフォルトの名無しさん (ワッチョイ 13e7-11Ad)
2016/05/02(月) 02:48:14.57ID:LofVFQLs00356デフォルトの名無しさん (ワッチョイ 0bdc-VEo+)
2016/05/02(月) 05:44:22.58ID:8/8nC51l0>>346 >>354
max()は、引数に同じ値が2つ与えられるとダメなのね。
n1 = 2, n2 = 2, n3 = 1 といった場合。
比較演算子を > でなく >= にすればいいのかな。
(小手先で修正してまで使うとも思えないけど一応)
>>353 の INT_MIN の符号反転の問題はいつも見逃すなぁ。
intが32bitもあると「億なんてデカい値は使わないし…」で
境界条件を考慮し忘れる。
おかげで俺の部屋は悪魔ハーレム状態。
0357デフォルトの名無しさん (ワッチョイ ab51-JnPK)
2016/05/02(月) 06:18:00.27ID:zu7MqjLX00358デフォルトの名無しさん (ワッチョイ 2f94-Huko)
2016/05/02(月) 10:03:31.77ID:lijKCiQb0皆さんありがとうございます.一応参考サイトは以下です(若干プログラムが違いますが)
ttp://cpp-lang.sevendays-study.com/problem2.html
0359デフォルトの名無しさん (ワッチョイ 13e7-11Ad)
2016/05/02(月) 10:30:56.03ID:LofVFQLs00360デフォルトの名無しさん (ワッチョイ 3bb4-OoOA)
2016/05/02(月) 16:31:01.42ID:1reykZlZ0多分オブジェクトの内部状態が変わることでハッシュ値が変わることを考えてのことだと思うんですが、
いまの場合ハッシュ関数を自分で定義していて、操作の前後でハッシュ値が変化しないことは
(自分には)わかっています。
これをコンパイラに教えてあげるにはどうすればいいんでしょうか?
0361デフォルトの名無しさん (ワッチョイ 3763-hBSK)
2016/05/02(月) 16:56:44.90ID:IsbB/noh0そしてconst_castを使う
0362デフォルトの名無しさん (ガックシ 068f-ZWIR)
2016/05/02(月) 17:29:08.43ID:V/Rz0lGL6test1の下にtest.exeとディレクトリtest2があるとして、
test1.exeで
SetCurrentDirectly(”test2”)
ofstream fout1(”test.dat”)
fout1 << ”test” << endl;
としても、test.datがtest2の下ではなく、test1の下に出来てしまいます。どうすればtest2の下に出来ますか?
0363360 (ワッチョイ 3bb4-OoOA)
2016/05/02(月) 17:48:25.88ID:1reykZlZ0ありがとうございます
結局 mutable にして切り抜けました
0364片山博文MZ ◆T6xkBnTXz7B0 (ガラプー KKb7-09nV)
2016/05/02(月) 17:50:59.68ID:GdZkeqisK"test2"は相対パスだから、現在のディレクトリを確認しろ。
また、戻り値とエラーコードもチェックしろ。
0365デフォルトの名無しさん (ガックシ 068f-ZWIR)
2016/05/02(月) 18:04:07.30ID:V/Rz0lGL6ありがとうございます。
確認してみたところ、falseが帰ってきていました。
そして、getcurrentdirectlyして表示してみたところ
C
とだけ表示されました。
Cドライブの直下ということですか?
それだと、C:\と出そうなものですが…
0366片山博文MZ ◆T6xkBnTXz7B0 (ガラプー KKc7-09nV)
2016/05/02(月) 18:18:14.94ID:GdZkeqisKおそらくUnicode文字列とANSI文字列の指定が間違っている。
型に関する警告が出ていないか確認せよ。
0367片山博文MZ ◆T6xkBnTXz7B0 (ガラプー KKc7-09nV)
2016/05/02(月) 18:29:59.21ID:GdZkeqisK例) L"Unicode"
Unicode APIは関数名の最後にWが付く。ANSI APIはAが付く。
例) GetCurrentDirectoryW
Unicode文字列とANSI文字列を自動的に切り替えるにはリテラルを
TEXT( )で囲む。TCHAR型の配列またはポインタになる。
0368片山博文MZ ◆T6xkBnTXz7B0 (ガラプー KKc7-09nV)
2016/05/02(月) 18:40:56.68ID:GdZkeqisK例えば、printfの%sにワイド文字列を指定することはできない。
警告が出るか、分かりにくい論理エラーの原因になる。
0369デフォルトの名無しさん (ガックシ 068f-ZWIR)
2016/05/02(月) 18:44:54.84ID:V/Rz0lGL6ありがとうございます。
確認してみると、確かに警告が出ていました。
なので、
SetCurrentDirectly(”test2”)
の部分を
SetCurrentDirectly((LPCWSTR)”test2”)
としてみると警告が消えましたが、結果は変わりませんでした。
0370片山博文MZ ◆T6xkBnTXz7B0 (ガラプー KKb7-09nV)
2016/05/02(月) 18:47:42.10ID:GdZkeqisKSetCurrentDirectoryW(L"test2");
SetCurrentDirectory(TEXT("test2"));
0371片山博文MZ ◆T6xkBnTXz7B0 (ガラプー KKc7-09nV)
2016/05/02(月) 18:57:39.76ID:GdZkeqisK中身のデータレイアウトが変わる訳ではない。
文字列を柔軟に扱いたいならATLとかMFCなどの外部ライブラリを使うことになる。
0372デフォルトの名無しさん (ガックシ 068f-ZWIR)
2016/05/02(月) 19:04:58.94ID:V/Rz0lGL6ご指摘の通りで、無事に解決しました。
何度もありがとうこざいました。大変参考になりました。
0373デフォルトの名無しさん (ワッチョイ a77b-1+8h)
2016/05/02(月) 19:07:51.78ID:btgv3pKW0test2ディレクトリをどこに作りたいのか知らないけど
絶対パスで指定しなきゃダメ
起動時のカレントディレクトリがどこになってるかについて仮定しちゃいけない
0374デフォルトの名無しさん (ササクッテロ Spe7-ZWIR)
2016/05/02(月) 19:19:38.69ID:eom7L+e5p通常だと.exeと同じ階層に置いておかないと呼んでくれませんよね?
しかし、.exeのショートカットを作成してプロパティから作業フォルダーを指定すればそこから読んでくれるようです。
この作業フォルダーの指定をプログラム中で行う方法はありませんか?
vc14で、デバックモードで作業ディレクトリを指定の設定ならあるのですが、リリースした時の設定方法が分かりませんでした。
0375デフォルトの名無しさん (ガックシ 068f-ZWIR)
2016/05/02(月) 19:21:00.96ID:V/Rz0lGL60376デフォルトの名無しさん (ガックシ 068f-ZWIR)
2016/05/02(月) 19:25:12.54ID:V/Rz0lGL6test2は最初からtest1の下に用意されているものです。
絶対パスは、配布する場合などに使えないので相対パスで指定の方法を考えていました。
今は教えてもらった通りで動いていますが、動かなくこともありますか?
0377片山博文MZ ◆T6xkBnTXz7B0 (ガラプー KKb7-09nV)
2016/05/02(月) 19:29:01.28ID:GdZkeqisKGetCurrentDirectory
SetCurrentDirectory
GetModuleFileName
GetWindowsDirectory
GetSystemDirectory
GetTempPath
GetTempFileName
GetFullPathName
SHGetSpecialFolderLocation
SHGetSpecialFolderPath
SHGetPathFromIDList
0378片山博文MZ ◆T6xkBnTXz7B0 (ガラプー KKb7-09nV)
2016/05/02(月) 19:31:57.84ID:GdZkeqisK0379デフォルトの名無しさん (ガックシ 068f-ZWIR)
2016/05/02(月) 19:41:24.27ID:V/Rz0lGL6何度もすみません。
exeの方の使い方は分かりましたが、
.dllのフルパスを取得してもどうすればいいのか分かりません。
調べると、.dllもカレントディレクトリから呼ばれる、とあったので、プログラムでsetcurrentdirectlyをしたついでに、.dllも読み込んでくれるかと新しいディレクトリの方に.dllを全部移してみたのですが、dllがないというエラーが吐かれました。
0380デフォルトの名無しさん (ワッチョイ ef9f-qtmS)
2016/05/02(月) 19:49:22.82ID:rwpIh2xK0遅延読み込みするDLLを除いて通常の方法ではmain/WinMain関数に
制御が渡った時点でDLLのロードは終わって居るのでプログラムから制御するには
かなり特殊な手段を用いることになる
⇒ だから一般的にはやらないし、無理って言う人も居る
あと、スレ違いだから
0381デフォルトの名無しさん (ガックシ 068f-ZWIR)
2016/05/02(月) 19:57:48.05ID:V/Rz0lGL6ショートカット作成のプロパティから簡単に出来るので、プログラムでも簡単に出来るかと思ったのですが、難しいのですか…
スレ違いなのは分からずすみませんでした。
よければ、どこのスレに行けばいいのか分かりませんので教えて貰えますでしょうか?
0382片山博文MZ ◆T6xkBnTXz7B0 (ガラプー KKb7-09nV)
2016/05/02(月) 19:58:23.64ID:GdZkeqisKWin32API質問箱 Build122
http://echo.2ch.net/test/read.cgi/tech/1451988219/
0383デフォルトの名無しさん (ワッチョイ 6f3c-hBSK)
2016/05/02(月) 19:58:58.17ID:3YV7E0Ft0>>373 はアホだから気にしなくていい
0384デフォルトの名無しさん (ガックシ 068f-ZWIR)
2016/05/02(月) 19:59:04.30ID:V/Rz0lGL6ありがとうございます、移動します。
お騒がせしましたどうもすみません。
0385デフォルトの名無しさん (ワッチョイ a77b-1+8h)
2016/05/02(月) 20:31:02.13ID:btgv3pKW0別に決め打ちの絶対パスで指定しろとは言ってないからね
そう解釈したならアホはお前
実行ファイルからの相対パスを指定したいならGetModuleFileNameで実行ファイルのパスを取って
目的とするファイルの絶対パスを作るのが定石
0386デフォルトの名無しさん (ワッチョイ 6f3c-hBSK)
2016/05/02(月) 20:59:05.00ID:3YV7E0Ft0> 起動時のカレントディレクトリがどこになってるかについて仮定しちゃいけない
がバカって言われていることも理解できてないのかよ...
0387デフォルトの名無しさん (ワッチョイ 2f57-Huko)
2016/05/02(月) 20:59:28.28ID:B7fwjF4l0クラスtestで、void test::sample(){...}の様に、です。
0388デフォルトの名無しさん (ガラプー KKb7-09nV)
2016/05/02(月) 21:01:18.03ID:GdZkeqisK0389デフォルトの名無しさん (ワッチョイ a77b-1+8h)
2016/05/02(月) 21:06:07.95ID:btgv3pKW0で?仮定していいとでも思ってるの?
「バカって言われてる」ってそんなバカなこと言ってるのはお前しか見えないけどなw
0390片山博文MZ ◆T6xkBnTXz7B0 (ガラプー KKc7-09nV)
2016/05/02(月) 21:11:40.51ID:GdZkeqisKディレクトリーを変更できることは、知っておいても損しないだろう。
0391デフォルトの名無しさん (ワッチョイ 2f57-Huko)
2016/05/02(月) 21:15:09.99ID:B7fwjF4l0ありがとうございます
0392デフォルトの名無しさん (ワッチョイ 3f56-hBSK)
2016/05/02(月) 21:26:05.14ID:14Ao2YKq0一応、呼び方は「スコープ解決演算子」な
https://msdn.microsoft.com/ja-jp/library/b451xz31.aspx
0393デフォルトの名無しさん (ワッチョイ 2f57-Huko)
2016/05/02(月) 21:32:28.67ID:B7fwjF4l00394デフォルトの名無しさん (ワッチョイ 2742-OoOA)
2016/05/02(月) 21:32:59.60ID:IfsZ2QOP0どっちなの?
0395デフォルトの名無しさん (オッペケ Sre7-hBSK)
2016/05/02(月) 21:35:36.19ID:zmzMdNqXr0396デフォルトの名無しさん (ワッチョイ 6f3c-hBSK)
2016/05/02(月) 21:35:54.15ID:3YV7E0Ft0誰も仮定してないんだが...
マジでバカなの?
0397デフォルトの名無しさん (ワッチョイ a77b-1+8h)
2016/05/02(月) 22:14:34.12ID:btgv3pKW0少なくとも質問者の>>362は仮定してるだろ
もうお前はいいよ
0398デフォルトの名無しさん (ワッチョイ 2742-OoOA)
2016/05/02(月) 22:33:31.86ID:IfsZ2QOP0それを根拠に、仮定するのは誤りだと結論を出してくるとか、ありそうだし
0399デフォルトの名無しさん (ワッチョイ 3763-hBSK)
2016/05/02(月) 22:45:30.28ID:IsbB/noh0>>396の意図は不明だが、これは言葉のすり替えだな
「誰も」とは「俺は言ってない」ぐらいの意味だろう
0400デフォルトの名無しさん (ワッチョイ a77b-1+8h)
2016/05/02(月) 23:25:56.25ID:btgv3pKW0>>396みたいな何を言いたいのかすら分からないイチャモンつけるような
明白なバカ・ドジ・マヌケが何考えてようがもうどうでもいいよ
0401デフォルトの名無しさん (ワッチョイ cb7b-olYR)
2016/05/03(火) 00:46:50.12ID:yoJxNR5i00402デフォルトの名無しさん (ワッチョイ 6f3c-hBSK)
2016/05/03(火) 06:11:23.04ID:m0WSkRh/0> カレントディレクトリがどこになってるか仮定しちゃいけないってどういう事?
絶対にダメと言うわけじゃない
ただ必要もないのにカレントディレクトリがどこかにあることを仮定して作ると当然その場所にないとうまく動かないから使い辛いってこと
ちなみに >>362 はカレントディレクトリの設定についての質問で「起動時の」カレントディレクトリについてはなんの仮定もおいてない
0403デフォルトの名無しさん (ワッチョイ cb7b-olYR)
2016/05/03(火) 06:32:35.85ID:yoJxNR5i00404デフォルトの名無しさん (ワッチョイ 6f3c-hBSK)
2016/05/03(火) 07:08:25.20ID:m0WSkRh/0何を言ってるのかさっぱりわからん
カレントディレクトリなんて >>390 の言うようにショートカット等でも変更できる
一時的に特定のカレントディレクトリで起動するためにコマンドプロンプトから実行したりもできる
0405デフォルトの名無しさん (ワッチョイ cb7b-olYR)
2016/05/03(火) 09:06:38.37ID:yoJxNR5i00406デフォルトの名無しさん (ワッチョイ 3763-hBSK)
2016/05/03(火) 09:44:09.25ID:WLZfBkZE0>>403は>>402の後半が読めていなくて「仮定」の単語に反応したようだ
0407デフォルトの名無しさん (ワッチョイ cb7b-olYR)
2016/05/03(火) 09:59:16.67ID:yoJxNR5i0そりゃ質問がそうだからな、返答にそれを期待するのが当たり前
0408デフォルトの名無しさん (ワッチョイ 6f3c-hBSK)
2016/05/03(火) 11:14:03.25ID:m0WSkRh/0>>402 の後半は >>401 に関係しないから読み飛ばしてもらっていいよ
ただ前半読んで >>403 の質問出るのが意味不明
>>404 に書いたように起動時のカレントディレクトリはどうとでも設定できるから
> カレントディレクトリがシステムによってどう設定されてるか
って言われても、はあ?
としか返せんし、そもそも元の話は起動されたプログラムの話だし
0409デフォルトの名無しさん (ワッチョイ 6f3c-1woS)
2016/05/03(火) 19:39:34.60ID:G9XEXQGe0BitTorrent(Covenant)が活発な情報交換・交流コミュニティでオープンソース開発されています(プログラマー募集中)
言語は何でも大丈夫だそうなので、P2P書きたい!って人居ませんか?
Covenantの作者(Lyrise氏)がそういう人と話したいそうなので、よろしければツイートお願いします<(_ _)>
https://twitter.com/Lyrise_al
ちなみにオイラはCovenantの完成が待ち遠しいプログラミングできない情報発信好きアスペルガーw
The Covenant Project
概要
Covenantは、純粋P2Pのファイル共有ソフトです
目的
インターネットにおける権力による抑圧を排除することが最終的な目標です。 そのためにCovenantでは、中央に依存しない、高効率で検索能力の高いファイル共有の機能をユーザーに提供します
特徴
Covenant = Bittorrent + Abstract Network + DHT + (Search = WoT + PoW)
接続は抽象化されているので、I2P, Tor, TCP, Proxy, その他を利用可能です
DHTにはKademlia + コネクションプールを使用します
UPnPによってポートを解放することができますが、Port0でも利用可能です(接続数は少なくなります)
検索リクエスト、アップロード、ダウンロードなどのすべての通信はDHT的に分散され、特定のサーバーに依存しません
6
0410デフォルトの名無しさん (ワッチョイ cb7b-olYR)
2016/05/03(火) 20:03:21.71ID:yoJxNR5i0起動時のカレントディレクトリがどうとでも設定できるのと仮定しちゃいけないが繋がらないのよ
ユーザーが作業中のディレクトリと仮定しないとrmとかlsとか基本的なコマンドすら実装出来んぞ
0411デフォルトの名無しさん (ワッチョイ cfe5-6p9G)
2016/05/03(火) 20:15:22.49ID:Ga2JkeKt00412デフォルトの名無しさん (ワッチョイ 6f3c-hBSK)
2016/05/03(火) 20:34:36.80ID:m0WSkRh/0> 起動時のカレントディレクトリがどうとでも設定できるのと仮定しちゃいけないが繋がらないのよ
えっ?
ユーザーがどうとでも設定できるからどこかに固定的に設定してるって思っちゃダメ
ってだけの話なんだが理解できないの?
> ユーザーが作業中のディレクトリと仮定しないとrmとかlsとか基本的なコマンドすら実装出来んぞ
はあ、そうですね...
0413デフォルトの名無しさん (ワッチョイ 3fa6-OoOA)
2016/05/03(火) 22:10:52.96ID:TF5VRcqZ0Dllがシンボリックリンクのときはリンク元じゃなくてそのファイルのパスが返ってくることもわかった。
0414デフォルトの名無しさん (ワッチョイ 3763-hBSK)
2016/05/03(火) 22:16:37.60ID:WLZfBkZE00415デフォルトの名無しさん (ワッチョイ 3fa6-OoOA)
2016/05/03(火) 22:38:09.58ID:TF5VRcqZ00416デフォルトの名無しさん (スプー Sdaf-x9NC)
2016/05/04(水) 13:12:57.15ID:opeX4EM+dmsのドキュメントって断片的でピンとこないことご多いんだ
英語でもいいぞ
0417デフォルトの名無しさん (オッペケ Sre7-hBSK)
2016/05/04(水) 13:22:50.71ID:49qgq2vTr0418デフォルトの名無しさん (ワッチョイ 137b-ohpd)
2016/05/04(水) 13:57:04.66ID:8Bwnd+Rb0パラメーターの意味まで全部読む
0419デフォルトの名無しさん (ワントンキン MM6f-hBSK)
2016/05/04(水) 14:04:17.38ID:ThMOcBqYMVisualStudioならターゲットプロジェクトをdllにして、__declspec(dllexport)でエクスポートするだけだろ
まぁ実際はVisualStudioが裏でdllmainを作ってくれてるんだろうけど
0420デフォルトの名無しさん (ワッチョイ b730-OoOA)
2016/05/04(水) 14:16:57.26ID:qX1/u2G+0それ以外なら使わないかもね
0421デフォルトの名無しさん (ワッチョイ ef9f-qtmS)
2016/05/04(水) 14:51:19.35ID:buqbh7+Y00422デフォルトの名無しさん (アウアウ Sa27-7WOp)
2016/05/04(水) 18:21:57.24ID:lMLuHG3fa読みにくい! PDFで下さい! 印刷して読みます!
0423デフォルトの名無しさん (ワッチョイ 137b-ohpd)
2016/05/04(水) 19:13:29.48ID:8Bwnd+Rb01ページ5000円で変換してやるよ
0424デフォルトの名無しさん (ワッチョイ 57cb-OoOA)
2016/05/04(水) 19:19:40.35ID:D8cbd8TW00425デフォルトの名無しさん (ワッチョイ 13f8-Ke/D)
2016/05/04(水) 19:31:12.53ID:p+LvbHBp00426デフォルトの名無しさん (ワッチョイ ff73-2IYS)
2016/05/05(木) 13:30:55.57ID:KKWEgRGW0ttp://qiita.com/7shi/items/cac7b3e9b90bf91b00cc
vs2015で少し勉強しています
strcat_s(str,len+1,s.str);
を使用して文字列をつないでいます
strcat_sの説明にstrの格納領域とs.strの格納領域に重複がある場合
動作は不定ですとあります
自己複写
mystr a="abc";
a+=a;
はエラーで停止したので対処コードを書きました
重複がある場合素直にエラーで停止することにお任せでよいかな?
呼び出しする方の使い方が悪いってことで
0427デフォルトの名無しさん (ワッチョイ 3fe7-lMTc)
2016/05/05(木) 13:47:53.97ID:O83ZUOpH0仕様はこっちからどうこう言うべきじゃないけど、できないならできない反応をするべき。
エラー値返すとか例外投げるとか。
0428デフォルトの名無しさん (ワッチョイ 400b-Xnmr)
2016/05/06(金) 00:22:14.99ID:uBaztVrf0strcatは文字連結というより
ただのメモリの範囲コピーであることを考えれば
メモリ領域を重複させるのは意味不明でお菓子な動作を引き起こすことは常識的にわかる
それに対してmystrのa+=a;はaが文字列オブジェクトを名乗るなら
a=
0429デフォルトの名無しさん (ワッチョイ 400b-Xnmr)
2016/05/06(金) 00:23:49.40ID:uBaztVrf0a="abcabc"となるのを期待するのがふつう
なので対処コードを書くべき
0430デフォルトの名無しさん (スプー Sdb8-wv7z)
2016/05/06(金) 01:23:00.59ID:U/b+V/yedこうしたいのですができません。
いい方法教えてください
0431デフォルトの名無しさん (ワッチョイ bd7b-fQUW)
2016/05/06(金) 04:40:09.49ID:uf2wlWDJ0https://ideone.com/0KvwZt
0432デフォルトの名無しさん (ドコグロ MM74-wv7z)
2016/05/06(金) 05:19:27.01ID:vu9mhOpwM0433デフォルトの名無しさん (ワッチョイ bd7b-ecJ+)
2016/05/06(金) 05:44:36.56ID:uf2wlWDJ0そう?
std::stringは普通に動くよね?
実装上の問題もないし
0434デフォルトの名無しさん (ワッチョイ 8063-wv7z)
2016/05/06(金) 08:25:16.93ID:dFoYv6n+0× a += a.c_str();
0435デフォルトの名無しさん (ワッチョイ ff73-xz+g)
2016/05/06(金) 12:31:28.89ID:v84XfFkE0文字列で学ぶはとても勉強になっています
あとは、うろ覚えの状態でカンニングしないように
mystrを自分でコーディングしてみる
基本的なエッセンスがギュって詰まってる
テンプレート機能とかは別の教材さがします。
0436デフォルトの名無しさん (ササクッテロ Spa9-10y/)
2016/05/06(金) 16:38:31.12ID:W8QBH6Wiploop1();
while(1){
loop2の処理
}
return;
}
void loop1(){
while(1){
loop1の処理
}
}
のようにした時に、関数loop1の最中に並列でloop2の処理に向かってしまうようです。
loop1を呼んでいる最中に進まないようにする方法はありませんか?
0437デフォルトの名無しさん (ササクッテロ Spa9-10y/)
2016/05/06(金) 16:43:28.12ID:W8QBH6Wipそのキー入力でbreakするまではloop2に入って欲しくない、ということです。
0438デフォルトの名無しさん (ワッチョイ ff73-5iF2)
2016/05/06(金) 17:30:16.10ID:v84XfFkE0並列なライブラリでも使っているの??
0439デフォルトの名無しさん (ワッチョイ 5ecc-wv7z)
2016/05/06(金) 17:33:14.52ID:zXXHgXCN00440デフォルトの名無しさん (ササクッテロ Spa9-10y/)
2016/05/06(金) 18:01:27.30ID:W8QBH6Wipボタンコールバック(loop2で使う)を拾っているだけで実際にはloop2には入っていませんでした。
で、このコールバックをloop1の最中に拾われるとエラーになるんですけどどうすればいいですか?
loop1はいわゆる確認ダイアログ的なやつで、無限ループにしてあって、マウスコールバックで特定領域をクリックすると抜け出すようになってるんですけど
このループの最中に他のボタンコールバックを無効にするにはどうすればいいですか?
0441デフォルトの名無しさん (ササクッテロ Spa9-10y/)
2016/05/06(金) 18:05:53.80ID:W8QBH6Wip0442デフォルトの名無しさん (ササクッテロ Spa9-10y/)
2016/05/06(金) 18:11:14.30ID:W8QBH6Wip0443デフォルトの名無しさん (ササクッテロ Spa9-10y/)
2016/05/06(金) 20:17:54.26ID:W8QBH6Wip組み込んだライブラリの関数が勝手に動くんですが、これは普通ですか?
具体的には、mainで無限ループしている最中にも関わらず
特定のボタンをクリックすると別の関数が走ってウインドウ内のスクリーンショットが作成されます
他の関数に制御取られない方法はないですか?
0444デフォルトの名無しさん (ササクッテロ Spa9-10y/)
2016/05/06(金) 20:44:03.17ID:W8QBH6Wipボタンを押すとおかまいなしに勝手に動いてスクリーンショットを作りに行きます。
出力先ディレクトリの選択ダイアログとかも出るのに、この間デバッグのログに一切動きなし。
どうすれば??
0445デフォルトの名無しさん (ワッチョイ f64e-wv7z)
2016/05/06(金) 20:59:24.09ID:k5bIkp2l00446デフォルトの名無しさん (ササクッテロ Spa9-10y/)
2016/05/06(金) 21:06:05.42ID:W8QBH6Wip0447デフォルトの名無しさん (ワッチョイ 40cf-5iF2)
2016/05/06(金) 21:15:11.86ID:ieYvqp+A0http://www.ranvis.com/articles/smart-questions.ja.html
0448デフォルトの名無しさん (ササクッテロ Spa9-10y/)
2016/05/06(金) 21:16:54.21ID:W8QBH6Wip0449デフォルトの名無しさん (ワッチョイ 40cf-5iF2)
2016/05/06(金) 21:23:50.67ID:ieYvqp+A0http://www.ranvis.com/articles/smart-questions.ja.html#lesser
0450デフォルトの名無しさん (ササクッテロ Spa9-10y/)
2016/05/06(金) 21:26:44.03ID:W8QBH6Wip0451デフォルトの名無しさん (ワッチョイ 21c1-cHFQ)
2016/05/06(金) 21:30:20.27ID:R+qFy6/e0「組み込んだライブラリ」の作者にきくか、そのライブラリを組み込まない
0452デフォルトの名無しさん (ササクッテロ Spa9-10y/)
2016/05/06(金) 21:47:37.87ID:W8QBH6Wipそれは最もなのですが
無限ループやメッセージボックスの応答待ちの時にでも外から割り込んで関数を走らせることは可能なのですか?
0453デフォルトの名無しさん (ワッチョイ 8063-wv7z)
2016/05/06(金) 22:08:00.65ID:dFoYv6n+0>これは普通ですか?
糞ライブラリではよくあること
>他の関数に制御取られない方法はないですか
一般的には糞ライブラリの挙動を制御する方法は無い
わかったらスレ違いの荒らしは去れ
0454デフォルトの名無しさん (ササクッテロ Spa9-10y/)
2016/05/06(金) 22:24:03.60ID:W8QBH6Wipありがとうございます
なるほど、そうなのですか…それは大変
ところでどうしてスレ違いなのですか?
0455デフォルトの名無しさん (アウアウ Sa41-Zs2w)
2016/05/06(金) 22:38:48.68ID:tz5jr0Roa0456デフォルトの名無しさん (ササクッテロ Spa9-10y/)
2016/05/06(金) 22:43:07.34ID:W8QBH6Wipそんなこと言わずに教えてください
初心者なので本当にわからないのです…
0457デフォルトの名無しさん (ワッチョイ 1d30-znPs)
2016/05/06(金) 23:18:37.39ID:ikTXVpGc0すぐにはでてこないがとりあえず調べな
0458デフォルトの名無しさん (ワッチョイ 3fe7-lMTc)
2016/05/06(金) 23:22:22.12ID:vy9oFqn70とりあえず、ソースコードやるから落ち着け。
再現してみたけどこれからどうしたい。
0459デフォルトの名無しさん (ワッチョイ 3fe7-lMTc)
2016/05/06(金) 23:30:41.46ID:vy9oFqn70どっちかが可能性高い。
0460デフォルトの名無しさん (ササクッテロ Spa9-10y/)
2016/05/06(金) 23:54:59.03ID:W8QBH6Wipそれぞれのループに入る前にウインドウを生成しています。(window1とwindow2)
window1はいいのですが、window2は外部ライブラリの関数で作成したウインドウで、メニューバーみたいなボタンが最初から付いています
そのボタンの一つが、ウインドウのスクリーンショットを取るボタンなのですが、loop1の中でも動いちゃいます
loop1のループの中ではそのライブラリの関数を使っていないので、恐らく外部スレッド?の方だと思いますが
外部スレッド?の侵入を一時的に不可にする方法があれば知りたいですけど、ないようですね…
0461デフォルトの名無しさん (ワッチョイ e095-5iF2)
2016/05/07(土) 00:07:03.33ID:DL6sNyRg0ひょっとして、そのライブラリはexeをキックしているだけでメニューバーみたいなボタンのウィンドウは別のプロセスなんてことはないの?
0462デフォルトの名無しさん (ワッチョイ 9c9d-APoh)
2016/05/07(土) 00:13:50.15ID:pheDUhx40ここで聞くより、外部ライブラリ作者に聞くのが良いよ
もし、現状できないって言われたら、作者にこうできるようにしてって必死にする
0463デフォルトの名無しさん (ワッチョイ b551-5iF2)
2016/05/07(土) 00:16:10.71ID:LMdi7EDF0それ止めたらloop1からも抜けられなくなるが?
特定領域のクリックは受け付けるけどスクリーンショットのボタンは無効にしたいってんなら
そのライブラリの使い方調べてみるしかないだろう。どっちにしてもC++の質問じゃない。
0464デフォルトの名無しさん (ワッチョイ 3fe7-lMTc)
2016/05/07(土) 00:19:48.62ID:qCADCCRG0こういう感じのこともC++では可能。
と、かこうとおもったところで、Windowsの質問はすれ違いだ。
0465デフォルトの名無しさん (ササクッテロ Spa9-10y/)
2016/05/07(土) 00:20:02.90ID:AgRcX6YRpタスクマネージャーで調べてみたけどそんなことはなかったです(この調べ方で合ってるですかね)
>>462
Qtとかいうやつなんですけど作者だれかイマイチ分からないし別に無理なら無理でグローバル変数使って無理やりなんとかすることにします
ただ外部関数?を簡単に押さえこめるような方法があるかなーと思ったのですが、思いの外複雑なやうですね。ありがとうございました
0466デフォルトの名無しさん (ワッチョイ 3fe7-lMTc)
2016/05/07(土) 00:21:02.88ID:qCADCCRG00467デフォルトの名無しさん (ワッチョイ 3fe7-lMTc)
2016/05/07(土) 00:21:50.44ID:qCADCCRG0QTなら普通の商用ライブラリなのでマニュアル読み直せ。
0468デフォルトの名無しさん (ササクッテロ Spa9-10y/)
2016/05/07(土) 00:28:25.31ID:AgRcX6YRpデバッグモードで追いかけてみましたが、初心者の自分には何してるさっぱりで、途中でqtimer.cppが見つからないとかいって追いかけれなくなるしで散々でした
とりあえず簡単には外部関数?を制御出来ないことが分かっただけでも収穫になりましたのでどうもありがとうございました
0469デフォルトの名無しさん (ワッチョイ 3fe7-lMTc)
2016/05/07(土) 00:31:08.95ID:qCADCCRG00470デフォルトの名無しさん (ワッチョイ 9c9d-APoh)
2016/05/07(土) 00:37:04.59ID:pheDUhx40Qtの特長の一つであるSignel-Slotあたりが原因って感じがするが
まぁ、QtならここよりQtスレで聞いたほうが良い。
0471デフォルトの名無しさん (ワッチョイ be9f-fbpY)
2016/05/07(土) 00:42:09.98ID:gfii433/0間違った見当外れの説明を元にアドバイスしてもやはり見当外れになるだけ
もう少し本人がスキルアップするかQtスレで親切なエスパーを待つ他に無い
0472デフォルトの名無しさん (ワッチョイ 3fe7-lMTc)
2016/05/07(土) 00:56:14.88ID:qCADCCRG0QTって最初から言ってたら、誘導されてたかもしれんのに。
0473デフォルトの名無しさん (ワッチョイ be5b-aqUl)
2016/05/07(土) 01:02:43.31ID:tnQnmuW40わからんからこそ全部出すべきってのもわかってはいるんだが
0474デフォルトの名無しさん (ササクッテロ Spa9-10y/)
2016/05/07(土) 01:03:04.65ID:AgRcX6YRpちょっと分からなかったんですよね、というのも
またこんなこと言うと情報小出しと怒られそうですけど
実はちゃんとしたQtじゃないんですよ。opencvのバックエンド?とかいうやつで
元々、opencvを勉強していたんですが、途中でQtってのを組み込むとGUIがちょっと綺麗になるよっていうの発見したのでopencvの関数にqtを組み込んだやつを使ってみたら例外がいっぱい起こってしまいてんてこ舞いという感じでした
次回から情報を小出しにしないように気をつけますありがとうございます
0475デフォルトの名無しさん (ワッチョイ 3fe7-lMTc)
2016/05/07(土) 01:07:00.66ID:qCADCCRG0キレるぞマジで。最初からそれを書け。
0476デフォルトの名無しさん (ワッチョイ 778c-jFV0)
2016/05/07(土) 01:13:45.79ID:4oP6NddQ0もっと叩け 今度は
実はPython版OpenCVでしたとか言い出すぞw
0477デフォルトの名無しさん (ワッチョイ 3fe7-lMTc)
2016/05/07(土) 01:15:11.33ID:qCADCCRG00478デフォルトの名無しさん (アウアウ Sa41-Zs2w)
2016/05/07(土) 02:19:33.54ID:hrppdYsNa0479デフォルトの名無しさん (ワッチョイ 5e3c-wv7z)
2016/05/07(土) 05:36:01.95ID:MCMf/Qi900480デフォルトの名無しさん (ワッチョイ b9b4-7Olf)
2016/05/07(土) 12:16:58.48ID:GYpWU44C0vector<A> vec;
としたとき、
A *a = new A(5 /* 引数は適当 */);
な a を vec に追加するにはどうしたらいいですか?
0481デフォルトの名無しさん (ワッチョイ b96c-f78H)
2016/05/07(土) 12:21:20.92ID:wuS0ySL800482デフォルトの名無しさん (ワッチョイ 88cb-7Olf)
2016/05/07(土) 12:25:54.60ID:OK0jFuMO00483デフォルトの名無しさん (ワッチョイ 7d7b-xjE4)
2016/05/07(土) 12:37:16.87ID:50MP5ems0シングルトン風味なのにそれをベクターにしたいとか
なんかめちゃくちゃじゃないの。
0484480 (ワッチョイ b9b4-7Olf)
2016/05/07(土) 12:44:25.73ID:GYpWU44C0「あるクラスのインスタンスがひとつ」なのがシングルトンでは?
>コピーは禁止だけどムーブはオッケー
の場合、「各状態のインスタンスが高々ひとつ」の意味なので
vector で管理するのは別に変ではないような気がします
0485デフォルトの名無しさん (スプー Sdc8-wv7z)
2016/05/07(土) 12:44:58.07ID:NjSdOFLzdhttps://msdn.microsoft.com/ja-jp/library/hh279676.aspx
0486デフォルトの名無しさん (ワッチョイ bd7b-fQUW)
2016/05/07(土) 13:02:19.07ID:5xFs3i7R00487480 (ワッチョイ b9b4-7Olf)
2016/05/07(土) 13:36:55.97ID:GYpWU44C0状況としては似てる…けどちょっと違います
vector の中は unique_ptr の指している実体、という状況です
>>486
>>482 でも言われましたが、コンストラクタに渡すべき引数が
外部から分かるなら emplace_back でいいですね
結局こんな感じで、move() 関数を作りました
https://ideone.com/BgtPGR
問題は
1. new で確保したインスタンスに対して呼ばないと死ぬ
2. delete this が激しくキモい
ことです
0488480 (ワッチョイ b9b4-7Olf)
2016/05/07(土) 13:43:49.86ID:GYpWU44C0解放の責任は new した側にありますし
やったーできたー
0489デフォルトの名無しさん (ワッチョイ bd7b-YzxY)
2016/05/07(土) 13:46:19.11ID:5xFs3i7R0?
std::moveを使わない理由は?
0490デフォルトの名無しさん (ワッチョイ b9b4-7Olf)
2016/05/07(土) 13:53:37.12ID:GYpWU44C0あれ、できました
さっきまで、さっきまで動かなかったはずのコードなのに…
ありがとうございます…
0491デフォルトの名無しさん (ワッチョイ bd02-7Olf)
2016/05/07(土) 14:07:18.10ID:lqutBYGs00492デフォルトの名無しさん (ワッチョイ 5ecc-wv7z)
2016/05/07(土) 14:24:19.18ID:9/SiGFfq00493デフォルトの名無しさん (ワッチョイ 32a6-7Olf)
2016/05/07(土) 14:24:21.49ID:Nq/4SgpV00494デフォルトの名無しさん (ワッチョイ 8063-wv7z)
2016/05/07(土) 14:52:34.98ID:ISmmGMjJ0>無制限にぶち込めるぞ
唐突にどうした。アスペか?
0495デフォルトの名無しさん (ワッチョイ 9c41-X9cp)
2016/05/07(土) 20:19:39.58ID:bJut0jV40//いろいろな処理
char[6] = 0;
と記述していたら、先輩から
char[6] = '\0';
と修正されたんですが、意味違いますか?
0496デフォルトの名無しさん (ワッチョイ 9c41-X9cp)
2016/05/07(土) 20:20:05.88ID:bJut0jV40str[6] = '\0';
です
0497デフォルトの名無しさん (ワッチョイ 32a6-7Olf)
2016/05/07(土) 20:33:55.18ID:Nq/4SgpV08ビット整数の配列のつもりであれば 0 を
ということでいいのか?
0498デフォルトの名無しさん (ワッチョイ 8063-wv7z)
2016/05/07(土) 20:37:46.88ID:ISmmGMjJ0バイナリーデータをstrで管理していて値ゼロを入れようとする思わせぶり
str[6] = '\0';
文字列をstrで管理していて終端のヌル文字入れようとする思わせぶり
0499デフォルトの名無しさん (ワッチョイ f6e5-T8u2)
2016/05/07(土) 21:27:36.44ID:2MzLWeIa00500デフォルトの名無しさん (アウアウ Sa41-Zs2w)
2016/05/07(土) 21:29:03.90ID:PlV1IzZTa三ヶ月後の自分はもはや他人だ
0501デフォルトの名無しさん (ワッチョイ 40cf-5iF2)
2016/05/07(土) 21:48:10.05ID:gGosoxju0その(曖昧な)条件だとどちらも同じプログラムに帰結することが可能そうだから、差を生じる理由は導けないと思う。
0502デフォルトの名無しさん (ワッチョイ f6e5-T8u2)
2016/05/07(土) 21:50:43.93ID:2MzLWeIa0では、逆にこういう処理プログラムを書く場合ならc/c++で差が出るというものはありますか?
0503デフォルトの名無しさん (ワッチョイ 40cf-5iF2)
2016/05/07(土) 22:00:18.21ID:gGosoxju0restrict が有効に働くケースなら C が有利になるかもね。
0504デフォルトの名無しさん (ワッチョイ 8063-wv7z)
2016/05/07(土) 22:22:13.08ID:ISmmGMjJ0クイックソートだけはかなりの確率でC++の圧勝
0505デフォルトの名無しさん (ワッチョイ 3ff8-H0Kj)
2016/05/07(土) 22:25:20.03ID:TEQEM2qu0小さなプログラムの場合は
基本的にはCで書くのと同じ内容をc++でも書けるので
Cで組むのとc++で組むのとでは処理速度は理論上変わらない。
しかし大きなプログラムの場合には
・優秀なプログラマが一度に理解できるプログラムの行数は1万行オーダー、つまり有限だと言われている
・優秀なプログラマは、理解できる範囲で最適化を行える。つまり、理解不能な最適化は出来ない
・Cとc++で同じ内容の十分に複雑なプログラムを書いた場合、c++の方が若干短くなる
から、優秀なプログラマがバグを出さずに超長いプログラムを組む場合、
Cで組むよりc++で組んだ方が最適化を多く掛ける事が出来るようになるので
Cで書くよりc++で書いた方が処理速度は速くなりうる。
0506デフォルトの名無しさん (ワッチョイ 9c41-X9cp)
2016/05/07(土) 22:42:14.29ID:bJut0jV40はぁ?
プロトタイプでもそんなんじゃかけないぜ
半導体装置制御でC++を使っているが、40万行以上あるぜ
隅々まで理解しているつもり
OSなんていったら相当だろ
0507デフォルトの名無しさん (ワッチョイ fe16-ny5G)
2016/05/07(土) 23:07:24.97ID:2VJKllfT0そん中のC++を使って書かれた部分の速度ってどんな意味があるんだろう
0508デフォルトの名無しさん (ワッチョイ 40cf-5iF2)
2016/05/07(土) 23:11:17.64ID:gGosoxju0http://h-deb.clg.qc.ca/Sujets/Developpement/Exceptions-Costs.html
> This test shows that in the case most favorable to exceptions (the one
> where they are effectively exceptional), the exception-handling code is
> faster than the error-handling one.
0509デフォルトの名無しさん (ワッチョイ 9c9d-APoh)
2016/05/07(土) 23:35:45.09ID:pheDUhx40それを一人で開発やったのか。すごいなお前
0510デフォルトの名無しさん (ワッチョイ 3ff8-H0Kj)
2016/05/07(土) 23:38:55.40ID:TEQEM2qu0要点はそこじゃない。
君が超優秀かどうかはさておき。
0511デフォルトの名無しさん (ワッチョイ 5ecc-wv7z)
2016/05/07(土) 23:43:10.78ID:X4O7V36I00512デフォルトの名無しさん (ワッチョイ be9f-fbpY)
2016/05/07(土) 23:47:49.64ID:gfii433/00513デフォルトの名無しさん (ワッチョイ 3ff8-H0Kj)
2016/05/07(土) 23:49:57.90ID:TEQEM2qu0理由は?
0514デフォルトの名無しさん (ワッチョイ c13c-APoh)
2016/05/07(土) 23:53:03.44ID:CJYWvDHF00515デフォルトの名無しさん (ワッチョイ be9f-fbpY)
2016/05/08(日) 00:26:59.06ID:HXMhoTSZ0一般的とう限定では超一流でもないし速度最優先のコーディングでもなく
C++にしか無い機能(クラスとかテンプレートとか)使うとコードもメモリも
肥大化する傾向があるから
0516デフォルトの名無しさん (ワッチョイ bd02-7Olf)
2016/05/08(日) 00:34:38.65ID:mfXrjXgw00517デフォルトの名無しさん (ワッチョイ 40cf-5iF2)
2016/05/08(日) 00:42:36.86ID:0NRevPWu0> C++にしか無い機能(クラスとかテンプレートとか)使うとコードもメモリも
> 肥大化する傾向があるから
具体的に、どのコンパイラでの結果を見て言ってるの?
0518デフォルトの名無しさん (ワッチョイ bd7b-YzxY)
2016/05/08(日) 00:49:08.05ID:hZHozpgd0Cでもstruct使わない人だろうか
0519デフォルトの名無しさん (ワッチョイ fe16-ny5G)
2016/05/08(日) 00:49:58.77ID:vtsfrRsw0struct hoge* hoge__member_function(struct hoge* that, int arg, ...)
{
hoge__do_something(that);
return that;
}
hoge& hoge::member_function(int arg ...)
{
do_something();
return *this;
}
何がどう違うんだよw
0520デフォルトの名無しさん (ワッチョイ 9c41-X9cp)
2016/05/08(日) 00:50:51.99ID:NDoMe0zH0++演算子の意味をググってください
0521デフォルトの名無しさん (ワッチョイ 9c9d-APoh)
2016/05/08(日) 00:53:25.78ID:aVBrdKMl0継承使いまくりするとって感じなんじゃないのか
C++はCより言語仕様複雑、STLあるでメモリ使用は増えるだろうと思う
0522デフォルトの名無しさん (ワッチョイ bd7b-YzxY)
2016/05/08(日) 00:54:32.48ID:hZHozpgd0普通はメンバーが無駄になるような意味のない継承なんてしないんだけど
0523デフォルトの名無しさん (ワッチョイ be9f-fbpY)
2016/05/08(日) 01:13:20.10ID:HXMhoTSZ0コンパイラはGCC(gcc,g++)とclangを主に使ってるけど自分の少ない経験では
同じようなGlib/Gtk+ベースのプログラムを書いた場合、C++/gtkmmよりも
Valaを使う方がコンパクトになる
0524デフォルトの名無しさん (ワッチョイ 40cf-5iF2)
2016/05/08(日) 01:14:10.23ID:0NRevPWu0継承なんてメモリ使用の観点では構造体の中に構造体置くのと変わらない。
メモリ使用量を増やすような言語仕様の差があるならそれを挙げてみて。
C++標準コンテナ使うプログラムならCで書いても同じだけメモリ確保が要るだろ。
0525デフォルトの名無しさん (ワッチョイ 40cf-5iF2)
2016/05/08(日) 01:30:14.46ID:0NRevPWu0Vala って独自言語→C の Cfront みたいなやつなんだな。
それで実際に差が出るっていうのは興味深いけど、中間のCのコードと比較しながら
C++のほうをgtkmm含めて改良していけば同じことにはできるんだろうと思う。
0526デフォルトの名無しさん (ワッチョイ 9c41-X9cp)
2016/05/08(日) 01:34:20.48ID:NDoMe0zH0バイナリはでかくなるし、遅いし・・・
存在理由がわからん
0527デフォルトの名無しさん (ワッチョイ 5ecc-wv7z)
2016/05/08(日) 01:36:39.43ID:ac/16y3t00528デフォルトの名無しさん (ワッチョイ 3fe7-lMTc)
2016/05/08(日) 01:38:18.51ID:r8xFef3w00529デフォルトの名無しさん (ワッチョイ be9f-fbpY)
2016/05/08(日) 01:45:58.46ID:R2Zn2+sX0便利なライブラリがあれば使うだろうし車輪の再発明をするより実績のある
ライブラリがあればそれを使うのが普通だからCだったら自分に必要最低限で
済ませるような場合でもC++標準コンテナが便利に使えるケースなら
そこまで汎用性が必要なくても使うことは一般的だと思う
ライブラリの差で言えば標準ライブラリ以外でも便利なライブラリのC++バインディングは
やはりそれなりに汎用的で便利に使えるように考慮して作られることが多いし
極限まで洗練されてるとも限らないのでバインディング分の肥大化もある
0530デフォルトの名無しさん (ワッチョイ 9c42-wv7z)
2016/05/08(日) 01:46:33.21ID:KW8blOBJ0逆に使わないで、自前で書いてる奴がいるってこと?
プロジェクトにそんなやつ参加してたら即外すくらい迷惑なんだが…
俺の感覚がおかしいのか?
0531デフォルトの名無しさん (ワッチョイ be9f-fbpY)
2016/05/08(日) 02:04:27.63ID:R2Zn2+sX0C言語でC++標準ライブラリと同等なライブラリを書くことはまず無いと思う
C++で書く場合vectorとかmapの全てのメンバ変数、全てのメソッドが
必要な場合はまず無いと思うので自前で書く奴なんかいないから
何らかの無駄が生じる
0532デフォルトの名無しさん (ワッチョイ bd7b-YzxY)
2016/05/08(日) 03:15:08.39ID:hZHozpgd00533デフォルトの名無しさん (ワッチョイ c13c-APoh)
2016/05/08(日) 03:20:37.22ID:BqGdpOYS0C++で再設計されると機能は豊富になる傾向がある。
0534デフォルトの名無しさん (ワッチョイ 3fe7-lMTc)
2016/05/08(日) 03:30:57.75ID:r8xFef3w0Cのように薄いラッパーで書くこともできるが、できることが増えると全部使いたくなる。
それが癌。
0535デフォルトの名無しさん (ワッチョイ bd02-7Olf)
2016/05/08(日) 03:34:24.61ID:mfXrjXgw00536デフォルトの名無しさん (ワッチョイ bd7b-YzxY)
2016/05/08(日) 03:49:22.70ID:hZHozpgd0C++にしたことによって機能が豊富になり企業ごと買ってもらえてよかったやん?
0537デフォルトの名無しさん (アウアウ Sa41-Zs2w)
2016/05/08(日) 06:48:20.55ID:bsBg6NTha0538デフォルトの名無しさん (ワッチョイ 3fe7-lMTc)
2016/05/08(日) 06:56:36.21ID:r8xFef3w0汎用性重視して使いまわせるようにした分、特化用途では劣る。
0539デフォルトの名無しさん (オッペケ Sra9-wv7z)
2016/05/08(日) 10:49:40.33ID:pkRLpXcEr入出力みたいなIOバウンドな処理でも遅いことが露呈してしまうのは
相当なUNKO
0540デフォルトの名無しさん (ワッチョイ 9e17-wv7z)
2016/05/08(日) 11:03:26.85ID:Zy+4Am2s00541デフォルトの名無しさん (ワッチョイ 40cf-5iF2)
2016/05/08(日) 11:26:43.00ID:0NRevPWu0言うほど遅くは無いかな。特に読み取りでは。 (@gcc 6.1.0)
http://melpon.org/wandbox/permlink/vHk9j9P41g38ZwQz
> FILE* write 0.117051 ms
> FILE* read 23.5034 ms
> fstream write 0.156568 ms
> fstream read 23.5264 ms
・・・と思ったら、同じコードなのにこれはひどい。 (@clang 3.8.0)
http://melpon.org/wandbox/permlink/pufsFMa7Pl29iEwT
> FILE* write 0.117286 ms
> FILE* read 25.3939 ms
> fstream write 36.1465 ms
> fstream read 313.493 ms
ライブラリ実装の質が問題として大きい様子。
gcc のほうの書き込みの差が設計上の問題の表れなのかね?
0542デフォルトの名無しさん (ワッチョイ 9c41-X9cp)
2016/05/08(日) 13:28:04.05ID:NDoMe0zH0無保証で配布されてるようなものよく使うな
0543デフォルトの名無しさん (ワッチョイ 7d7b-xjE4)
2016/05/08(日) 13:34:39.34ID:e7FUVg4v0結局アセンブラ以上の速度なんかでないんだから、
あとはライブラリがどう実装されているかの差でしかない。
0544デフォルトの名無しさん (ワッチョイ 8063-wv7z)
2016/05/08(日) 13:43:29.27ID:Z9PKRgQn00545デフォルトの名無しさん (ワッチョイ 40cf-5iF2)
2016/05/08(日) 13:44:44.46ID:0NRevPWu0え?「無保証で配布されてるような」に該当しないC++コンパイラなんてあるの?
0546デフォルトの名無しさん (ワッチョイ 9c42-wv7z)
2016/05/08(日) 13:54:10.64ID:KW8blOBJ00547デフォルトの名無しさん (ワッチョイ 40cf-5iF2)
2016/05/08(日) 14:06:52.50ID:0NRevPWu0へー、と思って見に行ってみたけど、
https://software.intel.com/sites/default/files/managed/67/99/Master_EULA_for_Intel_Sw_Development_Products_March_2016.pdf
> 6. NO WARRANTY AND NO SUPPORT: Disclaimer. Intel disclaims all warranties of any kind and ...
やっぱ無保証じゃないの?見てるライセンス文書が違う?
0548デフォルトの名無しさん (ワッチョイ 5e3c-wv7z)
2016/05/08(日) 14:08:40.18ID:7UXL6x+W0メーカーの有償コンパイラはいくらでもあるだろ
ベースが GCC であろうと保守契約してれば保証はしてくれる
その保証が役に立つかどうかは別だけど
0549デフォルトの名無しさん (ワッチョイ 9c42-wv7z)
2016/05/08(日) 14:11:27.77ID:KW8blOBJ0ほんとだ
VC++とかもコンパイラは無保証なのかな?
0550デフォルトの名無しさん (ワッチョイ f64e-wv7z)
2016/05/08(日) 14:46:15.67ID:6EBK0SNh0有償のコンパイラは数多いけど、何らかの「保証」をしてくれる商品ってあんまりないと思う。
有償の対価はサポートが多いよね。
大体は NO WARRANTY で、期待するような効力は無いと思うけど。
まあ、一口に保証って言ってもいろいろあるけどね…
0551デフォルトの名無しさん (ワッチョイ 9c41-X9cp)
2016/05/08(日) 14:48:20.88ID:NDoMe0zH0icc
0552デフォルトの名無しさん (ワッチョイ f64e-wv7z)
2016/05/08(日) 14:53:15.78ID:6EBK0SNh0半導体装置って何?
って思って検索したら半導体製造装置の事でいいんかな?
しっかし、何かいろいろあってよくわからん世界だな…
0553デフォルトの名無しさん (ワッチョイ 40cf-5iF2)
2016/05/08(日) 15:20:27.33ID:0NRevPWu0それの保証って >547 じゃないの?違うんならどんな保証があんの?
0554デフォルトの名無しさん (ワッチョイ 9c41-X9cp)
2016/05/08(日) 15:31:09.95ID:NDoMe0zH0gccなんて髭面の乞食みたいな奴が作ったソフトでしょ
0555デフォルトの名無しさん (ワッチョイ 3f42-7Olf)
2016/05/08(日) 17:22:36.22ID:QO+NBPG400556デフォルトの名無しさん (ワッチョイ 9fd4-EIjF)
2016/05/08(日) 17:46:35.49ID:NKVAXp+L00557デフォルトの名無しさん (ワッチョイ 328b-lMTc)
2016/05/08(日) 18:01:04.73ID:+0FfKmse00558デフォルトの名無しさん (ワッチョイ c13c-APoh)
2016/05/08(日) 18:17:53.49ID:Idc9lMfP0資本主義か共産主義かと言えば、明らかに共産寄りの主義を持ってるだろ。
0559デフォルトの名無しさん (スプー Sdb8-wv7z)
2016/05/08(日) 18:29:38.44ID:yx/SoqI4d真逆じゃね。
共産主義国でGPLがまともに効果を発揮するとは思えんが
0560デフォルトの名無しさん (ワッチョイ 3a13-75AG)
2016/05/08(日) 18:36:54.38ID:2KDLdDvi00561デフォルトの名無しさん (アウアウ Sa41-Zs2w)
2016/05/08(日) 18:40:04.47ID:iOm+CRLoa0562デフォルトの名無しさん (ワッチョイ 3f42-7Olf)
2016/05/08(日) 18:44:56.64ID:QO+NBPG400563デフォルトの名無しさん (ワッチョイ bd02-7Olf)
2016/05/08(日) 19:34:23.06ID:mfXrjXgw0権力に独占させないのが自由ソフトウェアだろ
0564デフォルトの名無しさん (ワッチョイ bd2b-kevm)
2016/05/08(日) 19:35:04.68ID:us042D/d00565デフォルトの名無しさん (ワッチョイ 7c42-wv7z)
2016/05/08(日) 22:49:21.51ID:tRpDEO2z0そんなことも知らずにストールマンを髭とかピザデブとか言う奴は、禿て氏んでしまえ。
0566デフォルトの名無しさん (ワッチョイ 328b-lMTc)
2016/05/08(日) 22:59:44.96ID:+0FfKmse0やってることは共産主義者だがな、
0567デフォルトの名無しさん (ワッチョイ 3f42-7Olf)
2016/05/08(日) 23:18:24.65ID:QO+NBPG400568デフォルトの名無しさん (ワッチョイ 778c-10y/)
2016/05/08(日) 23:39:50.87ID:kgnsEu+L00569デフォルトの名無しさん (ワッチョイ bd02-7Olf)
2016/05/08(日) 23:47:10.40ID:mfXrjXgw00570デフォルトの名無しさん (ワッチョイ 7d7b-xjE4)
2016/05/09(月) 00:05:04.99ID:owmkQV0r00571デフォルトの名無しさん (ササクッテロ Spa9-10y/)
2016/05/09(月) 00:28:08.65ID:D9KYpVKqp0572デフォルトの名無しさん (ササクッテロ Spa9-10y/)
2016/05/09(月) 00:31:37.72ID:pVI6O9RYpstring s;
if( s != NULL) 〜
って書いたら謎のエラー出されたのですが
0573デフォルトの名無しさん (ワッチョイ 3fe7-lMTc)
2016/05/09(月) 00:37:22.99ID:pUXvKib10宣言当初は空っぽ。空っぽを知るにはsize()かlength()を使うだっけか。
std::stringはヌルターミネートストリングではない。
0574デフォルトの名無しさん (ワッチョイ f256-wv7z)
2016/05/09(月) 00:40:19.49ID:rFeP9sIM0if( !s.empty() ) 〜
0575デフォルトの名無しさん (ササクッテロ Spa9-10y/)
2016/05/09(月) 00:42:40.61ID:pVI6O9RYpナルフほど、参考になりました。どうもありがとうございます。
0576デフォルトの名無しさん (ワッチョイ 7cbf-wv7z)
2016/05/09(月) 00:50:51.52ID:27MMukgj00577デフォルトの名無しさん (ワッチョイ 3fe7-lMTc)
2016/05/09(月) 00:52:00.22ID:pUXvKib10それだ。あんま使わないから忘れてた。
0578デフォルトの名無しさん (ワッチョイ ff73-OI8D)
2016/05/09(月) 07:12:53.06ID:FiIoAZ6E00579デフォルトの名無しさん (ワッチョイ bd7b-YzxY)
2016/05/09(月) 07:51:26.99ID:gB83NhqC0引数要らない
0580デフォルトの名無しさん (ワッチョイ bd7b-YzxY)
2016/05/09(月) 07:56:30.26ID:gB83NhqC0実行時みたいなプロファイラないよね?
0581デフォルトの名無しさん (スプー Sdb8-wv7z)
2016/05/09(月) 09:56:31.43ID:Xsyq9PvJd0582デフォルトの名無しさん (ワッチョイ 3ff8-H0Kj)
2016/05/09(月) 10:05:09.76ID:OXHQFkpS0vectorとunordered_setではデータ構造が違うから。
一般的に、vector(線形時間)→set(対数時間)→unordered_set(定数時間)の順で検索は速くなる。
ただし、vectorは要素(この場合はstd::string)に何の仮定も置かないのに対して、
setでは全順序性を仮定するし、unordered_setではもっと厳しい条件を仮定する。
0583デフォルトの名無しさん (ワッチョイ 3ff8-H0Kj)
2016/05/09(月) 10:08:08.13ID:OXHQFkpS0TMPは可能な限りコンパイル時に全ての計算を済ませる物だから、
コンパイル時間を減らすっていう意味での最適化とは逆方向じゃない?
コンパイル時にレイトレーシングする強者もいるし(コンパイルに1週間くらい掛かるらしいが実行は数秒になる)
0584デフォルトの名無しさん (ワントンキン MM40-YzxY)
2016/05/09(月) 11:00:56.87ID:fUCJ6IjvMunordered_setは要素のハッシュ値でソート済みのデータ構造だから。
std::vectorで近いパフォーマンス出したいなら要素をstd::sortとかでソート済みにしてstd::lower_boundとstd::upper_boundで一致する範囲を取る
0585デフォルトの名無しさん (ワッチョイ 3f77-mNQ6)
2016/05/09(月) 17:22:51.78ID:e5OTdnsK0> unordered_setは要素のハッシュ値でソート済みのデータ構造だから。
どういう意味?
https://ideone.com/PH29rq
バケツもバケツの中身もソートされませんけど。
0586デフォルトの名無しさん (ササクッテロ Spa9-10y/)
2016/05/09(月) 18:05:24.60ID:pVI6O9RYpcout <<”a\n” ;
cout << ”a” << endl;
これらはどれも結果?見た目?は同じですが
内部的にはどう違うのか教えてください
0587デフォルトの名無しさん (オッペケ Sra9-wv7z)
2016/05/09(月) 18:27:34.76ID:D21wZ97+r>>586の目がフシアナなだけだろう
0588片山博文MZ ◆T6xkBnTXz7B0 (ガラプー KK3f-fZAN)
2016/05/09(月) 18:31:24.94ID:12nCphG6Kprintfは%書式の解釈が入るから、最適化されていなければputsより遅い。
endlは改行を出力するだけでなく、フラッシュも入るから、
フラッシュが効かない場合より処理が遅いが、実際の出力の開始は早くなるかもしれない。
最適化される場合は、どのように処理されるかはコンパイラ次第。
0589デフォルトの名無しさん (オッペケ Sra9-wv7z)
2016/05/09(月) 18:37:47.43ID:6ljAms74rこういう奴はどこにでも居るな。
質問の内容も読まずに脊髄反応して
脳内で単語レベルでヒットした蘊蓄を
ありがた迷惑に貼り付けるアスペが。
まあフラッシュについては>>586も得るものが有ったかも知れない。ご苦労
0590デフォルトの名無しさん (ワッチョイ ad5b-7Olf)
2016/05/09(月) 19:21:32.17ID:aNITGvAM0若干動作違う。
下記はエンターキー押すたびに処理が進む。
各行を入れ替えたりすると動作の違いがわかる。
printf("a\n"); getchar();
cout <<"a\n" ; getchar();
cout << "a" << endl; getchar();
0591デフォルトの名無しさん (ワッチョイ 3f77-mNQ6)
2016/05/09(月) 19:40:47.53ID:e5OTdnsK00592デフォルトの名無しさん (ササクッテロ Spa9-10y/)
2016/05/09(月) 20:31:36.08ID:pVI6O9RYpみなさまありがとうございます。
0593デフォルトの名無しさん (スプー Sdb8-wv7z)
2016/05/09(月) 21:37:15.19ID:Xsyq9PvJd>>584
>>585
勉強になりました、ありがとうございます。
0594デフォルトの名無しさん (ワッチョイ ff73-xUNW)
2016/05/09(月) 22:50:09.03ID:FiIoAZ6E0int a(const int b, const mystruct mst);
こんな感じでconstにしない場合と引数のために
int b用のコピー、mst用の構造体mystruct変数のコピーが作られるって書いてある
intのコピーはサイズ的に問題ないけど
構造体mystruct mstのサイズが物凄く大きい可能性がある
物凄く大きな場合も効率や速度を無視して変数のコピーが作られるのですか?
触った感じではコピーが作られているっぽいのですが
0595デフォルトの名無しさん (ワッチョイ 9c42-wv7z)
2016/05/09(月) 23:06:19.92ID:oK/ks2/Z0コピーしたくなきゃアドレスを渡すしかない(C++ならポインタか参照)
0596デフォルトの名無しさん (ワッチョイ 8063-wv7z)
2016/05/09(月) 23:07:05.31ID:Ii8g1eqf0サイズで勝手にコピーを省略されたらブチ切れだな
0597デフォルトの名無しさん (ワッチョイ 5ecc-wv7z)
2016/05/09(月) 23:43:00.36ID:jCCSCwvz0馬鹿なん?なんでコピーされるかわからないならC言語からやり直せよ
0598デフォルトの名無しさん (ワッチョイ 5ecc-wv7z)
2016/05/09(月) 23:45:48.90ID:jCCSCwvz00599デフォルトの名無しさん (ワッチョイ 9c41-X9cp)
2016/05/09(月) 23:49:52.01ID:noyNIse20うちの会社にもろくにc/c++を知らないで、仕事してる奴いるわ
0600デフォルトの名無しさん (ワッチョイ 778c-10y/)
2016/05/09(月) 23:52:36.52ID:M3iPLLj40void swap(int a, int b){
int tmp = a;
a = b;
b = tmp;
}
main(){
int a = 0;
int b = 1;
swap(a,b);
printf(”%d %d\n”,a,b);
return;
}
さて何が出力されるでしょう?
0601デフォルトの名無しさん (ワッチョイ 9c9d-APoh)
2016/05/10(火) 00:12:39.31ID:VjIbGp3Q0いかにもゆとりIT会社って感じだな
0602デフォルトの名無しさん (ワッチョイ ff73-YF3X)
2016/05/10(火) 05:28:12.75ID:u9nXjF/T00と1だね
C#だとポインターがないとか言うので
コピー渡しのみだと死ぬなと思いつつ考えてた
C#も参照渡しがありました
初心者スレで聞くべきでした
void swap(int *a, int *b){
int tmp = *a;
*a = *b;
*b = tmp;
}
0603デフォルトの名無しさん (JP 0H0d-aZyM)
2016/05/10(火) 09:58:36.58ID:xA250nOWHC++ だと &,&& も増えた
0604デフォルトの名無しさん (ワントンキン MM40-wv7z)
2016/05/10(火) 10:07:05.90ID:soJOAvIwM0605デフォルトの名無しさん (ワッチョイ 3fe7-lMTc)
2016/05/10(火) 10:10:28.85ID:E+X0dc0Z00606デフォルトの名無しさん (ワッチョイ bd02-7Olf)
2016/05/10(火) 12:50:19.00ID:iYvr3+wx00607デフォルトの名無しさん (スプー Sdc8-wv7z)
2016/05/10(火) 13:05:23.01ID:39a1ddzGd{
[](){ T a{}; }();
}
ラムダ式の中からTを使う事はできますか
0608デフォルトの名無しさん (ワッチョイ 3f77-mNQ6)
2016/05/10(火) 14:28:48.29ID:xt6qowzE0質問の意図がよく分からないけど
https://ideone.com/MF3T4r
普通に使えるのでは?
0609444 (ササクッテロ Spa9-10y/)
2016/05/10(火) 15:30:29.67ID:Jb8df6a5pメッセージBOXでTASKMODALを指定すれば動かなくなりましたので報告だけしときますありがとうございました
0610デフォルトの名無しさん (オッペケ Sra9-wv7z)
2016/05/10(火) 18:38:39.38ID:215vkzzCr>>605
>>606
C#は基本的に(refを付けない限り)全部値渡しだが
何を言っているんだお前らは
0611デフォルトの名無しさん (ワッチョイ b976-ymBj)
2016/05/10(火) 19:46:50.88ID:URI7I2Cg00612デフォルトの名無しさん (スプー Sdb8-wv7z)
2016/05/10(火) 20:05:12.28ID:QMa4CHQvd0613デフォルトの名無しさん (ササクッテロ Spa9-10y/)
2016/05/10(火) 20:24:20.24ID:dn5a8gBPp特に重い処理をしていないにも関わらず、CPU負荷が100%近くになります。
対策をお願いします。
0614デフォルトの名無しさん (ワッチョイ 3f42-7Olf)
2016/05/10(火) 20:27:23.22ID:GH5TUzj800615デフォルトの名無しさん (ワッチョイ 7c7b-m/h6)
2016/05/10(火) 20:30:54.94ID:3v8mTcBj0本当に「特に重い処理をしていないにも関わらず、CPU負荷が100%近く」なら何かバグってる
0616デフォルトの名無しさん (ササクッテロ Spa9-10y/)
2016/05/10(火) 20:43:15.13ID:dn5a8gBPpとある事情でwhileループで入力待ちしてるんですが
特に処理はしていないのに待機中にCPU100%になってますね…
0617デフォルトの名無しさん (ササクッテロ Spa9-10y/)
2016/05/10(火) 20:46:30.52ID:dn5a8gBPpループには、1ループあたり1msの待機時間作っています
0618デフォルトの名無しさん (ワッチョイ c13c-APoh)
2016/05/10(火) 20:46:51.93ID:lywmyip500619デフォルトの名無しさん (ワッチョイ 7c7b-m/h6)
2016/05/10(火) 20:48:47.48ID:3v8mTcBj0https://ideone.com/hqR9Ym
0620デフォルトの名無しさん (ワッチョイ 5602-wv7z)
2016/05/10(火) 21:22:24.14ID:O0lvE+VW0なんで問題のコードをださないの?
無駄にレス増えるだけだと思うんだけど
0621デフォルトの名無しさん (ワッチョイ 9c9d-APoh)
2016/05/10(火) 21:29:25.26ID:VjIbGp3Q0質問の仕方にいちゃもんついたライブラリがどうたらの後だしQtの人だろ
0622デフォルトの名無しさん (ワッチョイ 7d7b-7M79)
2016/05/10(火) 21:29:43.77ID:AdrvoLMk0コード出したら実際糞過ぎて叩かれるだけだと思われ。
0623デフォルトの名無しさん (ワッチョイ 5602-wv7z)
2016/05/10(火) 21:31:42.01ID:O0lvE+VW0ワッチョイで一目瞭然
0624デフォルトの名無しさん (ササクッテロ Spa9-10y/)
2016/05/10(火) 21:41:10.13ID:dn5a8gBPp待機時間を2倍の2msにして見ても、CPUが半分になるかと思ったらそれどころか全然減りませんがどうすればよいですか
0625デフォルトの名無しさん (ササクッテロ Spa9-10y/)
2016/05/10(火) 21:54:48.65ID:dn5a8gBPpwhile(1)
{
...
int c = waitKey(1);
if(c == 'q') break;
}
0626デフォルトの名無しさん (ワッチョイ 7c7b-m/h6)
2016/05/10(火) 22:12:32.27ID:3v8mTcBj0答えは>>618
時間待ちさえ明らかにバグっててちゃんと待ててない
他の人も言ってるけどコードを晒せば?
0627デフォルトの名無しさん (ワッチョイ 9c9d-APoh)
2016/05/10(火) 22:17:19.25ID:VjIbGp3Q0waitKeyってOpenCVの関数なのか。なら、スレあるのかは知らないがOpenCVスレで聞くのがいいだろ
俺、OpenCVは使ったことはないが、
http://opencv.jp/opencv-2svn/cpp/user_interface.html#cv-waitkey
の注意 2にある動作条件
>HighGUI ウィンドウが少なくとも1つ存在し,それがアクティブな場合にのみ動作
これが守られてなんじゃないのか?
0628デフォルトの名無しさん (ワッチョイ bd7b-YzxY)
2016/05/10(火) 22:23:32.56ID:A1YVuqbS0nanosleep使ってもある程度大きな値まではビジーループだぞ
OSはそんなに小さなタイミングで割り込みなんて出来ないから
0629デフォルトの名無しさん (ワッチョイ 3ff8-H0Kj)
2016/05/10(火) 22:34:59.20ID:zxnDb8j/0超どうでも良いけど、可能か不可能かで言ったら
約0.84マイクロ秒置き(1193182 Hz)の割り込みが来るように出来るようにハードウェアは組まれてるです。
0630デフォルトの名無しさん (ワッチョイ 56c0-T8u2)
2016/05/10(火) 23:00:23.29ID:yaG18+U200631デフォルトの名無しさん (ワッチョイ be9f-fbpY)
2016/05/10(火) 23:06:07.16ID:HVyJ1rA+0ハードウェアもOSも限定せずにそんな保証できるわけないだろ
0632デフォルトの名無しさん (オッペケ Sra9-wv7z)
2016/05/10(火) 23:18:12.87ID:T8dqPhAzrいきなりイミフなコードを貼り付けてどうした?
何か話さなきゃお前はただのアスペだぞ
0633デフォルトの名無しさん (ワッチョイ 3ff8-H0Kj)
2016/05/10(火) 23:19:38.14ID:zxnDb8j/0ごめんよ。
でも8259互換チップが入ってないPC/AT互換マシンなんて今時あるのかい?
0634デフォルトの名無しさん (ワッチョイ be9f-HMKq)
2016/05/10(火) 23:33:33.53ID:7q8s7zNm00635デフォルトの名無しさん (ワッチョイ 9c41-lMTc)
2016/05/10(火) 23:51:40.34ID:5J1aLd4L00636デフォルトの名無しさん (ワッチョイ 3f42-7Olf)
2016/05/10(火) 23:54:10.15ID:GH5TUzj800637デフォルトの名無しさん (ワッチョイ 9c42-wv7z)
2016/05/10(火) 23:54:27.58ID:5EInyMQF0値渡しじゃなくて参照渡しだってコードだろ
要するに>>610は間違い
0638デフォルトの名無しさん (ササクッテロ Spa9-10y/)
2016/05/10(火) 23:56:27.95ID:y6IvleFLpコードは>>625です
>>627
ウインドウはちゃんとループ外で定義してありますし使い方は合ってるはずです
>>628
ある程度はどれくらいですか?
100ms待たせたらCPU80%くらいまで減りましたが…
0639デフォルトの名無しさん (オッペケ Sra9-wv7z)
2016/05/10(火) 23:59:19.74ID:T8dqPhAzr低能のお前にヒントをやろう
参照型と参照渡しを混同してはいけない
そしてC#言語仕様5版 7.5.1 Argument lists を読んでこい
Java言語仕様8版でもいいぞ
0640デフォルトの名無しさん (ワッチョイ 9c42-wv7z)
2016/05/11(水) 00:00:38.44ID:AJNn1ICv00641デフォルトの名無しさん (ワッチョイ 9c41-lMTc)
2016/05/11(水) 01:10:14.65ID:GzlL/1jH0内の会社にもやたら、言語に関しては詳しいけど実際のコーディング、デバッグなんかは
やたら遅い奴いるわw
たぶん小さなサンプルプログラムばっかりしか書いたこと無いんだろうな
0642デフォルトの名無しさん (ワッチョイ 3f42-7Olf)
2016/05/11(水) 01:21:35.07ID:ubToLDC+0多分CPUは、この無限ループを全力で実行しているんだと思うよ
>通常のイベント処理ではこの関数を周期的に呼び出す必要があります.
ってあるから、通常は時々呼び出しなさいということでしょ。
0643デフォルトの名無しさん (ササクッテロ Spa9-10y/)
2016/05/11(水) 01:27:59.88ID:0F7keYqipありがとうございます。
そこで、CPUにこの無限ループを全力で実行させないようにする方法はないですかね?
0644デフォルトの名無しさん (ワッチョイ 3f42-7Olf)
2016/05/11(水) 01:48:35.76ID:ubToLDC+0Windows環境ならSleep()と言うのがあります。
Unix環境ならusleep()関数を使ってみては?
waitKey()の説明を読む限り、この関数内でのタイムアウト時間指定ですよね。
ループ全体の中でwaitKey()が専有する時間が1msって事で、
ループのそれ以外の部分では、何の処理も行わず、再びwaitKey()に戻っているんでしょう。
おそらくSleep、usleep関数に渡す引数の値だけCPU占有率が減ると思います。
これは泥縄的な方法ですけどね。
できるなら、「イベント発生通知をOSから受け取る。それまではお休みする」が良いと思います。
0645デフォルトの名無しさん (ワッチョイ 3fe7-lMTc)
2016/05/11(水) 02:04:52.39ID:TxG4e4qF0osまたぎたいならこれも視野に。
まぁ問題はそこじゃなさそうだけど。
0646デフォルトの名無しさん (ワッチョイ c13c-APoh)
2016/05/11(水) 04:12:57.00ID:AYk4CdLN00647デフォルトの名無しさん (ワッチョイ 9c7b-SnbV)
2016/05/11(水) 07:33:54.29ID:E3fj3Ww+0ビジーループでは、CPUが占有されてしまう。
一方イベントでは、CPUを使わない
0648デフォルトの名無しさん (ワッチョイ c13c-APoh)
2016/05/11(水) 14:29:08.71ID:Hst0/UDE0ところで、ポーリングで速度を落とす賢いプログラマはいないモノでしょうか。
0649デフォルトの名無しさん (ワッチョイ f910-F7+X)
2016/05/11(水) 15:24:54.40ID:GeTKo9910そもそも「...」の部分の処理が重いんじゃないの?
処理一切無しでwaitKeyだけでも重いの?
0650デフォルトの名無しさん (JP 0H0d-aZyM)
2016/05/11(水) 15:31:43.86ID:l/Aku55rHウエイト無しクソサンプルを真似たんじゃろ
まともなものならドキュメントなりチュートリアルなりで説明があるはず
コールバック型のイベント処理だって探せば出てくるんじゃないの
0651デフォルトの名無しさん (ワッチョイ bd7b-YzxY)
2016/05/11(水) 16:24:44.34ID:to/KEVVR00652デフォルトの名無しさん (JP 0H0d-aZyM)
2016/05/11(水) 16:35:01.05ID:l/Aku55rH0653デフォルトの名無しさん (ワッチョイ bd7b-YzxY)
2016/05/11(水) 16:50:01.24ID:to/KEVVR0一応聞いてやるけど何が?
0654デフォルトの名無しさん (ワッチョイ c13c-APoh)
2016/05/11(水) 17:04:09.30ID:Hst0/UDE0ノートが熱くなって燃えてしまいました。
謝罪と賠償を要求します。
0655デフォルトの名無しさん (ワッチョイ 9c41-lMTc)
2016/05/11(水) 18:03:39.93ID:GzlL/1jH0Bjarne Stroustruはなにをしたの?
MSやintelなんかにコンパイラを作って提供したって事なの?
0656デフォルトの名無しさん (JP 0H0d-aZyM)
2016/05/11(水) 18:39:38.91ID:l/Aku55rH0657デフォルトの名無しさん (ワッチョイ 8063-wv7z)
2016/05/11(水) 19:05:28.34ID:5a6iax+r0今日はまた一段とぶっ飛んでいる
0658デフォルトの名無しさん (ワッチョイ bd02-7Olf)
2016/05/11(水) 20:32:01.30ID:FbDxsPeF0最初にC++というものを考えた
0659デフォルトの名無しさん (ワッチョイ 56c0-T8u2)
2016/05/11(水) 21:38:44.46ID:Hbfyg6Vu0C++;
0660デフォルトの名無しさん (アウアウ Sa41-Zs2w)
2016/05/11(水) 21:55:30.78ID:mridOWona0661デフォルトの名無しさん (ワッチョイ 7d7b-7M79)
2016/05/11(水) 23:05:50.38ID:rzhdH4Ry0それは c の間にやっておきたかった事があるから。
0662デフォルトの名無しさん (ワッチョイ 9fa6-Wsqh)
2016/05/12(木) 00:49:34.70ID:skSN1OPx00663デフォルトの名無しさん (ワッチョイ 6fcc-/3cR)
2016/05/12(木) 01:54:44.22ID:V7G0arWW00664デフォルトの名無しさん (ドコグロ MMef-/3cR)
2016/05/12(木) 07:19:43.34ID:H+I8h1G8Mそんなケースあったっけ?
0665デフォルトの名無しさん (ワッチョイ 37bf-/3cR)
2016/05/12(木) 08:51:12.00ID:N3lYKGUd0勘違いしちゃったのかなー?
0666デフォルトの名無しさん (ブーイモ MM1f-/3cR)
2016/05/12(木) 08:53:10.66ID:4BYM8qUWM0667デフォルトの名無しさん (ワッチョイ 4b7b-XzP0)
2016/05/12(木) 08:59:45.88ID:rpWGZ4yl0後置はアウトオブオーダー実行が上手く働く可能性が高い
0668デフォルトの名無しさん (ワントンキン MM9f-/3cR)
2016/05/12(木) 09:05:01.86ID:c1sDAwi0M0669デフォルトの名無しさん (ワッチョイ 937b-UkU1)
2016/05/12(木) 09:18:46.59ID:BxH3pzV60この件かな
0670デフォルトの名無しさん (ワッチョイ 4b7b-XzP0)
2016/05/12(木) 09:33:56.48ID:rpWGZ4yl0本来は後置++の方が等速あるいは速い、但しstd::iteratorに限っては前置++の方が速い
そのページはstd::iteratorでも前置++が速いと言う主張だろ
0671デフォルトの名無しさん (ワッチョイ 937b-UkU1)
2016/05/12(木) 09:48:47.40ID:BxH3pzV60数行のまとめすら読めないのか
0672デフォルトの名無しさん (ワッチョイ 937b-UkU1)
2016/05/12(木) 09:51:14.28ID:BxH3pzV60と、思ったらそれ以上のバカだったのかな?
いいから後置の方が早い理由を示せよ
0673デフォルトの名無しさん (ワッチョイ 4b7b-XzP0)
2016/05/12(木) 09:58:38.72ID:rpWGZ4yl0誤字を鬼の首取ったように突っ込むな
誤 そのページはstd::iteratorでも前置++が速いと言う主張だろ
正 そのページはstd::iteratorでも後置++が速いと言う主張だろ
0674デフォルトの名無しさん (ワッチョイ 937b-UkU1)
2016/05/12(木) 10:02:26.01ID:BxH3pzV60読んだらそんな結論にならないと思うんだけど
0675デフォルトの名無しさん (ワッチョイ 4b7b-XzP0)
2016/05/12(木) 10:03:07.66ID:rpWGZ4yl0取り敢えずキミは、pentium以降のCPUの高速化技術を検索して、理解してから出直しなさい。
0676デフォルトの名無しさん (ワッチョイ 4b42-Wsqh)
2016/05/12(木) 10:10:22.66ID:3WPpAXGg00677デフォルトの名無しさん (ワッチョイ 937b-UkU1)
2016/05/12(木) 10:11:24.20ID:BxH3pzV60取り敢えずキミは、提示された資料を読めるようになってから出直しなさい。もう手遅れかもしれんけど。
0678デフォルトの名無しさん (ワッチョイ 4b7b-XzP0)
2016/05/12(木) 10:12:01.44ID:rpWGZ4yl0そのページが参照してる
> インクリメントの前後置速度比較
のソース読んでから出直す事だ
> ゲームエンジンアーキテクチャ第二版 プレインクリメント vs ポストインクリメント
の主張を全然反映してないベンチマーク引用してるから、理解力が不足してると迷宮に囚われる
0679デフォルトの名無しさん (ワッチョイ 4bf8-Z3GX)
2016/05/12(木) 10:13:08.97ID:DRM/51U40ldしてincしてstoreしてからじゃないと++fooの結果は使えないけど
foo++ならldするだけで使えるって事か。
確かに、主作用の方の値を使いたいなら後置の方が実行速度が高くなりうるな。
ちょっと試してみた
バージョンはgccが4.8.4、clangが3.7.0、環境はXubuntu on VMWare on Win7 on i7-5820k 3.3GHz
https://gist.github.com/pixie-grasper/d71c6e8ef13992c426559256e520beca
まとめると、clang/gccで-O0/-O3について比較したら
gcc -O0については前置より後置の方が3%くらい速くなったけど
他では後置より前置の方が速くなった。
結論:前置より後置の方が速くなる事はある。
0680デフォルトの名無しさん (ワッチョイ 937b-UkU1)
2016/05/12(木) 10:17:36.81ID:BxH3pzV60それ同じ処理じゃねえから、ベンチマークとして不適切
0681デフォルトの名無しさん (ワッチョイ 4bf8-Z3GX)
2016/05/12(木) 10:21:09.51ID:DRM/51U40うん、確かに10億分の1だけ前置のほうが早く終わる処理になってるけど
それでも後置のほうが3%くらい速くなるケースが実際にあった。
10億分の1と3%の比較は出来る?
0682デフォルトの名無しさん (ワッチョイ 937b-UkU1)
2016/05/12(木) 11:04:31.19ID:BxH3pzV60いや、俺が悪かった。
後値を前値に単純に置き換えられるような処理で後値の方が早くなるケースなんてほぼないもんな。
0683デフォルトの名無しさん (ワッチョイ 4bf8-Z3GX)
2016/05/12(木) 11:28:30.44ID:DRM/51U40そうなー。
後置を前置で単純に置き換えれるって事は副作用しか使ってないわけで
副作用しか要求しておらず、コンパイラが最適化をサボる場合には、
余計なインスタンスの生成が走りうる後置よりin-placeな前置の方が速い。
但し、intなんかのbuilt-inな型はコンパイラが最適化してくれる
&そうでない型も処理が見えてればコンパイラが頑張って最適化してくれるので
副作用しか使わなければどっちでも同じ機械語列になるって事は書いてあるね。
でも>>669の先から引用を引用すると
「しかし、値が使われる場合、CPUのパイプラインでストールを生じさせないので、
ポストインクリメントの方が優秀である。
したがって、プレインクリメントの動作が絶対に必要である場合を除いて、
必ずポストインクリメントを使う習慣を身につけたほうがよい。」
とあって、パイプラインストールが起こりうるなら後置のほうが良い事もあるってのが元々の論旨だから
もっと露骨にパイプラインストールが起こるようにコンパイラの最適化を邪魔したら
-O3しても後置のほうが速くなったわ
https://gist.github.com/pixie-grasper/6d9c560601f191df0dd205911866cc1e
0684デフォルトの名無しさん (ミカカウィ FF6f-Wsqh)
2016/05/12(木) 14:57:11.64ID:oq6xjtF8Fclass data{
public:
int score;
};
class test{
public:
std::vector<data> *v;
};
void main(){
test abc;
test *d = &abc;
(*(d->v))[1].score = 1;//
}
(*(d->v))[1].score;の他に書き方無いでしょうか?
アロー演算子を2重に使うとかやってみましたができませんでした。
配列を使う方法と、[1]をポインタ演算にして書く方法があれば両方教えてほしいです。
0685デフォルトの名無しさん (ワッチョイ cb3c-EA1W)
2016/05/12(木) 15:55:07.83ID:MyP06V7u0d->v->at(1).score =1; // ただし境界チェックが入る
(d->v->begin() + 1)->score = 1;
0686デフォルトの名無しさん (ワッチョイ ef9f-Wsqh)
2016/05/12(木) 16:02:27.95ID:LsrVgu920ありがとうございました。そういうやり方があったんですね。
0687デフォルトの名無しさん (ワッチョイ 377b-nbuf)
2016/05/12(木) 16:02:54.52ID:e6oRkxgP0newしてないし、[1]にはアクセスできないし、それ動かないよ
いずれにせよ初心者歓迎スレ案件だな
0688デフォルトの名無しさん (ワッチョイ ef9f-Wsqh)
2016/05/12(木) 16:15:54.25ID:LsrVgu9200689デフォルトの名無しさん (ワッチョイ 237b-/3cR)
2016/05/12(木) 17:49:55.66ID:e7uDPICZ0変数更新タイミングを使用直前にするか更新可能な一番早いタイミングで行いかの違いで、アルゴリズムの変更を伴う可能性が高い。
その場合後者の方がいいが、コピーして前置でも結果は同じ。
前置か後置かで前置がいいと言われているのは、あくまで単に+1したいってとき。所謂forの3つめ
0690デフォルトの名無しさん (ワッチョイ 6fcc-/3cR)
2016/05/12(木) 18:41:37.34ID:V7G0arWW0いちいちポインタに直すメリットは?
0691デフォルトの名無しさん (スプー Sd1f-/3cR)
2016/05/12(木) 19:09:46.88ID:V8j8LQpxd0692デフォルトの名無しさん (ワッチョイ 033c-hNIp)
2016/05/12(木) 19:23:08.71ID:wtk4J6jy0頭良さそうで。
0693デフォルトの名無しさん (ワッチョイ dbb1-yliF)
2016/05/12(木) 20:19:14.11ID:u4rYymiL0流れは違うが前置と後置がわかってない、以前に憶える気がない
0694684 (ワッチョイ cbcf-Wsqh)
2016/05/12(木) 20:25:17.26ID:6ncal6FL0>そんなことよりなんでtest::vがポインターなんだよ
要素数100万くらいのvectorが10個くらいあって、
必要なvectorにいちいちポインタを書き換えてる、じゃダメ?
入門書以外で他人のコード読むことないからぐちゃぐちゃやってる。
0695デフォルトの名無しさん (ワッチョイ 377b-nbuf)
2016/05/12(木) 20:36:16.87ID:e6oRkxgP0ごめん。何言いたいのか分からない
1M要素くらいの配列が10個くらいあるからってなんだって言うんだろう?
0696デフォルトの名無しさん (ワッチョイ 4bf8-Z3GX)
2016/05/12(木) 21:04:50.54ID:DRM/51U40生のポインタなんて使わずにstd::shared_ptrを使え。
class test{
public:
std::shared_ptr<std::vector<data>> v;
};
d->v = std::make_shared<std::vector<data>>(1000000);
0697デフォルトの名無しさん (ワッチョイ b79d-hNIp)
2016/05/12(木) 21:12:08.75ID:k4tl7img0俺も>>694が何言いたいのかわからんが、
>>684の質問からして初心者だろうから、あんまり突ついてもって思う。
少しレベル上がると、今のコード見て恥ずかしい・頭悪いやり方してたんだ
って思うんじゃないか。
0698デフォルトの名無しさん (ワッチョイ 7f13-Q4kq)
2016/05/12(木) 21:15:46.74ID:R6+MliT10後置インクリメント,前置デクリメントは68系の慣習
0699デフォルトの名無しさん (ワッチョイ 9f8b-EA1W)
2016/05/12(木) 21:35:16.27ID:xhYAhim/00700デフォルトの名無しさん (ワッチョイ 9f8b-EA1W)
2016/05/12(木) 21:36:56.40ID:xhYAhim/0インクリメント前のcの値を使わないケースでも
c++を++cと違うコードに落とすとはにわかには信じ難い
この世には知らないほうが幸せなことがあるのかもしれない…
0701デフォルトの名無しさん (ワッチョイ 2310-0YMq)
2016/05/12(木) 22:01:48.84ID:2OPIh6as0d->v->operator[](1).score = 1;
0702デフォルトの名無しさん (ワッチョイ 937b-qps8)
2016/05/13(金) 08:07:22.18ID:ApLv0E8+0とかで外で値を受け取らないケースで最適化が上手く動くもしくは動かないケースとかなら
あるかもとは思うけど、そんなどうでもいいケース考えてどうすんの?って話ではある。
0703デフォルトの名無しさん (ワッチョイ 37bf-/3cR)
2016/05/13(金) 08:44:07.94ID:Ja7udZmR0ていう方法論の話と、
・整数プリミティブ型の場合は後置の方が速い事がある
って言う実測論に近い話をごっちゃにしてはいけないと思うの。
0704デフォルトの名無しさん (スプー Sd1f-/3cR)
2016/05/13(金) 11:31:14.81ID:G/A+aqfad0705デフォルトの名無しさん (ワッチョイ 4bf8-Z3GX)
2016/05/13(金) 13:01:39.98ID:ZUyuraMo0人間としては同じ意味のコードでも、言語の意味論上は別な意味として解釈しなければならないのだから
最適化前のコードは異なって当然。
んでもって、違うコードを初期地点として独立に最適化を掛ける訳だから
最適化後のコードは異なる可能性がある(偶然一致する可能性もある)。
そういうお話
0706デフォルトの名無しさん (ワッチョイ a763-/3cR)
2016/05/13(金) 20:48:02.35ID:EayoOtAj0という幻覚を見てしまったようです。
統合失調症ID:rpWGZ4yl0、ID:DRM/51U40と
その他の健常者との噛み合わない会話
0707662 (ワッチョイ 9fa6-Wsqh)
2016/05/13(金) 20:56:04.60ID:y6JoVpFh0意外と後を引いててワロタw
0708デフォルトの名無しさん (ワッチョイ 4bf8-Z3GX)
2016/05/13(金) 21:28:43.56ID:ZUyuraMo0残念、糖質じゃなくてアスペでした
0709デフォルトの名無しさん (ワッチョイ 2730-o0Hb)
2016/05/13(金) 21:41:15.90ID:na9JUjrP00710デフォルトの名無しさん (ワッチョイ 9302-Wsqh)
2016/05/13(金) 23:27:56.30ID:akm6bXau00711デフォルトの名無しさん (ワッチョイ 937b-UkU1)
2016/05/14(土) 01:22:12.62ID:guvuQQ9l0常に後値で書かれたらデメリットが大きすぎる
0712デフォルトの名無しさん (ワッチョイ 4bf8-Z3GX)
2016/05/14(土) 08:57:39.96ID:BsF9lC3v00713デフォルトの名無しさん (ワッチョイ a763-/3cR)
2016/05/14(土) 09:11:42.00ID:EHXndh+500714デフォルトの名無しさん (ワッチョイ 9302-Wsqh)
2016/05/14(土) 10:34:04.60ID:5qwu2L7o00715デフォルトの名無しさん (ワッチョイ 4bf8-Z3GX)
2016/05/14(土) 10:37:31.14ID:BsF9lC3v01段NOTゲートと3段NOTゲートの違いくらい説明できなきゃね。
0716デフォルトの名無しさん (ワッチョイ 9302-Wsqh)
2016/05/14(土) 11:45:07.22ID:50Ljn6jM00717デフォルトの名無しさん (ワッチョイ a763-/3cR)
2016/05/14(土) 11:53:10.78ID:EHXndh+500718デフォルトの名無しさん (ワッチョイ 4bf8-Z3GX)
2016/05/14(土) 12:13:40.02ID:BsF9lC3v0何処まで掘り下げるかって問題はあるけど
0719デフォルトの名無しさん (ワッチョイ 233c-/3cR)
2016/05/14(土) 12:43:01.47ID:eiJc4QAX0そんなのは言語開発者とコンパイラの仕事だ。
0720デフォルトの名無しさん (ワッチョイ 4b42-Wsqh)
2016/05/14(土) 12:53:34.15ID:jHuAeQfl0ハードウェア資源を有効利用しようとした途端アセンブラレベルの知識は必要になるだろ
理解する必要はないが、理解している奴の仕事を代わって引き受けられないな
0721デフォルトの名無しさん (ワッチョイ 3775-yliF)
2016/05/14(土) 12:56:54.42ID:4NwAroGq0ちょっとしたバカの壁を透過するのにアセンブラ使ったぞ
0722デフォルトの名無しさん (JP 0H6f-mfIb)
2016/05/14(土) 13:35:56.95ID:fLeelvLJHそんなのは組込み・基盤システム開発者の仕事だ。
0723デフォルトの名無しさん (スプー Sd1f-/3cR)
2016/05/14(土) 13:59:43.12ID:K+XlGAeBd0724デフォルトの名無しさん (ワッチョイ 937b-qps8)
2016/05/14(土) 14:38:23.70ID:UFikrM320そんなのはc++エバンジェリストの仕事だ。
0725デフォルトの名無しさん (ワッチョイ 6fcc-/3cR)
2016/05/14(土) 14:42:24.09ID:QuevABMG00726デフォルトの名無しさん (ワッチョイ 6fcc-/3cR)
2016/05/14(土) 14:45:28.79ID:QuevABMG00727デフォルトの名無しさん (ワッチョイ 937b-UkU1)
2016/05/14(土) 14:46:17.04ID:guvuQQ9l00728デフォルトの名無しさん (ワッチョイ 233c-/3cR)
2016/05/14(土) 14:52:23.85ID:eiJc4QAX00729デフォルトの名無しさん (スプー Sd1f-/3cR)
2016/05/14(土) 15:12:38.19ID:K+XlGAeBd0730デフォルトの名無しさん (ワッチョイ 4b42-Wsqh)
2016/05/14(土) 15:34:48.60ID:jHuAeQfl00731デフォルトの名無しさん (ワッチョイ 4b42-Wsqh)
2016/05/14(土) 15:35:45.78ID:jHuAeQfl0○ 移植のことを考慮するなら
0732デフォルトの名無しさん (ワッチョイ 9f8b-EA1W)
2016/05/14(土) 15:41:24.26ID:XQsBVmZY0リーナスに殺されるぞ…
0733デフォルトの名無しさん (ワッチョイ 9f8b-EA1W)
2016/05/14(土) 15:45:05.04ID:XQsBVmZY0C++ぐらいではまだまだ低水準レイヤーの話を切り離すわけにはいかない
そもそもこの言語の最初の開発動機がSimulaの高速化であって
抽象化された高水準レイヤーとCPUアーキテクチャとメモリが透けて見える低水準レイヤーの
境にあるんである
0734デフォルトの名無しさん (ワッチョイ 4bf8-Z3GX)
2016/05/14(土) 16:37:14.60ID:BsF9lC3v0register使ったこと殆ど無いわ
crubyのC拡張書くのに使った事はあるけど
0735デフォルトの名無しさん (ワッチョイ 937b-UkU1)
2016/05/14(土) 16:57:46.20ID:guvuQQ9l00736デフォルトの名無しさん (ワッチョイ a763-/3cR)
2016/05/14(土) 17:15:25.88ID:EHXndh+50突然>>734がstorage class specifierの話をし出した
0737デフォルトの名無しさん (ワッチョイ 4bf8-Z3GX)
2016/05/14(土) 17:18:52.05ID:BsF9lC3v0この文を適切に補完すると
(それはCの一要素でありながら) (ry
ってなるだろうからキーワードの方だと思ったけど
違った?
0738デフォルトの名無しさん (ワッチョイ a763-/3cR)
2016/05/14(土) 17:27:09.65ID:EHXndh+50規格では「殆どの処理系で無視されるのでdeprecated」になっていて
次期改訂のドラフト4582からも削除されてしまったキーワードについて
使い道を主張するとは考えにくい
0739デフォルトの名無しさん (ワッチョイ 4bf8-Z3GX)
2016/05/14(土) 17:31:14.33ID:BsF9lC3v00740デフォルトの名無しさん (ワッチョイ 4b42-Wsqh)
2016/05/14(土) 18:05:33.36ID:jHuAeQfl0今のコンパイラは賢いから最適化して割り当てるので、
変に使うとかえって効率を落としかねないから使うなって教わった
0741デフォルトの名無しさん (ワッチョイ 6f3c-/3cR)
2016/05/14(土) 18:06:21.55ID:W/mpGy/20>>725 がそう言うことを熟知していると仮定するのもどうかと思うが
0742デフォルトの名無しさん (ワッチョイ 937b-UkU1)
2016/05/14(土) 18:35:40.54ID:guvuQQ9l00743デフォルトの名無しさん (ワッチョイ 9302-Wsqh)
2016/05/14(土) 18:36:20.83ID:50Ljn6jM00744デフォルトの名無しさん (ワッチョイ b79d-hNIp)
2016/05/14(土) 20:30:12.22ID:stGv22ss0しか使えない場合が結構あるんでしょ? そうなるとそれがゴミみたいな代物
なら >>743 だと思う。
0745デフォルトの名無しさん (ワッチョイ 937b-UkU1)
2016/05/14(土) 21:33:09.63ID:guvuQQ9l00746デフォルトの名無しさん (ワッチョイ 3764-yliF)
2016/05/15(日) 06:32:49.04ID:U+van56a0教わった、のはいいが
ちゃんと自分で再検証したか?
0747デフォルトの名無しさん (ワッチョイ 27a8-Wsqh)
2016/05/15(日) 09:35:30.57ID:IffsDtB30言語仕様上の制約として register キーワード付きの変数はアドレスを取ることが出来なくなる。
(まともなコンパイラならアドレスを取ろうとするとエラーを通知する。)
当然だがアドレスが存在しなければならない変数はレジスタに載せられないので、
その逆にアドレスを取らなくていい変数であることを確約することで結果的にレジスタに載りやすくなる可能性はある。
gcc などは register キーワードの有無は変数をレジスタに載せるかどうかの決定を左右しないが、
レジスタに載せることが可能な変数の選択肢が多ければ結果的に最適化しやすくなるかもしれない。
まあ、よほど速度に厳しい箇所をチューニングするのでもなければ付けなくていいと思うけどね。
0748デフォルトの名無しさん (ワッチョイ 937b-UkU1)
2016/05/15(日) 09:45:04.30ID:WYUaDR6g0よって単にregisterは使ってはいけない。それ以上でも以下でもない。
0749デフォルトの名無しさん (ワッチョイ 9f8b-EA1W)
2016/05/15(日) 10:12:20.69ID:SQ5j33E00>>747の懸念は半分無用となるが(注:アドレスをとってもエラーにはならない)
参照にもつけられるようになるんだっけ;
0750749 (ワッチョイ 9f8b-EA1W)
2016/05/15(日) 10:18:51.93ID:SQ5j33E00×:アドレスをとってもエラーにはならない
○:Aliasを作ってアクセスしてもエラーにはならない
ていうかaliasが存在しないことの保証とか、コンパイラは宇宙の果てまでは追いきらん
0751デフォルトの名無しさん (ワッチョイ a763-/3cR)
2016/05/15(日) 10:42:40.03ID:TLapgfGj0大昔に聞いたような記憶がよみがえった
26年前の別の言語の仕様でな
0752デフォルトの名無しさん (ワッチョイ a763-/3cR)
2016/05/15(日) 10:46:36.48ID:TLapgfGj0大昔に聞いたような記憶がよみがえった
16年前の別の言語でな
0753デフォルトの名無しさん (ワッチョイ 37bf-/3cR)
2016/05/15(日) 12:42:51.94ID:heRU3dbC0C89?
0754デフォルトの名無しさん (ワッチョイ 37bf-/3cR)
2016/05/15(日) 12:43:35.52ID:heRU3dbC0C99?
0755751 (オッペケ Sr2f-/3cR)
2016/05/15(日) 12:59:06.40ID:Ep7D2rxvrC89は知らんけどC90では禁止されていたような
調べたらC11でも禁止されたままだった
>>754
イエス、マダーム
0756デフォルトの名無しさん (ワッチョイ 377b-nbuf)
2016/05/15(日) 13:07:07.31ID:vsTAFBzF0C99との互換性のために書いてもエラーにせず無視することになってるけど(C++14 $17.2/2)
でも殆どのコンパイラで__restrictが使えるけどね
0757デフォルトの名無しさん (ワッチョイ 4b42-Wsqh)
2016/05/15(日) 13:12:53.03ID:dHmJMeXo0エラーになる(可能性がある)って理解で良いですか?
0758デフォルトの名無しさん (ワッチョイ 377b-nbuf)
2016/05/15(日) 13:18:12.39ID:vsTAFBzF0ごめん。これ嘘
GCCでもClangでもrestrictはエラーになる
0759デフォルトの名無しさん (オッペケ Sr2f-/3cR)
2016/05/15(日) 13:54:04.82ID:Ep7D2rxvrイエス、マダーム
register int x;
&x;
0760デフォルトの名無しさん (ワッチョイ 87cb-Wsqh)
2016/05/15(日) 18:54:11.89ID:vMirLtIS0{
int val;
};
hoge h;
int* val = static_cast<int*>( &h );
のようにhoge*をint*にキャストしたら自動的に&hoge::valが得られるようにしたいんですが
どうすればいいですか。
0761デフォルトの名無しさん (スプー Sd1f-/3cR)
2016/05/15(日) 18:57:44.93ID:YfWps9FTd0762デフォルトの名無しさん (ワッチョイ 937b-UkU1)
2016/05/15(日) 19:11:08.36ID:WYUaDR6g00763デフォルトの名無しさん (ワッチョイ a763-/3cR)
2016/05/15(日) 19:16:44.98ID:TLapgfGj0>>761の言うとおり。別の解を探さないと、マトモな方法では難しい
http://ideone.com/4D984F
0764デフォルトの名無しさん (ワッチョイ 9302-Wsqh)
2016/05/15(日) 19:17:38.83ID:jxnGY8hD0int* val = (int*)&h;
0765デフォルトの名無しさん (ワッチョイ afc2-1Mko)
2016/05/15(日) 19:19:32.41ID:HZxVWbFB00766デフォルトの名無しさん (ワッチョイ a763-/3cR)
2016/05/15(日) 19:31:53.73ID:TLapgfGj0http://ideone.com/iRfjtv
std::chronoのduration_castもこんな感じだろう
0767デフォルトの名無しさん (ワッチョイ 53dc-zbyT)
2016/05/15(日) 19:48:04.92ID:yfD+f9Qr0hoge h; の &h と &h.val が値として一致する、つまり
reinterpret_cast<int*>&h == &h.val が常に成立するって
規格で保証されてるんだっけ?
0768デフォルトの名無しさん (ワッチョイ 377b-1Mko)
2016/05/15(日) 19:52:05.11ID:vsTAFBzF0でなけりゃバイナリイメージのレイアウト作れない
0769デフォルトの名無しさん (ワッチョイ a763-/3cR)
2016/05/15(日) 19:52:30.43ID:TLapgfGj0ISO/IEC 14882:2014 9.2p19
0770デフォルトの名無しさん (ワッチョイ a763-/3cR)
2016/05/15(日) 22:10:43.04ID:TLapgfGj0変換関数を定義することを規格で「キャスト」「演算子」「オーバーロード」と読んでいただろうか?
と思って調べたが、演算子とオーバーロードは確かに微妙な書き方だった。
キャストは式の一種で、変換関数のことをキャストとは言わないな
0771デフォルトの名無しさん (ワッチョイ b79d-hNIp)
2016/05/15(日) 22:28:39.62ID:8VRuH69B0int* val = static_cast<int*>( h );
なら(簡単に)出来るってことか?
0772デフォルトの名無しさん (ワッチョイ b79d-hNIp)
2016/05/15(日) 22:35:42.94ID:8VRuH69B0>>744は俺じゃないのにワッチョイ同じだな
0773デフォルトの名無しさん (ワッチョイ b7bf-a45h)
2016/05/15(日) 22:37:30.44ID:vFNZTgb700774デフォルトの名無しさん (ワッチョイ 9fa6-Wsqh)
2016/05/15(日) 22:39:05.28ID:q+e+aGMq0普通に
operator int* () & { return &val; }
と定義するだけでできるでしょ?
0775デフォルトの名無しさん (ササクッテロ Sp2f-a45h)
2016/05/16(月) 09:35:35.81ID:8tgjguWIp左半分はipアドかホスト名とかだったきがするからそうそう被らんとは思うけど
0776デフォルトの名無しさん (ワッチョイ 937b-UkU1)
2016/05/16(月) 10:58:51.83ID:UIK75Ntg0{
return typeid(T).name();
}
これって実行時に変わることはないけどコンパイル時に取れないよね?
コンパイル時に決定される代替の方法ないかな?
0777デフォルトの名無しさん (ワッチョイ 4be7-EA1W)
2016/05/16(月) 11:05:06.85ID:Wv3wWMiG00778デフォルトの名無しさん (ワンミングク MM9f-/3cR)
2016/05/16(月) 11:11:03.55ID:bmeyzU+wM特殊化で解決できないケースが思いつかない
0779デフォルトの名無しさん (ワッチョイ 377b-nbuf)
2016/05/16(月) 12:19:01.47ID:5ug0//ZW0出来てもいいよね
ないんだっけ?
テンプレートの特殊化で解決とかは冗談だろ?
0780デフォルトの名無しさん (ガックシ 065f-a45h)
2016/05/16(月) 12:47:03.24ID:ViRuPN/26ウェブで調べても、systemのstringに変換してたり、wstringから変換しているものしか見つかりませんでした
0781デフォルトの名無しさん (ワッチョイ 937b-UkU1)
2016/05/16(月) 13:21:09.52ID:UIK75Ntg0>型名を文字列化したい
まさにそれです。
今は実行時にvariadic templateで渡された型からエラーメッセージを生成しています。
エラーメッセージなので実行コストは問題にしていないのですが2〜3種類程templateのインスタンス化した時点で1KB以上コードサイズが増えてしまっててコンパイル時に生成できたら数十バイト程に収まるのになぁと思っての質問でした。
0782デフォルトの名無しさん (ワッチョイ a763-/3cR)
2016/05/16(月) 21:35:11.73ID:ptsyD+4U0http://melpon.org/wandbox/permlink/AQMpoO8QkAgq9vd2
boostつかうと一気に実行ファイルサイズが10倍に?!
0783デフォルトの名無しさん (ワッチョイ 2317-yliF)
2016/05/16(月) 22:32:19.16ID:hnQ6k/Go0拙速にもほどがある
いつかメジャーチェンジで刷新をきぼんぬ
0784デフォルトの名無しさん (ワッチョイ a7cf-Jrc9)
2016/05/16(月) 23:00:15.78ID:ZRzqLMgu0ひどい話に聞こえるけど、それコンパイラ何?
0785デフォルトの名無しさん (ワッチョイ cbd4-7yL8)
2016/05/17(火) 10:42:57.44ID:0QCad9Bp0他人が書いたC++のソースコードを読むにあたり、まあ生き別れの兄貴なら多少違ってても雰囲気で読めるだろうとぐらいに思ってたんだけど・・・・・全然読めなくておわた
テンプレート多用も堪えるけど、一番困るのはヘッダファイルが全然読めなくて意味不明な点だ
差し当たって最低限の知識を得れる本等でおすすめがあったら教えてくれんかな
0786デフォルトの名無しさん (JP 0H6f-mfIb)
2016/05/17(火) 11:34:36.15ID:eRIY89eqH0787デフォルトの名無しさん (ワッチョイ 9302-Wsqh)
2016/05/17(火) 12:24:41.75ID:DLx6Jllf00788デフォルトの名無しさん (ワンミングク MM9f-UkU1)
2016/05/17(火) 12:31:05.41ID:aW8j1xwWM0789デフォルトの名無しさん (JP 0H6f-mfIb)
2016/05/17(火) 12:40:39.83ID:eRIY89eqH0790デフォルトの名無しさん (スプー Sd1f-/3cR)
2016/05/17(火) 12:42:18.92ID:JBnvLbQwd例えばヘッダのどんなところが読めなかった?
C言語部分がわからないのか、C++特有の部分がわからないのか
0791デフォルトの名無しさん (ワッチョイ 236c-gj/H)
2016/05/17(火) 12:44:01.08ID:YEDl+1EH00792デフォルトの名無しさん (ワッチョイ 6fcc-/3cR)
2016/05/17(火) 13:53:10.45ID:AYutjq9j00793デフォルトの名無しさん (ワッチョイ 6fcc-/3cR)
2016/05/17(火) 13:54:20.44ID:AYutjq9j00794デフォルトの名無しさん (ワッチョイ 6fcc-/3cR)
2016/05/17(火) 13:57:07.99ID:AYutjq9j00795デフォルトの名無しさん (スプー Sd1f-/3cR)
2016/05/17(火) 15:10:49.08ID:w5cAt2PYd0796デフォルトの名無しさん (オッペケ Sr2f-/3cR)
2016/05/17(火) 17:47:37.73ID:SVOYn8cOr0797デフォルトの名無しさん (ワンミングク MM9f-/3cR)
2016/05/17(火) 18:02:38.06ID:xRsGC6W0Mこれのせいで、ヘッダに何書けばいいのかとか詳しく書いてくれてる書籍が皆無っていう
0798デフォルトの名無しさん (スプー Sd1f-/3cR)
2016/05/17(火) 18:31:08.64ID:YSbkH+WYd0799デフォルトの名無しさん (オッペケ Sr2f-/3cR)
2016/05/17(火) 18:32:04.81ID:SVOYn8cOrノーサンキューです
0800デフォルトの名無しさん (ワッチョイ 6fcc-/3cR)
2016/05/17(火) 18:53:28.33ID:AYutjq9j00801デフォルトの名無しさん (ワッチョイ 6fcc-/3cR)
2016/05/17(火) 19:00:13.12ID:AYutjq9j0ヘッダなんていう定礎もソレと同じ
本来フリーフォーマットだし従う必要もない
0802デフォルトの名無しさん (スプー Sd1f-/3cR)
2016/05/17(火) 19:12:11.14ID:w5cAt2PYd0803デフォルトの名無しさん (ワッチョイ 4bf8-Bhie)
2016/05/17(火) 19:26:22.91ID:0ndBRKVS0>>801
システムハンガリアン記法とアプリケーションハンガリアン記法の違い、知ってる?
0804デフォルトの名無しさん (ワッチョイ 6fcc-/3cR)
2016/05/17(火) 19:33:40.71ID:AYutjq9j0どっちにしろ醜い
0805デフォルトの名無しさん (ワンミングク MM9f-UkU1)
2016/05/17(火) 19:49:53.46ID:aW8j1xwWM0806デフォルトの名無しさん (ワッチョイ 6fcc-/3cR)
2016/05/17(火) 20:16:48.91ID:AYutjq9j0グローバル変数にg_
など見苦しくてコード読むのもなんかキモい
0807デフォルトの名無しさん (ワッチョイ 6fcc-/3cR)
2016/05/17(火) 20:22:05.14ID:AYutjq9j00808デフォルトの名無しさん (ササクッテロ Sp2f-a45h)
2016/05/17(火) 20:45:27.40ID:ZLInSjXlp0809デフォルトの名無しさん (ワッチョイ 9302-Wsqh)
2016/05/17(火) 20:52:50.22ID:DLx6Jllf0m_はm一字で入力候補として全部出せるからまだマシ
0810デフォルトの名無しさん (オイコラミネオ MMdf-lVte)
2016/05/17(火) 21:18:01.72ID:H7Xr8xNTM0811デフォルトの名無しさん (ワッチョイ 87cb-Wsqh)
2016/05/17(火) 21:19:16.67ID:5ZuXJob500812デフォルトの名無しさん (ワッチョイ d35b-Wsqh)
2016/05/17(火) 21:20:13.79ID:0Uq+w/x10ただアンダースコアが助長な感じするんで、
mHogeみたいな感じで使ってるな。
0813デフォルトの名無しさん (ワッチョイ 373d-yliF)
2016/05/17(火) 21:23:42.65ID:n2YIPAfm00814デフォルトの名無しさん (ワッチョイ 4b64-Wsqh)
2016/05/17(火) 21:25:33.49ID:NhE32Twq0プロジェクトチーム内でコンセンサスが取れていれば何でもいいんじゃないですかね。
0815デフォルトの名無しさん (ワッチョイ 8fc0-TzrJ)
2016/05/17(火) 21:35:08.37ID:iUzOcy+l0なんか納得した
0816デフォルトの名無しさん (ワッチョイ 9fa6-Wsqh)
2016/05/17(火) 22:19:21.77ID:xjOiIw8U0お前の名は今日からtmpだ
0817デフォルトの名無しさん (ブーイモ MM6f-/3cR)
2016/05/17(火) 22:28:00.80ID:zWksk4WFM0818デフォルトの名無しさん (ワッチョイ 9302-Wsqh)
2016/05/17(火) 22:41:23.98ID:DLx6Jllf0記憶があやふやであれ何だったかなあっていうときにm押せば出てくるのは便利
0819デフォルトの名無しさん (ワッチョイ 4b64-Wsqh)
2016/05/17(火) 23:26:37.97ID:NhE32Twq00820デフォルトの名無しさん (ワッチョイ 9fa6-Wsqh)
2016/05/17(火) 23:33:54.07ID:xjOiIw8U0そうでした。すみません。
0821デフォルトの名無しさん (ワッチョイ 937b-UkU1)
2016/05/18(水) 00:11:45.44ID:yEeXtbl90それシステムハンガリアンだよね
0822デフォルトの名無しさん (ワッチョイ 6fcc-/3cR)
2016/05/18(水) 00:15:09.75ID:GQGC04nZ00823デフォルトの名無しさん (ワッチョイ 87ff-gmVm)
2016/05/18(水) 00:31:32.12ID:WN1OorbV00824デフォルトの名無しさん (ワッチョイ 4be7-EA1W)
2016/05/18(水) 00:45:12.55ID:hZVHIlqW0そもそもグローバル変数は使うなと。
特にグローバル変数使うとコピペしたい時すげー不便。
0825デフォルトの名無しさん (ワッチョイ 9fa6-Wsqh)
2016/05/18(水) 00:46:39.05ID:bTqCK2tF00826デフォルトの名無しさん (ワッチョイ 4be7-EA1W)
2016/05/18(水) 00:47:25.65ID:hZVHIlqW00827デフォルトの名無しさん (ガラプー KK8f-6Ylf)
2016/05/18(水) 00:49:41.11ID:jYlR0JsWKThat is 大局なvariables.
0828デフォルトの名無しさん (ワッチョイ 9302-Wsqh)
2016/05/18(水) 00:52:22.73ID:5/m+TFHG00829デフォルトの名無しさん (ワッチョイ 937b-UkU1)
2016/05/18(水) 00:59:32.23ID:yEeXtbl900830デフォルトの名無しさん (ワッチョイ 9302-Wsqh)
2016/05/18(水) 01:06:37.05ID:5/m+TFHG00831デフォルトの名無しさん (ワッチョイ 377b-nbuf)
2016/05/18(水) 01:18:04.13ID:oA47oPzz0thisなんて忘れたってエラーにもなんにもならないんだから役に立たんわ
0832デフォルトの名無しさん (ワッチョイ 4be7-EA1W)
2016/05/18(水) 01:19:11.35ID:hZVHIlqW0だから、明示したい時って書いてるじゃん。
プレフィックス使ってもお堅いだけよ。
0833デフォルトの名無しさん (ワッチョイ b79d-hNIp)
2016/05/18(水) 01:27:17.96ID:Y8xrmYKy0高脳C++使いはm_xxx/mxxx や xxx_なんて美しくない形のメンバー名にしないよな
メンバー名はセンスあるxxxで、使うときにthis->xxxってするのが美しいC++だよね
でも、低脳、ゆとりC++使いは美的感覚ないからm_xxx/mxxx や xxx_形を普通に使うからな
俺もだけど,orz
0834デフォルトの名無しさん (ワッチョイ 4be7-EA1W)
2016/05/18(水) 01:28:20.91ID:hZVHIlqW0炎上させたいのか?
そういう高低の話じゃないんだが。
0835デフォルトの名無しさん (ワッチョイ 377b-nbuf)
2016/05/18(水) 01:50:24.96ID:oA47oPzz0メンバ変数アクセスなのかローカル変数アクセスなのかは常にパッと見て分かるようになってるほうが良いと思うけどね
メンバ関数からメンバ変数をアクセスする場合は.memberとしなければならないとかだったら良かったのになあ
0836デフォルトの名無しさん (ワッチョイ 4be7-EA1W)
2016/05/18(水) 01:53:50.03ID:hZVHIlqW0そこ強制しちゃうのかー。
名前被らないようにしてれば大体問題ないけどねぇ。
0837デフォルトの名無しさん (ワッチョイ 937b-UkU1)
2016/05/18(水) 02:28:40.96ID:yEeXtbl90プレフィックスなんて忘れたってエラーにもなんにもならないんだから役に立たんわ
0838デフォルトの名無しさん (ワッチョイ a763-/3cR)
2016/05/18(水) 06:27:23.33ID:c/4q+m1z0例えば「クラス名はPascalCaseに統一しようぜ」と言う奴に
「間違えてcamelCaseで書いてもエラーにならないから無意味」
と言ったら詭弁だろう
0839デフォルトの名無しさん (ワッチョイ 9f8b-EA1W)
2016/05/18(水) 07:06:57.31ID:CyiE2Hpq0ほんとこれ
強制されたいガチガチに縛って欲しいハアハア、
0840デフォルトの名無しさん (ワッチョイ 9fa6-Wsqh)
2016/05/18(水) 07:08:23.39ID:bTqCK2tF0なにが言えればグローバル変数って認められるんだろう
アクセスできる範囲(翻訳単位を越えるor越えない)
状態を持つ/変更できる
寿命(mainより長い)
0841デフォルトの名無しさん (ワッチョイ 9f8b-EA1W)
2016/05/18(水) 07:09:50.65ID:CyiE2Hpq0with文とかあって長ったらしい構造体メンバアクセスを省略可能にしているぐらいだから
this->fooとかいちいち書いてあるC++のソースとか読んでたら目が腐りそう…
やっぱm_プレフィックスぐらいの軽い奴をコンパイラが強制してくれたら嬉しいハアハア
0842デフォルトの名無しさん (ワッチョイ 9f8b-EA1W)
2016/05/18(水) 07:33:52.96ID:CyiE2Hpq0template<class T> { ... }の定義の中で、Tが整数型限定だとして
TのMSBを得るコードってどう書くのが良いのでしょうか。
Tによって変わるとはいえ本質的に定数なので、実行時コストを定数アクセス以下に抑えたい
やっぱ特殊化しちゃうのが常道?
一応<limits.h>ぐらいはインクルードしているものとして
const T MSB = (T)1 << ((CHAR_BIT * sizeof(T) - 1);
としたらできている気がするが、、
0843デフォルトの名無しさん (オッペケ Sr2f-/3cR)
2016/05/18(水) 07:53:45.73ID:LyU/n3Wrr少なくともその定数はコンパイル時に決定できるので特殊化は要らないだろう
0844デフォルトの名無しさん (ワッチョイ 6fcc-/3cR)
2016/05/18(水) 07:56:24.15ID:GQGC04nZ00845デフォルトの名無しさん (ワッチョイ 87ff-gmVm)
2016/05/18(水) 08:05:53.90ID:WN1OorbV00846デフォルトの名無しさん (ドコグロ MMdf-/3cR)
2016/05/18(水) 08:19:26.66ID:Bv005giXM本物のプログラマーなんだろ
0847デフォルトの名無しさん (ワッチョイ 9302-Wsqh)
2016/05/18(水) 08:47:55.80ID:5/m+TFHG0シングルスレッドなら何も困らないけど
0848デフォルトの名無しさん (ワッチョイ 937b-UkU1)
2016/05/18(水) 08:49:44.59ID:yEeXtbl90グローバルネームスペースに置かれてる変数
0849デフォルトの名無しさん (ブーイモ MM6f-/3cR)
2016/05/18(水) 12:40:24.80ID:83U9cWaxMいや困るでしょ…
for内で関数呼び出してて、その関数の中でもfor使ってたら…
0850デフォルトの名無しさん (ワッチョイ 9302-Wsqh)
2016/05/18(水) 12:44:09.84ID:5/m+TFHG0そのためにi,j,k,l,m,nとかやってるんでしょ
知らんけど
0851デフォルトの名無しさん (スプー Sd1f-/3cR)
2016/05/18(水) 12:45:06.50ID:PJk+y+uRdそこまで言うと作り話でしょ。
事実だとしても考慮外として切り捨て
0852デフォルトの名無しさん (スプー Sd1f-/3cR)
2016/05/18(水) 12:45:13.34ID:ICIQ9a1pd0853デフォルトの名無しさん (ワッチョイ 937b-UkU1)
2016/05/18(水) 13:30:49.34ID:yEeXtbl900854デフォルトの名無しさん (ワッチョイ d35b-Wsqh)
2016/05/18(水) 18:52:20.04ID:ODcMRn4j00855デフォルトの名無しさん (ドコグロ MMdf-/3cR)
2016/05/18(水) 18:54:32.39ID:Bv005giXM0856デフォルトの名無しさん (ワッチョイ 1362-a45h)
2016/05/18(水) 18:58:10.91ID:kXIjvZGj0#define private public
は見たことある。
この時は好ましく無い使われ方だったが、ある意味目から鱗だった。
0857デフォルトの名無しさん (ワッチョイ 377b-nbuf)
2016/05/18(水) 19:04:22.76ID:oA47oPzz00858デフォルトの名無しさん (ワッチョイ 9302-Wsqh)
2016/05/18(水) 20:12:25.05ID:5/m+TFHG00859856 (ワッチョイ 1362-Wsqh)
2016/05/18(水) 20:26:25.13ID:kXIjvZGj0試しにやってみたら確かに警告出ますね。
ちなみに、これ見たのは10年くらい前でした。
0860デフォルトの名無しさん (ワッチョイ 937b-qps8)
2016/05/18(水) 22:15:33.16ID:p8whoeqx0その手の問題ってたいていダラダラ長いメソッド書いてるのが問題ってだけ。
0861デフォルトの名無しさん (ブーイモ MM1f-/3cR)
2016/05/18(水) 23:00:45.13ID:dPKzZ46VMいつどこで書き換えられるか分かり辛い。
再入可能なプログラムが書きづらい。
当然分かってるんだよな?
0862デフォルトの名無しさん (ワッチョイ 377b-nbuf)
2016/05/18(水) 23:05:35.36ID:oA47oPzz0そんなもん問題外に決まってるだろw
0863デフォルトの名無しさん (ワッチョイ 9302-Wsqh)
2016/05/18(水) 23:08:36.18ID:5/m+TFHG0下手なだけじゃん
それを踏まえた上でどこからでも参照できるという利便性は余りある
使ってはいけない機能なんか無いんだよ
0864デフォルトの名無しさん (ワッチョイ 937b-UkU1)
2016/05/18(水) 23:12:10.63ID:yEeXtbl900865デフォルトの名無しさん (ワッチョイ 9fa6-Wsqh)
2016/05/18(水) 23:56:41.02ID:bTqCK2tF0利便性はたまにしかない。
たまにファイルレベルのグローバル変数(無名namespace内)がなかなか消せないことがあるってくらいだろう。
0866デフォルトの名無しさん (ワッチョイ 1c42-MTTD)
2016/05/19(木) 00:15:20.75ID:/u6FV+LN0下手はお前のことだよ…
0867デフォルトの名無しさん (ワッチョイ 9102-xKv1)
2016/05/19(木) 00:34:18.53ID:CdsyDRqW0所詮2chは人の受け売りしか言えない奴ばかりだな
0868デフォルトの名無しさん (ワッチョイ 1c42-MTTD)
2016/05/19(木) 00:48:21.19ID:/u6FV+LN0愚者でも長年マ続けてればグローバル変数が危ういことくらい自分で気づくだろ
0869デフォルトの名無しさん (ワッチョイ 9102-xKv1)
2016/05/19(木) 00:50:20.65ID:CdsyDRqW00870デフォルトの名無しさん (ワッチョイ e6cc-MTTD)
2016/05/19(木) 00:54:48.61ID:jjXAPX3H00871デフォルトの名無しさん (ワッチョイ caa6-xKv1)
2016/05/19(木) 00:58:49.66ID:AERHjGsq0一連の流れの中で複数個所から見えるデータとして使うだけのグローバル変数なら簡単に消せる。
一連の流れとかに限定できなくて、プログラムの開始から終了までいつでも好きな時に使えて状態も保持してくれる、
ってなると何を使えばいいんだ?
0872デフォルトの名無しさん (ワッチョイ c69f-VMrL)
2016/05/19(木) 01:02:49.20ID:MRopiFdD00873デフォルトの名無しさん (ワッチョイ 3b73-QLyI)
2016/05/19(木) 03:25:07.54ID:8MpWaHz30一回の呼び出して=、>、<って判明する方が楽だよね
とりあえずキーの重複チェック、登録、キーの値でインデックス更新
C++の set みたいな挙動
0874デフォルトの名無しさん (ワッチョイ bc42-MTTD)
2016/05/19(木) 06:46:13.07ID:YvzDSQsZ0シングルトン
0875デフォルトの名無しさん (ワッチョイ 7be7-8iTP)
2016/05/19(木) 06:51:42.87ID:7d5d2lg80T& global(){
static T V;
return V;
}
ネーム空間をなるべく汚染しないグローバル変数の実装。
Nを変更するとそれ毎に関数が生成される。なのでペナルティはあるかもね。
0876デフォルトの名無しさん (ワッチョイ f063-MTTD)
2016/05/19(木) 07:07:31.92ID:A0YFV+4B0全ソース内で一意な番号をプログラマー責任で決めて変数を識別するという発想がunko
しかもコンストラクターに引数が与えられない残念仕様
0877デフォルトの名無しさん (ワッチョイ 7be7-8iTP)
2016/05/19(木) 07:47:17.80ID:7d5d2lg80それに。別にINTじゃなくてもなんでも識別できれば代用できるよ。
まぁ、ベストとは思わんよさすがに。
0878デフォルトの名無しさん (ワッチョイ 917b-P/BW)
2016/05/19(木) 08:56:20.09ID:shk5tFZP0グローバル変数よりたちが悪い
0879デフォルトの名無しさん (ワッチョイ 138c-7Gsa)
2016/05/19(木) 09:05:34.39ID:C8F3ftqe00880デフォルトの名無しさん (ワッチョイ bd54-MTTD)
2016/05/19(木) 09:08:06.56ID:STy3ELMD0仕様やコストや納期などの制限もなしにあえてやるというのは、ただの依存関係を考えられない初心者ぐらい
プログラマにとって怠惰は美徳だが、センスのないやつが履き違えるとこうなるといういい例だな
0881デフォルトの名無しさん (ワッチョイ 917b-P/BW)
2016/05/19(木) 09:09:30.57ID:shk5tFZP00882デフォルトの名無しさん (スプー Sd78-MTTD)
2016/05/19(木) 09:12:16.18ID:eVW3ynUMd0883デフォルトの名無しさん (ワッチョイ 917b-P/BW)
2016/05/19(木) 09:18:07.29ID:shk5tFZP0モジュール間のインターフェースを決められない未熟なプログラマに必要
0884デフォルトの名無しさん (スプー Sd28-MTTD)
2016/05/19(木) 09:44:48.05ID:ZQvJITQCdプログラムの開始から終了まで何らかの状態を保持し、任意のタイミングでそれを参照する必要があるとき。
ちなみにシングルトンや関数内staticの使用では完全な問題解決とは見なされない。
0885デフォルトの名無しさん (スプー Sd28-MTTD)
2016/05/19(木) 09:48:07.93ID:ZQvJITQCd0886デフォルトの名無しさん (ワッチョイ 917b-P/BW)
2016/05/19(木) 09:56:21.08ID:shk5tFZP0参照するだけで変更しないなら定数でいいし、
変更するにしても名前空間に置けばいい
グローバルにする理由が一つもない
0887デフォルトの名無しさん (JP 0H31-1UMr)
2016/05/19(木) 10:07:12.42ID:73EK6oIWHそれに名前空間なんて名前衝突しないだけで何の意味もない
名前空間下にあろうがなかろうがグローバルだよ
0888デフォルトの名無しさん (ワッチョイ 917b-P/BW)
2016/05/19(木) 10:16:44.29ID:shk5tFZP0名前衝突しないのは大事だろそれを意味ないって名前空間全否定か。
お前は
sturuct A{static int B;};
こういうのもグローバル変数って言ってるの?
そうならお前のいうグローバル変数と俺の思ってるグローバル変数は異なる物だ
0889デフォルトの名無しさん (スプー Sd78-MTTD)
2016/05/19(木) 10:19:20.40ID:eVW3ynUMdサンプル書いてみて
0890デフォルトの名無しさん (ワッチョイ 1c7b-dmih)
2016/05/19(木) 10:23:06.51ID:TN2vwqPV0必要のないところでまで無闇に使うのは論外だが
0891デフォルトの名無しさん (ワッチョイ 917b-P/BW)
2016/05/19(木) 10:46:00.80ID:shk5tFZP0>ファイルから読み込んでずっと変更しないシステム定数
グローバル変数にするより関数にしたほうがいい。誤って書き換えてしまう心配もなくなる
>>890
グローバル変数とシングルトン両方否定してる奴居ないと思うけど誰に対して言ってる?
独り言?
0892デフォルトの名無しさん (ササクッテロ Spbd-7Gsa)
2016/05/19(木) 10:51:14.99ID:uMP5aDx/pある関数内で、bool型の3つのフラグに応じて3つの処理をするか決める時に使ってたなあ
例えばこんな感じ
bool f1,f2,f3;
main(){
//フラグを決める処理をここに記述
func();
return;
}
func(){
if(f1)〜
if(f2)〜
if(f3)〜
}
こういう場合どうすればスマートなの?
funcの引数にフラグ渡すのはブサイクな気がしたからグローバルにしたけど
0893デフォルトの名無しさん (スプー Sd28-MTTD)
2016/05/19(木) 10:55:48.76ID:ZQvJITQCd→
シングルトンの導入
→
シングルトンの乱用が目立つ
→
シングルトンに対する批判(デサパタの中でも下の下)
→根本的な改善策は?←イマココ
0894デフォルトの名無しさん (ワッチョイ bd54-MTTD)
2016/05/19(木) 10:56:57.72ID:STy3ELMD0引数にして何がブサイクなのかさっぱりわからんぞ…
数が増えるのが嫌なら構造体にして渡すし、むしろ迷う意味がわからない
というか、C++ならそういう場合は関数じゃなくてクラスにしろよ
0895デフォルトの名無しさん (スプー Sd78-MTTD)
2016/05/19(木) 10:57:15.07ID:eVW3ynUMd0896デフォルトの名無しさん (ワッチョイ 1c7b-dmih)
2016/05/19(木) 10:58:07.34ID:TN2vwqPV0>グローバル変数とシングルトン両方否定してる奴居ないと思うけど誰に対して言ってる?
俺のレスの1つ前に「グローバルじゃないとダメな理由が見えてこない」って書いてあるんだが?
シングルトンなんて機能的にはグローバルに薄皮一枚かぶせただけのものだし
0897デフォルトの名無しさん (ワッチョイ bd54-MTTD)
2016/05/19(木) 10:58:41.46ID:STy3ELMD0静的クラス全てがそう
0898デフォルトの名無しさん (スプー Sd28-MTTD)
2016/05/19(木) 10:58:53.44ID:ZQvJITQCdmainとfuncだけに閉じた処理だから引数で渡すのに何の困難もないじゃないか。
0899デフォルトの名無しさん (スプー Sd78-MTTD)
2016/05/19(木) 10:59:11.66ID:eVW3ynUMd勝手な解釈すんな
0900デフォルトの名無しさん (スプー Sd28-MTTD)
2016/05/19(木) 10:59:37.70ID:ZQvJITQCdYes
0901デフォルトの名無しさん (ワッチョイ 1c7b-dmih)
2016/05/19(木) 11:02:36.04ID:TN2vwqPV0じゃあどういう解釈すればよかったんだよ?
お前はグローバルとシングルトンが本質的に違うとでも思ってるのか?
シングルトンのほうが柔軟性があることは認めるがね
0902デフォルトの名無しさん (ワッチョイ 653c-rvT4)
2016/05/19(木) 11:03:15.86ID:n4iAdyIo0「あなたのような従業員は会社のパフォーマンスにとってマイナスなので早く死んでください」
などと自殺教唆を公然と行った!!
丁寧に言えば何を言ってもいいというものではない!!これはヤクザや借金取りが脅迫をする時に
「いついつまでに金一億円をお振り込みください。間違った判断をなされないことを期待しています」
と発言するのと同じレベルだ!!
「しかもそれを注意してやったら世間はわれわれの味方だ。文句があるなら訴えてきたらよろしい。メールを電番を公開したければ
どうぞご自由に。世論はわれわれを賛辞するするメールを送付するだろう」
などとイカ様気取りも大概にしろという発言を行った!!
抗議先 日本マイクロソフト人事本部 西川昌邦
[email protected]
090-2541-1718
0903デフォルトの名無しさん (ワッチョイ bd54-MTTD)
2016/05/19(木) 11:08:16.28ID:STy3ELMD0初心者かよ…
シングルトンパターンとグローバル変数じゃスコープの要件の時点で既に違うだろ
0904デフォルトの名無しさん (スプー Sd78-MTTD)
2016/05/19(木) 11:11:13.83ID:eVW3ynUMdどれがマシかという話をしてるんだろ
静的変数が是か否かなんて今更くだらない
勝手な解釈すんなアホが
0905デフォルトの名無しさん (ワッチョイ 1c7b-dmih)
2016/05/19(木) 11:12:18.94ID:TN2vwqPV0「スコープの要件」とは?
何のことなのかよく分かりませんので詳しくご教示ください
0906デフォルトの名無しさん (ササクッテロ Spbd-7Gsa)
2016/05/19(木) 11:13:39.15ID:uMP5aDx/p0907デフォルトの名無しさん (ワッチョイ bd54-MTTD)
2016/05/19(木) 11:14:15.63ID:STy3ELMD0シングルトンに静的インスタンスとしての概念はあっても公開の概念はない
デザパタやり直せ
0908デフォルトの名無しさん (ワッチョイ 1c7b-dmih)
2016/05/19(木) 11:15:29.40ID:TN2vwqPV0>どれがマシかという話をしてるんだろ
>静的変数が是か否かなんて
さあ?それこそあんたの勝手な解釈だな
是か否かなんて話は俺はしてないよ文盲
0909デフォルトの名無しさん (スプー Sd78-MTTD)
2016/05/19(木) 11:18:04.90ID:eVW3ynUMdアホな解釈で話を歪めてトンチンカンな事言っておいてこの言い草
マジヤバイ
0910デフォルトの名無しさん (ワッチョイ 1c7b-dmih)
2016/05/19(木) 11:18:30.55ID:TN2vwqPV0>公開の概念はない
ほう。そこをもう少し詳しく
0911デフォルトの名無しさん (ワッチョイ bd54-UmRV)
2016/05/19(木) 11:20:22.01ID:STy3ELMD0いやこれ以上は答えないよ
既に質問ではなく相手を打ち負かすつもりのレスだからね
お前はもう最初のレスから詰んでるよ
残念だったな
0912デフォルトの名無しさん (ワッチョイ 1c7b-dmih)
2016/05/19(木) 11:20:51.55ID:TN2vwqPV0そうだとしたら何を言いたいのか分からないようなテキストを書いたお前の責だバーカ
0913デフォルトの名無しさん (ワッチョイ bd54-UmRV)
2016/05/19(木) 11:22:16.79ID:STy3ELMD0ちょっと前までC++の仕様を少しでも間違えば後ろから刺される勢いだったのに…
0914デフォルトの名無しさん (スプー Sd78-MTTD)
2016/05/19(木) 11:24:10.88ID:eVW3ynUMd勝手に人の話を勘違いで解釈して赤っ恥をこいた男の末路がこのレスに込められていますね
0915デフォルトの名無しさん (ワッチョイ 1c7b-dmih)
2016/05/19(木) 11:24:40.59ID:TN2vwqPV0「答えない」
ワロタwww「答えられない」だろwww
「お前は詰んでる」って勝利宣言して逃げるパターン出たね
0916デフォルトの名無しさん (ワッチョイ 917b-P/BW)
2016/05/19(木) 11:28:17.40ID:shk5tFZP0お前が一人で勉強すればすむ話
0917デフォルトの名無しさん (ワッチョイ bd54-UmRV)
2016/05/19(木) 11:32:43.43ID:STy3ELMD0普通の人間なら一つ前のレスで十分理解できるだろうに
長々と必死に抗弁を試みようとする時点で、
外面を保つ事のみを目的としてる残念な人間なのだとしか評価できないね
まあその外面もお前の頭の中にしかないんだが
0918デフォルトの名無しさん (スプー Sd28-MTTD)
2016/05/19(木) 11:53:46.12ID:ZQvJITQCdどっちも使いたくないから他の機構を考える、という流れで是非よろしく
0919デフォルトの名無しさん (JP 0H31-1UMr)
2016/05/19(木) 12:08:41.77ID:73EK6oIWH処理順解決が問題になる場合
そんなケースなら流石にグローバル丸出しなんてしない
0920デフォルトの名無しさん (ワッチョイ 9102-xKv1)
2016/05/19(木) 12:43:08.90ID:CdsyDRqW0gotoもガンガンつかっていく
0921デフォルトの名無しさん (ワッチョイ 1c7b-dmih)
2016/05/19(木) 12:43:08.91ID:TN2vwqPV0外面云々とかこんな匿名掲示板で何ってるんだよバーカ
鏡と睨み合って自分自身に向かって諭してろよ中身なしの超絶ゴミクズ君
0922デフォルトの名無しさん (ワッチョイ e97b-MTTD)
2016/05/19(木) 12:58:35.08ID:hRS9mr1R0暑くなると頭のネジが5本くらい抜け落ちる奴が増えるから本当に迷惑だ
0923デフォルトの名無しさん (オッペケ Srbd-MTTD)
2016/05/19(木) 13:02:34.95ID:Ibvbou6Qrなぜ解決にならないのかkwsk
0924デフォルトの名無しさん (オッペケ Srbd-MTTD)
2016/05/19(木) 13:26:11.48ID:Ibvbou6Qr>>888
>>887は名前空間スコープの変数をグローバル変数と呼んでいるようだが
名前空間スコープとクラススコープの違いぐらいは理解した方がいい。
むあ「何にもついて」の「何の意味もない」なのか文脈を無視して単語レベルで反応する猿には難しいかったかも
0925デフォルトの名無しさん (オッペケ Srbd-MTTD)
2016/05/19(木) 13:27:31.80ID:Ibvbou6Qr誤 何にもついて
正 何について
0926デフォルトの名無しさん (ワッチョイ 7162-xKv1)
2016/05/19(木) 13:40:03.86ID:+RT//Rk20singleton じゃなくてもいいけど、singleton が適してると思う。
0927デフォルトの名無しさん (ワッチョイ 1c7b-dmih)
2016/05/19(木) 13:41:01.02ID:TN2vwqPV0実務じゃ全く役に立たない無能さんw本は売れた?www
0928デフォルトの名無しさん (スプー Sd28-MTTD)
2016/05/19(木) 13:53:09.52ID:ZQvJITQCd結局は特定の変数に状態を保持しておくという本質は変わらないから。
もちろんスコープやアクセス範囲の制御ができるとか監視ができるとかのメリットはわかるけど、それは付随的なもの。
0929デフォルトの名無しさん (ワッチョイ bd54-UmRV)
2016/05/19(木) 14:07:52.18ID:STy3ELMD0それで内容の理解はできたのか?
何年プログラムやってその体たらくなのかしらんが、少しは精進したほうがいいぞ
0930デフォルトの名無しさん (ワンミングク MMd0-P/BW)
2016/05/19(木) 14:12:05.72ID:BWP2yuCgMなぜ名前空間とクラススコープの違いを理解していないと思ったのか
0931デフォルトの名無しさん (ワッチョイ bd54-UmRV)
2016/05/19(木) 14:21:47.31ID:STy3ELMD0グローバル変数とステートレス/ステートフルの議論は別だと思うよ
スコープ関係ないし
0932デフォルトの名無しさん (アウアウ Sab5-V4Zo)
2016/05/19(木) 16:44:31.58ID:iQAxMb//a0933デフォルトの名無しさん (ササクッテロ Spbd-7Gsa)
2016/05/19(木) 16:55:51.62ID:uMP5aDx/p0934デフォルトの名無しさん (スプー Sd28-MTTD)
2016/05/19(木) 17:48:13.21ID:ZQvJITQCd0935デフォルトの名無しさん (ワッチョイ 7bf8-xFql)
2016/05/19(木) 18:27:00.27ID:ap9POzY/00936デフォルトの名無しさん (ワッチョイ 415b-xKv1)
2016/05/19(木) 19:42:52.90ID:GUQu4Juu00937デフォルトの名無しさん (ワッチョイ 1c7b-dmih)
2016/05/19(木) 20:11:59.41ID:TN2vwqPV0普通にM_PI使えばいいと思うの
それに3.14じゃ精度悪すぎるよ
0938デフォルトの名無しさん (フォンフォン FF7c-rvT4)
2016/05/19(木) 20:43:53.03ID:e5/wWDviF「あなたのような従業員は会社のパフォーマンスにとってマイナスなので早く死んでください」
などと自殺教唆を公然と行った!!
丁寧に言えば何を言ってもいいというものではない!!これはヤクザや借金取りが脅迫をする時に
「いついつまでに金一億円をお振り込みください。間違った判断をなされないことを期待しています」
と発言するのと同じレベルだ!!
「しかもそれを注意してやったら世間はわれわれの味方だ。文句があるなら訴えてきたらよろしい。メールを電番を公開したければ
どうぞご自由に。世論はわれわれを賛辞するするメールを送付するだろう」
などとイカ様気取りも大概にしろという発言を行った!!
抗議先 日本マイクロソフト人事本部 西川昌邦
[email protected]
090-2541-1718
0939デフォルトの名無しさん (ワッチョイ bd54-MTTD)
2016/05/19(木) 21:46:59.31ID:STy3ELMD0それ実装できたとして変数使わない意味ある?
0940デフォルトの名無しさん (ワッチョイ bd54-MTTD)
2016/05/19(木) 21:49:04.86ID:STy3ELMD0それとも一意型みたいなのか?
0941デフォルトの名無しさん (ワッチョイ 3ec0-xpBm)
2016/05/19(木) 22:05:29.27ID:WYY/9sV800942デフォルトの名無しさん (ワンミングク MMd0-P/BW)
2016/05/19(木) 22:22:12.59ID:BWP2yuCgM0943デフォルトの名無しさん (ブーイモ MM31-MTTD)
2016/05/19(木) 22:39:24.47ID:TLDkaexbMそれ真似るにはスレッド変数使わないといけないし、c++erは手本とすべきじゃないだろ
0944デフォルトの名無しさん (ワッチョイ f063-MTTD)
2016/05/19(木) 23:07:06.91ID:A0YFV+4B0「変数を非グローバルの名前空間スコープに置けばいいというわけではない」という>>887の主張に対して突然クラススコープの話を持ち出したからだが
0945デフォルトの名無しさん (ワッチョイ f063-MTTD)
2016/05/19(木) 23:08:20.67ID:A0YFV+4B0へー、ところでその普通のM_PIって何?
0946デフォルトの名無しさん (ササクッテロ Spbd-7Gsa)
2016/05/19(木) 23:10:33.47ID:MvX4mrmepmath.h使ったことあらず?
0947デフォルトの名無しさん (ワッチョイ f063-MTTD)
2016/05/19(木) 23:12:52.89ID:A0YFV+4B0そのstaticには何か意味があるのか
0948デフォルトの名無しさん (ワッチョイ 9030-xKv1)
2016/05/19(木) 23:18:50.48ID:W0ctNLpa0その反応は、「printfを知らない」レベルじゃないと使えないと思うぞ
0949デフォルトの名無しさん (ワッチョイ 9102-xKv1)
2016/05/19(木) 23:19:22.62ID:CdsyDRqW0>>945は喧嘩腰でしか会話できない人だからほっといたほうがいいけど
要するにM_PIは標準化されていなくて環境によっては定義されているとは限らないからつつかれている
0950デフォルトの名無しさん (ワッチョイ 917b-P/BW)
2016/05/19(木) 23:20:03.66ID:shk5tFZP0だからそれをグローバルというならpublicなクラススコープに置いた 静的変数もグローバルだろって話だよ。
外から見たらusing namespace出来るかどうかの違いしかないぞ
0951デフォルトの名無しさん (ササクッテロ Spbd-7Gsa)
2016/05/19(木) 23:31:32.11ID:MvX4mrmepそうなんか
よく分からんけど、俺が今まで触ったPCではどれも使えたし
だいたいの環境なら使えるやろ
そんなマイナー環境使ってる奴のことなんてシラネw
0952デフォルトの名無しさん (ワッチョイ f063-MTTD)
2016/05/19(木) 23:50:33.37ID:A0YFV+4B0gccですら規格に違反しないよう
-std=c11の時はM_PIが使えないようにしているというのに
0953デフォルトの名無しさん (ワッチョイ a759-MTTD)
2016/05/20(金) 00:08:19.61ID:B/K1dZEm00954デフォルトの名無しさん (ワッチョイ 7b42-xKv1)
2016/05/20(金) 00:15:33.17ID:DZyHkwIp00955デフォルトの名無しさん (ワッチョイ e6cc-MTTD)
2016/05/20(金) 00:17:43.17ID:Z0iObOq700956デフォルトの名無しさん (ワッチョイ 1c7b-dmih)
2016/05/20(金) 01:04:20.91ID:iM9BKZPP0規格厨の心の闇は深いな
Visual C++(_USE_MATH_DEFINESが必要だが)やg++では普通に使えるけどな
ここはC++スレなんだぞ
ICCはシラネ
0957デフォルトの名無しさん (ワッチョイ f063-MTTD)
2016/05/20(金) 07:21:21.24ID:e1TBDqG+0ICCも_USE_MATH_DEFINESで使える筈。
Visual C++はC++規格1.4p2に反しないよう_USE_MATH_DEFINESが必要にしてあると記憶していたが
確かにgccの-std=c++14の時の挙動が気になるな。
C++の規格上許されるの?
0958957 (オッペケ Srbd-MTTD)
2016/05/20(金) 08:08:40.81ID:yY8TibFarC++では規格に反しない実装が可能なんだな。なるほど勉強になった。
だが処理系によって_USE_MATH_DEFINESが必要なものを「普通」と言って他人にすすめているという発想には及ばなかった失礼
0959デフォルトの名無しさん (ワンミングク MMd0-MTTD)
2016/05/20(金) 08:14:16.19ID:FD2q0K+3M0960デフォルトの名無しさん (ワンミングク MMd0-P/BW)
2016/05/20(金) 13:01:42.59ID:GBvYzkJRM0961デフォルトの名無しさん (スプー Sd28-MTTD)
2016/05/20(金) 13:09:57.94ID:88qDJ/vwd0962デフォルトの名無しさん (オイコラミネオ MM14-MTTD)
2016/05/20(金) 13:41:58.30ID:EAAu5NmTMなげーよ
0963デフォルトの名無しさん (ワッチョイ 7bf8-xFql)
2016/05/20(金) 13:45:22.04ID:jCV1qcCq0#define PI boost::math::costants::pi<double>()
0964デフォルトの名無しさん (アウアウ Sab5-MTTD)
2016/05/20(金) 15:24:20.36ID:adOvMsP+a0965デフォルトの名無しさん (ワッチョイ 7bf8-xFql)
2016/05/20(金) 15:34:32.24ID:jCV1qcCq0と書くより5バイトくらい短いから
0966デフォルトの名無しさん (ワッチョイ bcbf-7Gsa)
2016/05/20(金) 17:24:15.12ID:91VA6wxC00967デフォルトの名無しさん (ワッチョイ 415b-xKv1)
2016/05/20(金) 19:26:27.89ID:yqNTwCqH00968デフォルトの名無しさん (ワッチョイ 7b5b-xKv1)
2016/05/20(金) 19:36:46.02ID:gU7EupTq0内部クラスから外側クラスのインスタンスメンバを参照したいのですが、
ググッた感じでは参照を渡すしかないっぽいのですが、これってマジですか?
マジなら、面倒なので内部クラスのstaticに入れてしまおうかとも思っているのですが、これってありですか?
(外部クラスが生成される度に内部クラスが別々に生成されて大丈夫なのか、
それとも内部クラスとして書いても外にフラットに書いても同じで、クラスで唯一のstatic変数となってバグりますか?)
或いはこの場合に一般的に使われるような手法はありますか?
参考コード:動かしていないので雰囲気だけ確認してください。
class OuterClass {
class InnerClass {
static OuterClass* parent; // <- これあり?それとも OuterClassを複数作成しても唯一になって駄目?
void method_cpp0(int score){
parent->score += score; // <- こう使うつもり
}
void method_cpp1(int score, OuterClass* p) { // <- こうじゃないと駄目?
p->score += score;
}
void method_javascript(int s){
score += s; // JavaScriptはこれができる。これができればうれしい。
}
void method_java(int score){
OuterClass.this.score += score; // Java はこれができるらしい。これでもいい。
}
};
int score;
};
0969デフォルトの名無しさん (ワッチョイ 1c7b-dmih)
2016/05/20(金) 19:51:35.59ID:iM9BKZPP0あ゛ー
いいから普通にM_PI使え
規格原理主義者のたわごとなど完全無視しろ
もしクソバカ環境でコンパイルエラーが起きたら
#ifndef M_PI
#define M_PI 3.14159265358979323846
#endif
とかで如何なる問題も発生しない
0970デフォルトの名無しさん (ワッチョイ bd6c-WkY+)
2016/05/20(金) 19:54:05.85ID:BayA8c/P0ようわからんけど
別にstaticにせんでも
const OuterClass&をinnerClassにもたせてコンストラクタで指定すれば良い気がする
0971デフォルトの名無しさん (ワッチョイ 7b5b-xKv1)
2016/05/20(金) 20:29:11.61ID:gU7EupTq0コンストラクタでやるという記述もググッた時に見つかったのですが、
今回はInnerClassを一つではなく配列として持つので、メモリをケチろうかと。
コンストラクタで渡した方が確かに記述は綺麗なのですが。
とはいえ、改めて「プログラミング言語C++」を確認しても、
クラス継承の話は多くてもクラス内包の話がほぼ無いので、
一般的にはコンストラクタで「メンバ変数」として渡すのでしょうか。確かにこれだと確実です。
記述的にはコンストラクタ内でstaticに対して上書きしまくってもいいのですが、
これができるのか?というのは若干不安ですし。
0972デフォルトの名無しさん (ワッチョイ bd6c-WkY+)
2016/05/20(金) 20:43:41.93ID:BayA8c/P0それならそれで他に良い設計がありそうな気もする
それこそシングルトンだとか
0973デフォルトの名無しさん (ワッチョイ 7b5b-xKv1)
2016/05/20(金) 20:56:18.27ID:gU7EupTq0OuterClassは当面は1つで済みますが、今後複数化する可能性もあるので、シングルトンは駄目です。
余り真面目にC++やってなかったのですが、
内部クラスから外部クラスが階層アクセスできないのは、C++の仕様がちょっと古い気がします。
後発のJavaやJavaScriptは最初から出来るので。
ちなみに参考コード
class OuterClass {
class InnerClass { // 省略
};
int score;
vector<InnerClass> nodes;
};
0974デフォルトの名無しさん (スプー Sd28-MTTD)
2016/05/20(金) 21:02:34.05ID:88qDJ/vwdInner - Outer の関係にする必要性はどこにあるの?
0975デフォルトの名無しさん (ブーイモ MM31-MTTD)
2016/05/20(金) 21:12:02.35ID:icw8VvxgM・staticメンバはプログラムを通して一つ
・メモリをケチりたくてmethod_cpp1が可能ならそれがよいだろう
・JavaやJavaScriptでも結局は暗黙的にOuterClassへの参照を持つことになるのでInnerClassインスタンスごとにメモリを使うことになる
・InnerClassとOuterClassとの間にメモリ配置上の制約があるなら、ほかの手も考えられるが、配列で持つとのことなので恐らくダメだろう
・古いというのはわからなくもないが、後発の言語が暗黙的にやるコストについて意識しない人がいるのならあながち悪くはないのかもしれない
0976デフォルトの名無しさん (ワッチョイ bd54-UmRV)
2016/05/20(金) 21:20:44.60ID:Czf9pjzL0いんや規格は重要だ
まず動くことが至上命題ではあるがそこ履き違えると底辺コーダーになっちまうぞ
0977デフォルトの名無しさん (ワッチョイ bd54-UmRV)
2016/05/20(金) 21:34:03.42ID:Czf9pjzL0>>968
メモリケチりたい状況で外の「インスタンス」にアクセスしたいってのは無理がある気がするな
俺ならOuterとInnerとは別に、もう一個クラス作ってそいつに両方に依存した処理やらせるかな
0978デフォルトの名無しさん (ワッチョイ bd54-UmRV)
2016/05/20(金) 21:38:07.10ID:Czf9pjzL0自分もmethod_cpp1の適宜渡す方法に同意します
0979デフォルトの名無しさん (ブーイモ MMe9-MTTD)
2016/05/20(金) 21:56:53.90ID:Dz9bHtQOM0980デフォルトの名無しさん (ブーイモ MMe9-MTTD)
2016/05/20(金) 21:57:43.59ID:Dz9bHtQOM0981デフォルトの名無しさん (ワッチョイ fd10-MJjN)
2016/05/20(金) 22:09:45.76ID:RCBW+7XV0M_PIが規格で定義されてるかとかいう議論も意味あるかもしれないけど、
そもそも、円周率はたとえが悪いだけなんじゃないの?
重力加速度とか万有引力定数とかならどうするのがベスト?(もちろん場合によるだろうが)
0982デフォルトの名無しさん (ワッチョイ bd54-UmRV)
2016/05/20(金) 22:23:37.08ID:Czf9pjzL0ありそうな気はするが技巧的な方法しか思いつかないな
InnerInnerを作り、今のInnerの機能を移動し、Innerにはコンテナと親の参照を持たせる
そしてInnerInnerのmethod_cpp1のようなメソッドをInnerが委譲
これじゃ親から見た場合に多少はマシになるって程度で、コードも設計も汚いな
0983デフォルトの名無しさん (ワッチョイ 7b5b-xKv1)
2016/05/20(金) 22:43:44.89ID:gU7EupTq0いや特にありません。そもそも非オブジェクト指向でも当然組めます。
ただ、色々試した結果、オブジェクト指向に慣れてくると、
Java的な「それ刻みすぎじゃねーの?」と思えるような所まで刻んだ方が
結果的に見やすかったり、後々融通が利くことが何となく分かってきました。
なので、今後はそうしようかと試しています。
>>975
詳細にありがとうございます。やはりstaticでは駄目ですか。
method_cpp1は今回は可能ですが、記述の抽象度が混ざるので出来ればクラス分けしたかったのです。
JavaやJavaScriptでもメモリ使用量が少ないわけではないのはその通りですが、
内部クラスからは外部クラスを参照するのはかなり普通のことなので、
これは言語として対応して欲しかったところです。今まで拡張されなかったのが不思議なくらいです。
これはコンパイラ側だけで完全に対応でき、実行時の追加コストはありません。
(不要ならコンパイル時点で外側クラスポインタの確保を止めることが出来る)
申し訳ありませんが、メモリ配置上の制約というのは何のことか分かりません。
0984デフォルトの名無しさん (ワッチョイ 7b5b-xKv1)
2016/05/20(金) 22:44:35.94ID:gU7EupTq0参考コード、非オブジェクト指向
bool map[64][64];
bool map_next[64][64];
for (int i=0;i<64;i++)
for (int j=0;j<64;j++)
map_next[i][j] = life_exe(i,j);
参考コード、オブジェクト指向
class LifeGame {
class Dot {
int x,
int y;
void life_exe(){} // ここで外側の map, map_new に直接アクセスして更新させたい。
};
bool map[64][64];
bool map_next[64][64];
};
実際にやろうとしていることは、正規表現の探索に近いです。
ライフゲームのように外側変数が時系列で変化するものではないため、
探索途中経過(Dot)をオブジェクトとして持ち、
最初から各オブジェクトに終わりまで探索(life_exe)させる事が出来ます。
とはいえ、やはりメリットは大してありませんが。
0985デフォルトの名無しさん (ワッチョイ bcbf-7Gsa)
2016/05/20(金) 22:45:59.15ID:91VA6wxC0ライブラリの数値を使うか自分で数値を定義しておくかな…
piとかeは数学関数で計算できるだけマシってことね
M_PI使わない理由として俺は十分納得できるかな
0986デフォルトの名無しさん (ワッチョイ caa6-xKv1)
2016/05/20(金) 22:51:15.37ID:RvnBIaae0オブジェクト指向であることとか「刻む」ことの意義と
インナークラスにすることがあまり結びつかないなあ。
内側のクラスの存在が外側から完全に隠れる以外の効果あったっけ?
0987デフォルトの名無しさん (ワッチョイ bd6c-dqc0)
2016/05/20(金) 22:53:44.87ID:BayA8c/P00988デフォルトの名無しさん (ブーイモ MM28-MTTD)
2016/05/20(金) 22:56:32.97ID:4DucW+JdMマクロやstaticメンバを使った汚い手から一時的な処理用のクラスを作るなどまで想像してましたが、どのみち一手間かかるので必要性次第でしょうね(Innerのメソッドが多くてそうでもしないと…とか)
結局それほどケチる必要がなくてコンストラクタで渡すので十分な予感
本当にポインタ1個分が問題になるような細かいInnerClassを多数作るようなケースなら、このアドレスの範囲にあるInnerのオブジェクトはどのOuterに対応する、という表が作れると検索時間と引き替えにメモリを節約できたり
0989デフォルトの名無しさん (ブーイモ MM28-MTTD)
2016/05/20(金) 23:07:25.77ID:4DucW+JdM最近追加されたラムダですらどのようにキャプチャするかを細かく指定しなければならない言語だということを理解した方がいいと思う
今後そういう機能が追加されるかどうかはしらないけど、されたらいいね
0990デフォルトの名無しさん (ワッチョイ bc42-MTTD)
2016/05/20(金) 23:17:26.67ID:soKi6pqK0馬鹿じゃねーの
0991デフォルトの名無しさん (ワッチョイ 7b5b-xKv1)
2016/05/20(金) 23:24:48.47ID:gU7EupTq0インナーにするのは、DotはLifeGameでしか使わないからです。(他から見える必要がない)
オブジェクト指向にするのは、多分制御が簡単になりそうだからなのと、
その際に記述が抽象階層で分離でき、見やすくなると予想されるからです。
もっと良い例がありました。「文書内の不完全マッチによる最有力候補探索」です。
これはほぼやりたいことと同じです。
例えばテキスト文書があったとして、「あいうえおかきくけこ」を探索するとします。
ここで、そのまま「あいうえおかきくけこ」があれば100点、それを示して終わりです。
これがない場合、欠け方それぞれで得点付けし、とにかく一番得点が高い候補を一つ出します。
(例えば「あ」がないのなら-20点とか、「う」が抜けているのなら-10点とか)
実際は多分100〜200字同士のマッチングと等価で、完全一致は期待できないため、
Dotに分枝の作成まで含めてlife_exeさせます。
結果、LifeGameからは「やっとけ。」だけで済み、詳細な実行ルーチンはDot側に集約されます。
といってもこれは分離されるだけで、どちらに書くかの違いだけなのですが、
それでも後々効いてきますので、Dot側に集約できる部分は集約しておきたいのです。
Dotは分枝の作成時に自分自身からforkする感じで、たぶんかなり増えます。
ただし親は一つなので、ここの部分は勿体ないかな、という感じでした。
(問題になるほど増えないとは思います)
life_exe内には親のmapへのアクセスは大量に存在しますが、
life_exeはDot内で自走するので、引数として親ポインタを渡すことは出来ません。
従って、親ポインタはコンストラクタでメンバ変数として確保することになります。
コンストラクタで親ポインタを渡すのは、記述的には全く問題ないです。
(最初にもらった親ポインタを大事に抱えて再帰しまくることも出来ますが、、、)
0992デフォルトの名無しさん (ワッチョイ b0ab-/fHo)
2016/05/20(金) 23:24:55.51ID:G62tMzQY0おまえ以外は
0993デフォルトの名無しさん (ワッチョイ 7b5b-xKv1)
2016/05/20(金) 23:52:28.35ID:gU7EupTq0> 最近追加されたラムダですら
見てみましたが、確かにこのラムダはちょっと見にくいですし、使いにくいですね。
元はといえばC++には関数内関数が無い為、レキシカルスコープ(※)を導入できず、
ラムダのうまみも少し欠けている気がします。
(※一つずつ上の階層を探して名前が一致したらそれと見なす)
g++では既に拡張が行われていると聞きましたが、先に関数内関数が欲しかったですね。
とはいえ、回答して頂いた皆様、ありがとうございました。
0994デフォルトの名無しさん (ブーイモ MM28-MTTD)
2016/05/21(土) 00:00:28.24ID:z244ST7/M使いにくいのにはそれなりの理由があって、それを理解しましょうねという話
その上で適切な言語を選びましょう
0995デフォルトの名無しさん (ワッチョイ 9102-xKv1)
2016/05/21(土) 00:01:00.93ID:EJBeUkkD00996デフォルトの名無しさん (ワッチョイ caa6-xKv1)
2016/05/21(土) 00:27:26.30ID:jGVAnHGn0よくわかんないけど、名前が一致した「それ」は型が揃っているのかな?
一致してる度合いに微妙に差があるのでは?
0997デフォルトの名無しさん (ワッチョイ bc7b-xKv1)
2016/05/21(土) 00:56:40.25ID:Uqmc4lbY0宇宙物理のシミュレーションだと万有引力定数が1になるような単位系で計算する
0998デフォルトの名無しさん (ワッチョイ caa6-xKv1)
2016/05/21(土) 01:08:07.17ID:jGVAnHGn00999デフォルトの名無しさん (ワッチョイ 7b5b-xKv1)
2016/05/21(土) 01:23:16.26ID:HBQ7d37R0C++相談室 part125
http://echo.2ch.net/test/read.cgi/tech/1463761261/
1000デフォルトの名無しさん (ワッチョイ 7b5b-xKv1)
2016/05/21(土) 01:29:43.83ID:HBQ7d37R0自分がイメージしたのはJavaScriptで、あの言語はnamespaceがないので関数内関数がデフォ、
そして型がないので名前さえ一致すればそこで決まりですね。
ラムダで数階層上の変数を掴みに行くこともよくあります。
C++はnamespaceで細かく切れということなのでしょうが、
やはりユーザの意志で階層が切れないのは使いにくいですね。
C++のインナークラスはメリットがないといえばそうですが、JavaScriptだとインナークラスがデフォです。
(外に見せる必要がなければインナークラス)
これに関しては「余分な物は見せない」というJavaScriptの方がプログラミングとしては正しいと思われます。
ただ、ラムダはGCヒープならほぼ問題ありませんが、スタックが基本のC/C++だと実装も難しいはずで、
C++のラムダは分かりやすくはないけど妥当な仕様の気もしますね。
現実的にはヒープポインタを値キャプチャでラムダでしょうし、この仕様で実害はありません。
スタック変数をラムダで参照キャプチャは使い方として不自然ですし。
それでもやりたければ出来るところがC++っぽいですが。
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
life time: 48日 1時間 7分 19秒
10021002
Over 1000Thread運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 2ちゃんねる専用ブラウザからの広告除去
★ 2ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
http://premium.2ch.net/
http://pink-chan-store.myshopify.com/
レス数が1000を超えています。これ以上書き込みはできません。