C++相談室 part101
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2013/04/06(土) 16:03:15.86ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレに
お願いします。
前スレ
C++相談室 part99(実質part100)
http://toro.2ch.net/test/read.cgi/tech/1361435828/
このスレもよろしくね。
【初心者歓迎】C/C++室 Ver.83【環境依存OK】
http://toro.2ch.net/test/read.cgi/tech/1363154865/
■長いソースを貼るときはここへ。■
http://codepad.org/
http://ideone.com/
0002デフォルトの名無しさん
2013/04/06(土) 17:29:10.77なんで誰もスレ立てなかったの?馬鹿なの?
0003デフォルトの名無しさん
2013/04/06(土) 18:37:00.54修行が足りなくてできんかった。
0004デフォルトの名無しさん
2013/04/06(土) 18:39:46.85言語訓練のために立てたものです。
アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。
京極大学霊長類研究所
0005デフォルトの名無しさん
2013/04/06(土) 18:40:08.980006デフォルトの名無しさん
2013/04/06(土) 18:45:00.270007デフォルトの名無しさん
2013/04/06(土) 18:58:02.460008デフォルトの名無しさん
2013/04/06(土) 19:39:30.02int b[] = { ... };
aとbの要素が完全に一致するSTLのアルゴリズム教えてください
配列の長さが異なる場合もあります
0009デフォルトの名無しさん
2013/04/06(土) 19:53:20.270010デフォルトの名無しさん
2013/04/06(土) 19:58:55.580011デフォルトの名無しさん
2013/04/06(土) 20:09:50.73環境によるだろ。
俺はBorland-C++5.6.2に -D_RTLDLL オプションを指定して、極力
ランタイムを使用するようにして使っているが、例えばstd::vectorを
使っても使わない時と比べ10Kほどしか増えない
すげえ。ダイナミックリンクしといてファイルサイズが増えないとかいってるよ。この人。
C1010: プリコンパイル済みヘッダーの検索中に予期しない EOF を検出しました。
とかいうエラーが出るんだけどこれってどうすればいいの?
#include <stdafx.h>
後死ね。
言葉が悪いな。それで教えているつもりか。
まぁヒントぐらいにはなったな。
うむごくろう。
0012デフォルトの名無しさん
2013/04/06(土) 20:11:55.35std::equal()じゃだめなん
0013デフォルトの名無しさん
2013/04/06(土) 20:18:40.00esualだと長さが一致してないとダメなのでそこを一気にやってくれる方法が知りたかったです
0014デフォルトの名無しさん
2013/04/06(土) 21:08:27.04int main()
{
int a[] = {1, 10, 3, 5, 6, 5, 2, 9};
int b[] = {1, 10, 3, 5, 6, 5, 2};
int len_a = sizeof(a) / sizeof(a[0]);
int len_b = sizeof(b) / sizeof(b[0]);
bool eqb = (len_a == len_b) ? std::equal(a, a + len_a, b) : false;
std::cout << "a[]とb[]は" << ((eqb) ? "等しい" : "等しくない") << std::endl;
}
0015デフォルトの名無しさん
2013/04/06(土) 21:44:23.12コンテナだと要素数を事前に知れるけど、配列はそうは行かないじゃん
文字列のように'\0'終端文字列ならいいけど、そうでないなら自作するしか
0016デフォルトの名無しさん
2013/04/06(土) 21:47:09.27同じ型に決まってるだろうから
要素数の確認は sizeof(a) == sizeof(b) で十分では。
0017デフォルトの名無しさん
2013/04/06(土) 22:03:49.61それでもいいけどtemplateにしてstd::equalにガワかぶせようとしたんだ
コンテナも同じ型で同じコンテナならoperator==で比較出来るので便利なんだが
0018デフォルトの名無しさん
2013/04/06(土) 22:34:53.87余った部分は0うめ?
最初の例が気になるところなんだけど、これ本物もsizeofしても平気なの?
0019デフォルトの名無しさん
2013/04/06(土) 22:48:11.19ただしvectorだけだな
STLのようにアルゴリズムを汎用化したければIterator traitsによって
データの長さを取得する方法を場合分けするか、関数の多重定義をするか、
しかしどうして長さの違う物を比較しようと思ったの?絶対一致するはずがないのに
0020デフォルトの名無しさん
2013/04/06(土) 22:57:04.96長さが一致する場合もあるからです
0021デフォルトの名無しさん
2013/04/06(土) 23:39:03.76呼び出さないと鼻から悪魔だからなあ
ラッパーを作るしかないね
0022デフォルトの名無しさん
2013/04/07(日) 00:22:42.670023デフォルトの名無しさん
2013/04/07(日) 00:24:56.76(sizeof(a)==sizeof(b)) && (memcmp(a,b,sizeof(a))==0)
0024デフォルトの名無しさん
2013/04/07(日) 01:05:44.31要するにこういう事っしょ
0025デフォルトの名無しさん
2013/04/07(日) 03:42:14.16関係ない所で気になったんだけど、
どうしてsize_tにstd::が付いてないのに
コンパイル通るの?
0026デフォルトの名無しさん
2013/04/07(日) 03:59:56.310027デフォルトの名無しさん
2013/04/07(日) 10:15:18.34Cのはstd::なくても通るよ
0028デフォルトの名無しさん
2013/04/07(日) 10:32:11.89それって二項関数を取るバージョンでしょ?
それはC++03からある(正確にはC++98から)
今C++11の規格票を見たけど2つのbeginとendを取るバージョンはなかった
0029デフォルトの名無しさん
2013/04/07(日) 10:32:37.11と思ったらC++1yか
まああってもなくてもいいや
0030デフォルトの名無しさん
2013/04/07(日) 10:44:59.12マクロ以外はstd名前空間に入ると
思うのだが、ソースきぼん
0031デフォルトの名無しさん
2013/04/07(日) 10:56:50.37cname の形式だとグローバル名前空間にも定義されるかもしれない
17.6.1.1 Library contents
All library entities except macros, operator new and operator delete are defined within the namespace std
or namespaces nested within namespace std. 172
172) The C standard library headers (Annex D.5) also define names within the global namespace,
while the C++ headers for C library facilities (17.6.1.2) may also define names within the global namespace.
0032デフォルトの名無しさん
2013/04/07(日) 11:00:44.23JavaとかC#なんて軟弱者の言語だわ。
0033デフォルトの名無しさん
2013/04/07(日) 11:10:16.21そもそもsize_tの為のヘッダがinclude
されてないし、cnameも使ってないから
コンパイル通るかは処理系依存だよね?
0034デフォルトの名無しさん
2013/04/07(日) 11:10:54.85でズラズラ並べて定義されてるのね
少しワロタ
ところで構造体の配列とかはどういう扱いになるんだろう?
0035デフォルトの名無しさん
2013/04/07(日) 11:12:26.24まーな
0036デフォルトの名無しさん
2013/04/07(日) 11:33:08.60照れるじゃねーか
0037デフォルトの名無しさん
2013/04/07(日) 11:33:45.37/ `、
/ ヽ
/ ● ● |
/l ''''' し '''''' |
/ l __. |
l /ヽ_ ` --' _ノ
\  ̄ ヽ∩
⌒l l三 |
| ヽ.__|
0038デフォルトの名無しさん
2013/04/07(日) 11:36:25.58JAVA信者の煽りに反応するなよ
C++はな、マスターするためには
まず禿げなきゃいけないんだぜ
0039デフォルトの名無しさん
2013/04/07(日) 11:39:40.970040デフォルトの名無しさん
2013/04/07(日) 11:49:09.980041デフォルトの名無しさん
2013/04/07(日) 12:00:24.31おまい、おもろいなw
0042デフォルトの名無しさん
2013/04/07(日) 13:50:02.20Cは分かるという前提で。オブジェクト指向はまったくわかりません。
0043デフォルトの名無しさん
2013/04/07(日) 13:51:32.82SEで入社したんですが組み込みでC使ってるらしいのは把握しました
0044デフォルトの名無しさん
2013/04/07(日) 13:56:35.59Cが使いこなせるなら特にC++をやる必要はない。
パフォーマンスもC++の方が落ちる。テンプレートなど使用しているせい。
大規模、大人数で開発するとき、パフォーマンスを犠牲にしても保守性を上げるためC++にすることはある。
シビアな速度、メモリ管理が必要ならCかアセンブラ。
0045デフォルトの名無しさん
2013/04/07(日) 13:58:12.340046デフォルトの名無しさん
2013/04/07(日) 14:00:43.08Cは職人が命を預けられる道具
0047デフォルトの名無しさん
2013/04/07(日) 14:07:05.34何かいろんな観点をごっちゃにしたデカイ釣り針だな
0048デフォルトの名無しさん
2013/04/07(日) 14:07:06.74Cは老人の残した糞
0049デフォルトの名無しさん
2013/04/07(日) 14:08:36.390050デフォルトの名無しさん
2013/04/07(日) 14:11:28.690051デフォルトの名無しさん
2013/04/07(日) 14:12:03.13すべての言語は最終的にDに集約される
0052デフォルトの名無しさん
2013/04/07(日) 14:12:56.65所詮マクロですもんね
バイナリサイズがでかくなるだけ
0053デフォルトの名無しさん
2013/04/07(日) 14:16:35.260054デフォルトの名無しさん
2013/04/07(日) 14:17:10.30現実として、CをC++で完全に置き換える状況にはなっていない。
0055デフォルトの名無しさん
2013/04/07(日) 14:17:15.41それもほとんどの場合は違うと思うよ。
コンパイル速度が悪化する程度だよ。
0056デフォルトの名無しさん
2013/04/07(日) 14:19:26.11それは本質がわかってない
テンプレートでバイナリが肥大化するなら、C でも同程度に大きくなる
0057デフォルトの名無しさん
2013/04/07(日) 14:43:10.42テンプレートというかメタプログラムのいいところは、コンパイルの時点である程度の処理が解決されているので
キャッシュヒットは悪くなったとしても、先読みの有効性が高くなる点なんじゃないだろうか。
限界性能とか意識したことないけど。。。
0058デフォルトの名無しさん
2013/04/07(日) 14:47:46.94型毎に処理を作るという事を行わなければそうはならないが(qsortみたいに)、
今度は型毎に処理が最適化されないので遅くなるという罠
同じ事をしようと思った場合、Cは基本的にC++より遅いか同等
0059デフォルトの名無しさん
2013/04/07(日) 14:51:39.22テンプレートで頑張ってメタプログラミングするより
コード生成に適した言語でCコードを生成したほうが筋が良さそう
0060デフォルトの名無しさん
2013/04/07(日) 14:54:04.28Fortran使った方が
0061デフォルトの名無しさん
2013/04/07(日) 14:54:16.73テンプレートは型パラメータ分の実体化を伴うから、バイナリが肥大化しやすいと言われてる。
でも、それはCでも変わらないよね。
型違いのコードクローンを作るか、マクロ関数化するしかないんだから。
0062デフォルトの名無しさん
2013/04/07(日) 14:56:24.170063デフォルトの名無しさん
2013/04/07(日) 14:56:42.48その通り。
0064デフォルトの名無しさん
2013/04/07(日) 14:56:57.58コードサイズなんて大したもんじゃない
0065デフォルトの名無しさん
2013/04/07(日) 15:00:19.01Cと同等以上の速度になるんだけど、
実際は標準C++ライブラリを使うなら例外も使うし、
例外を使うならスマポ使いたいし……ってなって
結局はCより肥大化して遅くなってしまう
0066デフォルトの名無しさん
2013/04/07(日) 15:01:44.50あほか
そんなのは選択したお前の勝手で、言語の優劣とは関係無い
0067デフォルトの名無しさん
2013/04/07(日) 15:02:07.720068デフォルトの名無しさん
2013/04/07(日) 15:02:38.67さすがにそれはないんじゃ?
テンプレートの生成するコードハンパないし。
顕著なのはiostreamか?includeしただけでひどいことに
コンテナ系も同じ型であったとしてもやっぱ別々になるし。。。
グローバルにtypedefしたら改善する?
それとも大量のincludeがいけないのだろうか。
0069デフォルトの名無しさん
2013/04/07(日) 15:03:00.12いやいや
例外を使わない方がエラー処理が肥大化するんだぞ
スマポも全く肥大化しないどころか、
デストラクタのないCはエラー処理が冗長になりがち
0070デフォルトの名無しさん
2013/04/07(日) 15:03:28.88なんでも揃ってれば素晴らしいという観点でいえば
C++は素晴らしいね
0071デフォルトの名無しさん
2013/04/07(日) 15:06:28.05基本的には、徹底してソースコードを調整した場合、性能はアセンブラ > C言語 > C++の順だろ。
0072デフォルトの名無しさん
2013/04/07(日) 15:08:01.88基本的にC++のが速い
0073デフォルトの名無しさん
2013/04/07(日) 15:08:49.03まあトイプログラムならC++の方が速いよwww
0074デフォルトの名無しさん
2013/04/07(日) 15:09:24.00C++>C言語>アセンブラの順の速さで動くのだった
0075デフォルトの名無しさん
2013/04/07(日) 15:14:37.42それはどこかで安全性を犠牲にしてるだけ
場合によってはセキュリティホールを放置してたり
0076デフォルトの名無しさん
2013/04/07(日) 15:14:53.26http://benchmarksgame.alioth.debian.org/u64q/benchmark.php?test=all&lang=gcc&lang2=gpp
0077デフォルトの名無しさん
2013/04/07(日) 15:15:38.860078デフォルトの名無しさん
2013/04/07(日) 15:16:20.680079デフォルトの名無しさん
2013/04/07(日) 15:18:52.91じゃあさ、同じものをCで作ってごらんよ。
テンプレートだから大きいのではなくて、機能そのものが大きいんだよ。
つまり、それはCとC++の違いではなくて、関数レベルの機能差なだけ。
0080デフォルトの名無しさん
2013/04/07(日) 15:20:26.850081デフォルトの名無しさん
2013/04/07(日) 15:21:56.06いまのC++コンパイラは、Cへのトランスレータではなく、一気にアセンブラ・機械語まで持って行く。
性能はどの程度、コンパイラがチューニングされているかに依存するが、
STLの実装などを見れば汎用性維持のための無駄が多く、同様の処理を直にCで書いたほうが速くなるだろう事は想像がつく。
0082デフォルトの名無しさん
2013/04/07(日) 15:22:08.44"完"敗?
n-bodyとかは遅い方が勝ってるってこと?
0083デフォルトの名無しさん
2013/04/07(日) 15:28:53.93C++ → Cfront releases → Release 3.0.3
http://www.softwarepreservation.org/projects/c_plus_plus/cfront/release_3.0.3/
Lightweight C++
Lightweight C++は C++に似たプログラミング言語であり、人間が読んで理解できる Cコードに直接変換します。
関数オーバーロード、メンバ関数、継承、ポリモルフィズム(仮想関数)、多重継承、仮想継承、純粋仮想関数、コンストラクタ/デストラクタ、new/delete、単純テンプレートをサポートしています。
http://sourceforge.jp/projects/freshmeat_lwc/
0084デフォルトの名無しさん
2013/04/07(日) 15:30:40.95ベンチマークやってるのなんてこんなのばっかり
0085デフォルトの名無しさん
2013/04/07(日) 15:33:22.040086デフォルトの名無しさん
2013/04/07(日) 15:33:29.860087デフォルトの名無しさん
2013/04/07(日) 15:34:58.000088デフォルトの名無しさん
2013/04/07(日) 15:35:26.030089デフォルトの名無しさん
2013/04/07(日) 15:39:04.640090デフォルトの名無しさん
2013/04/07(日) 15:39:19.14うわー、思った以上に差がある。
なーんだがっかり。
0091デフォルトの名無しさん
2013/04/07(日) 15:47:45.370092デフォルトの名無しさん
2013/04/07(日) 15:51:08.33C使いは適当な高級言語とFFIを駆使して
快適にプログラミングしていくのであった……
0093デフォルトの名無しさん
2013/04/07(日) 15:58:16.62わかります
0094デフォルトの名無しさん
2013/04/07(日) 16:04:25.63・しかし、コンパイラの性能は年々向上してるし、第一人間の能力的にソフト丸ごとアセンブラで書くのはまず不可能
・Cに比べてC++の方がライブラリは充実しているので「書きやすい」が、その分複雑になっているので「難しい」とも言える
・「どちらが速いか」「どちらが小さいか」なんてのは条件によってバラバラなのでなんとも言えない
(C++の方がライブラリを無駄に多くincludeしやすいが、その分Cよりは安全な処理ができる、等)
とりあえずこんなとこか
ライブラリをinlucdeする??
0096デフォルトの名無しさん
2013/04/07(日) 16:21:47.66/usr/includeの中身全部読んでから出直せ
0097デフォルトの名無しさん
2013/04/07(日) 16:22:13.830098デフォルトの名無しさん
2013/04/07(日) 16:26:43.660099デフォルトの名無しさん
2013/04/07(日) 16:29:29.05使ってないコードはリンカが取り除くから機能がでかいからといってincludeしてちょっと使うぐらいじゃコードサイズはでかくなっちゃいけない
でも現実にでかくなっているということは機能がでかいんじゃなくてテンプレートがクソだからだ
0100デフォルトの名無しさん
2013/04/07(日) 16:33:13.34STLつかうと一気に実行ファイルサイズが10倍に?!
環境によるだろ。
俺はBorland-C++5.6.2に -D_RTLDLL オプションを指定して、極力
ランタイムを使用するようにして使っているが、例えばstd::vectorを
使っても使わない時と比べ10Kほどしか増えない
すげえ。ダイナミックリンクしといてファイルサイズが増えないとかいってるよ。この人。
C1010: プリコンパイル済みヘッダーの検索中に予期しない EOF を検出しました。
とかいうエラーが出るんだけどこれってどうすればいいの?
#include <stdafx.h>
後死ね。
言葉が悪いな。それで教えているつもりか。
まぁヒントぐらいにはなったな。
うむごくろう。
0101デフォルトの名無しさん
2013/04/07(日) 16:47:46.85厳密にはboostにしても、「インクルードするだけのライブラリ」ではない、それを踏まえた上でのくだらない突っ込みでは?
>>96
リンカって知ってる?
0102デフォルトの名無しさん
2013/04/07(日) 16:49:07.73大部分は「インクルードするだけのライブラリ」
0103デフォルトの名無しさん
2013/04/07(日) 16:55:54.33これは恥ずかしい。
0104デフォルトの名無しさん
2013/04/07(日) 17:09:53.68何これ面白い
早速落として使ってみよう
0105デフォルトの名無しさん
2013/04/07(日) 17:10:24.570106デフォルトの名無しさん
2013/04/07(日) 17:12:26.130107デフォルトの名無しさん
2013/04/07(日) 17:51:31.800108デフォルトの名無しさん
2013/04/07(日) 19:38:30.960109デフォルトの名無しさん
2013/04/07(日) 19:42:23.640110デフォルトの名無しさん
2013/04/07(日) 19:48:16.970111デフォルトの名無しさん
2013/04/07(日) 19:51:46.90それ何て研究室?一般企業ではあり得ないよなあ
0112デフォルトの名無しさん
2013/04/07(日) 19:52:59.06CfrontはC++処理系の元祖
0114デフォルトの名無しさん
2013/04/07(日) 19:55:58.24組み込みにC++?
0115デフォルトの名無しさん
2013/04/07(日) 19:56:29.20C++の表面に出て来ない裏方を見てみたい好奇心で
0117デフォルトの名無しさん
2013/04/07(日) 20:00:14.260118デフォルトの名無しさん
2013/04/07(日) 20:00:26.55それも自分が選んだ道だから
頑張って!
0119デフォルトの名無しさん
2013/04/07(日) 20:10:08.81ほかにできる仕事がなかったんだ
0120デフォルトの名無しさん
2013/04/07(日) 20:12:24.16これ以外は考えられないよ。
0121デフォルトの名無しさん
2013/04/07(日) 20:16:34.770122デフォルトの名無しさん
2013/04/07(日) 20:16:55.05書類作ったり営業したりがもう最悪
ニートになりたい
0123デフォルトの名無しさん
2013/04/07(日) 20:22:50.29自分で自分の仕事を決められる立場にある人間が、自分で決めて遂行するなら、おもしろそうだな。
0124デフォルトの名無しさん
2013/04/07(日) 20:25:46.54自分も書類書くの面倒!!
アジャイルプログラミングだ、と(心の中で)言い訳してコードばっかり書いてるw
0125デフォルトの名無しさん
2013/04/07(日) 20:26:08.41それが結構通るから面白い
そんなわけで大概言語は自分で選べてる
0126デフォルトの名無しさん
2013/04/07(日) 20:26:38.35こんなことできるよ!ってプログラム動かして上の人とか営業さんに見せると喜んでくれるから楽しいよ。
0127デフォルトの名無しさん
2013/04/07(日) 20:29:16.95おおー、珍しく前向きな意見だね。
0128デフォルトの名無しさん
2013/04/07(日) 20:31:28.86珍しくw
まー、多くの現場では押し付け的にあれやれこれやれ早くやれで大変だよね・・・。
それも大事だけど、もっとやる気出るようなリーダーシップというか人間性がない人が多いような気がするよ・・・。
悲しいことにね・・・。
0129デフォルトの名無しさん
2013/04/07(日) 20:32:03.97一瞬で出来ないと営業に出かけてしまう
0130デフォルトの名無しさん
2013/04/07(日) 20:33:04.86ワロタw
0131デフォルトの名無しさん
2013/04/07(日) 20:59:10.830132デフォルトの名無しさん
2013/04/07(日) 20:59:40.09法則みたいなもんだw
0133デフォルトの名無しさん
2013/04/07(日) 21:00:26.790134デフォルトの名無しさん
2013/04/07(日) 21:48:02.03どう考えてもマーフ(ryだな
0135デフォルトの名無しさん
2013/04/07(日) 21:57:10.42(表1)ベンチマークテスト結果(数字が小さいほど速い)
MASM32 Visual Visual Visual Java Dark AGK Basic4GL 99BASIC
Basic C++ C# Script BASIC
----------------------------------------------------------------------------------------------------
PC(CeleronD2.66GHz)[sec] 0.7828 2.445 2.821 3.973 7.772 20.853 65.423 285.703 1532.0
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MASM32を1とする相対倍率 1.0 3.123 3.604 5.076 9.928 26.638 83.575 364.975 1957.0
----------------------------------------------------------------------------------------------------
Nexus7(Tegra3)1.3GHz[sec]. ----- ----- ----- ----- 36.480 ----- 320.18 ----- -----
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MASM32を1とする相対倍率. ----- ----- ----- ----- 46.601 ----- 409.01 ----- -----
----------------------------------------------------------------------------------------------------
iPhone4S(Cortex-A9)800MHz[sec] ----- ----- ----- ----- 36.521 ----- (※注) ----- -----
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MASM32を1とする相対倍率 ----- ----- ----- ----- 46.654 ----- (※注) ----- -----
----------------------------------------------------------------------------------------------------
(※注)iPhone版AGKターゲットエミュレーターはビデオストリームのため除外。
0136デフォルトの名無しさん
2013/04/07(日) 21:57:49.08(表2)ランキング表(数字が小さいほど速い)
開発環境 タイム MASM32を1とする
[sec] 相対倍率
-----------------------------------------------------------------
PC(CeleronD2.66GHz). MASM32. 0.7828 1.0
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PC(CeleronD2.66GHz). Visual Basic. 2.445 3.123
PC(CeleronD2.66GHz). Visual C++ 2.821 3.604
PC(CeleronD2.66GHz). Visual C# 3.973 5.076
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PC(CeleronD2.66GHz). JavaScript 7.772 9.928
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PC(CeleronD2.66GHz). DarkBASIC 20.853 26.638
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Nexus7(Tegra3)1.3GHz JavaScript. 36.48 46.601
iPhone4S(Cortex-A9)800MHz JavaScript. 36.521 46.654
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PC(CeleronD2.66GHz). AGK 65.423 83.575
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PC(CeleronD2.66GHz). Basic4GL. 285.703 364.975
Nexus7(Tegra3)1.3GHz AGK. 320.187 409.01
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PC(CeleronD2.66GHz). 99BASIC. 1532.0 1957.0
-----------------------------------------------------------------
0137デフォルトの名無しさん
2013/04/07(日) 22:21:37.70これいつ測ったベンチなんだよ……比較対象がBASICって……
単なる空for文なら最適化で消されかねないから何か書いたんだろうけどそれは一体何……
そもそもソースが提示されていない時点で再テストすらできない……
0138デフォルトの名無しさん
2013/04/07(日) 22:43:42.730139デフォルトの名無しさん
2013/04/07(日) 22:49:13.92Visual C++ - 2.821秒(ループ回数を100倍にしてタイムを100で割った数字)
#include "stdafx.h"
int _tmain(int argc, _TCHAR* argv[]) {
int j,k;
printf("START\n");
for(k=0; k<100; k++) { for(j=0; j<1000000000; j++) {} }
printf("END\n");
return 0;
}
0140デフォルトの名無しさん
2013/04/07(日) 22:55:16.07http://kohada.2ch.net/test/read.cgi/pcnews/1365242417
でもループだけって……せめて行列計算とかさせろよと
0141デフォルトの名無しさん
2013/04/07(日) 23:27:47.29C++ 259ms
C# 2748ms
VB 3817ms
auto v = 0ULL;
auto st = std::chrono::system_clock::now();
for ( auto i = 0; i < N; i++ ) {
for ( auto j = 0LL; j < 1000000000LL; j++ ) {
v += j;
}
}
auto et = std::chrono::system_clock::now();
0142デフォルトの名無しさん
2013/04/07(日) 23:29:31.35やっぱC++はすげぇぜ・・・。
スーパーサイヤ人だな。
0143─☆─ [ X | I.I.T. ] COURANT DE CONSOLE ◆TXFAX7cidQpG
2013/04/07(日) 23:30:47.19ベンチマークで余計な最適化やると意味ないよw
0144141
2013/04/07(日) 23:35:30.56最適化外したら意味ないでしょ。
最初、debug=3秒、release=0秒になったから
仕方なくv+=jを加えてvの結果を出力
するようにしたらこうなった。
vの計算結果が表示されてるからループは
してる筈。
0145─☆─ [ X | I.I.T. ] COURANT DE CONSOLE ◆TXFAX7cidQpG
2013/04/07(日) 23:37:44.94Nって何の数字だ?
適当に書いてもちゃんと見てるぞw
0146─☆─ [ X | I.I.T. ] COURANT DE CONSOLE ◆TXFAX7cidQpG
2013/04/07(日) 23:41:03.050147─☆─ [ X | I.I.T. ] COURANT DE CONSOLE ◆TXFAX7cidQpG
2013/04/07(日) 23:50:46.07MASM32 - 0.7828秒(ループ回数を100倍にしてタイムを100で割った数字)
fn MsgboxI,hWin,"START",ustr$(eax),MB_OK,500
MOV EBX,100
SELF2: MOV ECX,1000000000
SELF: LOOP SELF
DEC EBX
JNZ SELF2
fn MsgboxI,hWin,"END",ustr$(eax),MB_OK,500
- - - - - - - - -
フツーにこれより速くなるコトはないからなw
ネタは挙がってんだぜ?w”
0148─☆─ [ X | I.I.T. ] COURANT DE CONSOLE ◆TXFAX7cidQpG
2013/04/07(日) 23:51:40.270149141
2013/04/08(月) 00:05:49.31#include <cstdio>
#include <chrono>
static const int N = 10;
int main() {
auto v = 0ULL;
auto st = std::chrono::system_clock::now();
for ( auto i = 0; i < N; i++ ) {
for ( auto j = 0LL; j < 1000000000LL; j++ ) {
v += j;
}
}
auto et = std::chrono::system_clock::now();
std::printf("%llu\n", v);
std::printf("%.1fms, %.1f ms\n",
std::chrono::duration_cast<std::chrono::milliseconds>(et - st).count() * 1.0,
std::chrono::duration_cast<std::chrono::milliseconds>(et - st).count() * 1.0 / N);
std::getchar();
}
Nが一桁間違えてたけど
平均取るための回数だから大目に見てね。
そちらより時間が短いのは実行環境の違いであって、
同一環境でアセンブラよりC++が速いなんて言わないよ。
ただベンチは64ビットでやろうよ。
0150─☆─ [ X | I.I.T. ] COURANT DE CONSOLE ◆TXFAX7cidQpG
2013/04/08(月) 00:11:19.33Nが整数ってのは怪しいなw
floatで取れw
3632QMって…あ、聞いちゃ不味かったかw
0151デフォルトの名無しさん
2013/04/08(月) 00:13:45.650152─☆─ [ X | I.I.T. ] COURANT DE CONSOLE ◆TXFAX7cidQpG
2013/04/08(月) 00:16:57.09つまり… C++ 259ms → *27 = 6.993秒w
PC(CeleronD2.66GHz). Visual C++ 2.821 3.604
…何やってんだかw
0153─☆─ [ X | I.I.T. ] COURANT DE CONSOLE ◆TXFAX7cidQpG
2013/04/08(月) 00:17:56.230154─☆─ [ X | I.I.T. ] COURANT DE CONSOLE ◆TXFAX7cidQpG
2013/04/08(月) 00:21:19.120155デフォルトの名無しさん
2013/04/08(月) 00:42:34.85あいやーだな
0156デフォルトの名無しさん
2013/04/08(月) 00:56:27.85ワロタ
一定の条件下での言語比較なのに
俺の方が有利とか何だよw
0157デフォルトの名無しさん
2013/04/08(月) 01:34:21.28この流れは処理結果が同じなら異なるロジック・アルゴリズムで比較してもいいというものではないよね
0158デフォルトの名無しさん
2013/04/08(月) 01:51:31.09・びす太で実行
・今時セレロンD
・まさかの空ループ ←ポイント
・最適化は無しで
015995
2013/04/08(月) 03:21:41.12とか、具体的に
行列計算で普通にfor() を使って書いても‥‥
とか何か目的、いやデモしたい、デモして皆に見せびらかしたい理由とかあるよね、普通。そこんとこはっきりさせてよ、なぜ言語別でデモするのかさぁ
CPUを新しいのがいいね最低でも砂橋とかネハでもいいけどさ
変なのつれて来てごめんね
0160─☆─ [ X | I.I.T. ] COURANT DE CONSOLE ◆TXFAX7cidQpG
2013/04/08(月) 05:21:52.56まず1回でまとめて書く癖を付けようw
ムダだから(笑)
>(>>147は減算して0との比較)
よく気が付いた、感動したw
>今ホットなベンチ
>・びす太で実行
>・今時セレロンD
>・まさかの空ループ ←ポイント
>・最適化は無しで
誰かさんの安物3632QM(←まずありえないw)には負ける(アハ♪”
0161デフォルトの名無しさん
2013/04/08(月) 05:35:29.820162─☆─ [ X | I.I.T. ] COURANT DE CONSOLE ◆TXFAX7cidQpG
2013/04/08(月) 05:38:59.23ここに常駐してVC++を学習してやろう(笑)
# 俺がちゃんと吟味してやる(ゲラゲラ
0163デフォルトの名無しさん
2013/04/08(月) 06:53:51.73>>159
0164デフォルトの名無しさん
2013/04/08(月) 07:41:01.520165デフォルトの名無しさん
2013/04/08(月) 07:56:34.740166デフォルトの名無しさん
2013/04/08(月) 08:13:05.55一緒にしてくれるな
>ここに常駐してVC++を学習してやろう(笑)
君にC++を理解できるかな
成果を期待しているよ
0168デフォルトの名無しさん
2013/04/08(月) 18:01:40.60とか言ってるクソ野郎のいう事じゃないな。
0169デフォルトの名無しさん
2013/04/09(火) 00:06:56.08なんじゃこりゃ、って思ってたんだが、単なる基地外か。まじめに考えて損した。
0170デフォルトの名無しさん
2013/04/09(火) 08:34:27.67namespace foo
{
#include "foo.c"
}
だけで大丈夫なんでしょうか
0171デフォルトの名無しさん
2013/04/09(火) 11:51:53.45それでコンパイルとリンクが通ればok
通らなければ諦める
0172─☆─ [ X | I.I.T. ] COURANT DE CONSOLE ◆TXFAX7cidQpG
2013/04/09(火) 22:38:35.28始めからそう書けば分かりやすいw
0173デフォルトの名無しさん
2013/04/09(火) 22:40:08.76プッ、そんなことも知らないのかwww
0174─☆─ [ X | I.I.T. ] COURANT DE CONSOLE ◆TXFAX7cidQpG
2013/04/09(火) 22:44:13.38たぶん概念は知ってるけど専門用語が違うからC++のマニュアルを見てもサッパリ分からんw
おまえみたいにまったく知らない方が覚えやすいかもな(笑)
0175デフォルトの名無しさん
2013/04/09(火) 22:45:58.40hoge.c
hoge.cpp
に分けるか
全部
hoge.cpp
のファイルにまとめてC++としてコンパイルするか?
0176─☆─ [ X | I.I.T. ] COURANT DE CONSOLE ◆TXFAX7cidQpG
2013/04/09(火) 22:50:16.24CにあってC++にないものと言えば?
0177デフォルトの名無しさん
2013/04/09(火) 23:24:27.14名前空間くらい使おうぜ
0178デフォルトの名無しさん
2013/04/09(火) 23:26:58.28restrictポインター
複素数三角関数
0179─☆─ [ X | I.I.T. ] COURANT DE CONSOLE ◆TXFAX7cidQpG
2013/04/09(火) 23:54:41.21restrictポインターって用途が思い浮かばないけど、マルチタスク処理で使えそうだな。
他のタスクで使ってる変数領域をロックする場合とか。
複素数はマニア以外使わないと思う。
0180デフォルトの名無しさん
2013/04/09(火) 23:57:20.020181デフォルトの名無しさん
2013/04/10(水) 00:27:45.79なんなの?このバカ
0182デフォルトの名無しさん
2013/04/10(水) 00:31:13.89指数関数と三角関数の組み合わせで
簡単に実装できるがな
0183デフォルトの名無しさん
2013/04/10(水) 00:38:31.32それはアセンブラあればcは要らない
ぐらいのアホな発言
0184デフォルトの名無しさん
2013/04/10(水) 00:43:52.05指数関数と言うか、双曲線関数だったっけか
0185─☆─ [ X | I.I.T. ] COURANT DE CONSOLE ◆TXFAX7cidQpG
2013/04/10(水) 00:48:38.730186デフォルトの名無しさん
2013/04/10(水) 00:55:19.46変数とgoto有れば構造体も関数も要らない。
アセンブラ最強。
0187デフォルトの名無しさん
2013/04/10(水) 01:38:42.96勉強がてらnodeかブラウザのコード読みたいと思ってるんだが何がいいだろう
モダンな実装という噂の v8, nodeのコアのlivuvあたりを考えてたんだが重すぎる気がする
コードベース少なくて参考になるのって言ったらどれがお勧めですか
3000行より短いぐらいがいい
0188デフォルトの名無しさん
2013/04/10(水) 01:41:31.520189デフォルトの名無しさん
2013/04/10(水) 02:41:50.680190─☆─ [ X | I.I.T. ] COURANT DE CONSOLE ◆TXFAX7cidQpG
2013/04/10(水) 06:50:15.17我流でやった方がいいよ。
つーか、俺は今からそうするけどw
会社で決められたコーディングとかインデントスタイル(笑)とか指定されてる場合は会社の言うとおりにしておく。
0191デフォルトの名無しさん
2013/04/10(水) 09:34:27.25あ、それ同意。
所詮会社ごときで本気を出す必要はない。
0192─☆─ [ X | I.I.T. ] COURANT DE CONSOLE ◆TXFAX7cidQpG
2013/04/10(水) 09:38:54.35サラリーマンは変わったヤツが多いからなw
アセンブラでインデント付けろとか言う会社は早く辞めたほうがいい(笑)
0193デフォルトの名無しさん
2013/04/10(水) 09:43:52.27>アセンブラでインデント付けろとか
そいつ有名な某氏だろw
0194─☆─ [ X | I.I.T. ] COURANT DE CONSOLE ◆TXFAX7cidQpG
2013/04/10(水) 09:47:12.78どこにでもいそうな変わり者レベルってなところかw
あとFORループ外してコピー&ペーストで1024個並べるヤツとか…w”
(フツーにマクロで書けよw)
0195デフォルトの名無しさん
2013/04/10(水) 09:49:02.90こういうのは?
仕様が60fpsなのに最適化できないから30fpsに仕様変更するとか。
0196デフォルトの名無しさん
2013/04/10(水) 09:54:44.43あれってsin cosできないの?
0197デフォルトの名無しさん
2013/04/10(水) 10:59:20.72C++11の規格準拠ならオーバーロードされてるはずだが(26.4.8)別の話なのかな?
0198デフォルトの名無しさん
2013/04/10(水) 14:39:07.510199デフォルトの名無しさん
2013/04/10(水) 14:42:53.330200デフォルトの名無しさん
2013/04/10(水) 14:47:56.660201デフォルトの名無しさん
2013/04/10(水) 15:45:52.68FPUでネイティブサポートされてないから自作しても大して変わらんけど
0202─☆─ [ X | I.I.T. ] COURANT DE CONSOLE ◆TXFAX7cidQpG
2013/04/10(水) 17:02:34.15いわゆる ” 糞ゲー ” の典型的なパターンだなw
ムダな背景外してでも60fpsにすべきだろうな。
まあ、30fpsとか言い始めた時点で億単位のプロジェクトは赤字確定。
(結構頭がアレなヤツ多いからなw)
0203デフォルトの名無しさん
2013/04/10(水) 17:16:54.070204デフォルトの名無しさん
2013/04/10(水) 17:17:30.67自己紹介乙
というか無職だったなお前
0205─☆─ [ X | I.I.T. ] COURANT DE CONSOLE ◆TXFAX7cidQpG
2013/04/10(水) 17:33:46.72別におまえに向けて書いたつもりじゃあないんだけどな…あ、思い当たるフシがあるんだろうな(ゲラゲラ
0206デフォルトの名無しさん
2013/04/10(水) 19:13:47.890207デフォルトの名無しさん
2013/04/10(水) 19:15:30.970208─☆─ [ X | I.I.T. ] COURANT DE CONSOLE ◆TXFAX7cidQpG
2013/04/10(水) 19:21:58.880209デフォルトの名無しさん
2013/04/10(水) 20:04:07.60病室から抜け出すなよ(笑)
0210─☆─ [ X | I.I.T. ] COURANT DE CONSOLE ◆TXFAX7cidQpG
2013/04/10(水) 20:08:13.32外の世界にいるのが俺で、中にいるのがおまえだよw
長いコトいるとそっちが外の世界になるんだろうけどさ(ゲラゲラ
0211デフォルトの名無しさん
2013/04/10(水) 20:34:02.72ったく一日中どこから書いてんだよ
スマホからってのはなしで
0212─☆─ [ X | I.I.T. ] COURANT DE CONSOLE ◆TXFAX7cidQpG
2013/04/10(水) 22:20:11.480213デフォルトの名無しさん
2013/04/10(水) 22:36:12.250214デフォルトの名無しさん
2013/04/10(水) 22:57:26.49逝こうここもじき腐海に沈む‥‥‥
0215─☆─ [ X | I.I.T. ] COURANT DE CONSOLE ◆TXFAX7cidQpG
2013/04/10(水) 22:57:36.450216デフォルトの名無しさん
2013/04/10(水) 23:07:45.78いないのと同じになるから
0217─☆─ [ X | I.I.T. ] COURANT DE CONSOLE ◆TXFAX7cidQpG
2013/04/10(水) 23:44:00.960218デフォルトの名無しさん
2013/04/10(水) 23:48:46.37ゴミは視界に入れないに限る
0219─☆─ [ X | I.I.T. ] COURANT DE CONSOLE ◆TXFAX7cidQpG
2013/04/10(水) 23:49:36.560220デフォルトの名無しさん
2013/04/11(木) 00:13:02.85まず、どんなことから勉強すれば良いのかすら分からない。
なので、YouTubeみたいな動画共有サイトを作るためには、
どんなことを勉強しないと駄目なのかを全て教えてください。
0221─☆─ [ X | I.I.T. ] COURANT DE CONSOLE ◆TXFAX7cidQpG
2013/04/11(木) 00:58:29.000222デフォルトの名無しさん
2013/04/11(木) 01:02:06.98ffmpegの使い方とWeb用の開発言語だな。PHPとかHTML5とか。C++で特に何も書かなくても作れると思うよ。
0223デフォルトの名無しさん
2013/04/11(木) 01:02:30.780224デフォルトの名無しさん
2013/04/11(木) 01:15:42.75ハードとソフトとネットワークの高度な知識はいるだろ。
YouTubeはメチャクチャ負荷が高い。
それをいかに低減させていくかが重要課題。
0225デフォルトの名無しさん
2013/04/11(木) 02:05:42.58YouTube並のサイトを作るって話なの?>>220の質問レベルからして、身内向けに動画をアップしたら勝手にエンコしてブラウザで見れるサイトを作りたい、とか
そういうレベルかと勝手に思っちゃった。
動画の取り扱いは、キリないよね。色々工夫しないと難しい問題ばっかり。
0226デフォルトの名無しさん
2013/04/11(木) 02:07:51.810227デフォルトの名無しさん
2013/04/11(木) 13:14:13.66YouTubeを(プライベート設定で)使えよ。
0228デフォルトの名無しさん
2013/04/11(木) 15:39:01.95それ自分に言われてもなあ…
0229デフォルトの名無しさん
2013/04/11(木) 22:05:35.16こんなこと言う奴が本気で訊いてる訳なし
0230デフォルトの名無しさん
2013/04/11(木) 22:13:08.05だいたいスレ違い、というか板違いだし
「金払って業者に作ってもらえアホ」位の返事がちょうどよろしいかと
0231デフォルトの名無しさん
2013/04/11(木) 22:30:25.780232デフォルトの名無しさん
2013/04/11(木) 22:35:04.070233デフォルトの名無しさん
2013/04/11(木) 23:03:43.780234デフォルトの名無しさん
2013/04/11(木) 23:04:58.090235デフォルトの名無しさん
2013/04/11(木) 23:10:44.180236デフォルトの名無しさん
2013/04/12(金) 05:30:13.98真面目に答えよう。初歩の初歩としてWebサーバー構築とは、どういうものかが判らないと無理だ。
そして、Webで調べずにここで聞いてる時点で君が、その目的を達成できることはないだろうと想像できる。
0237デフォルトの名無しさん
2013/04/12(金) 08:09:45.75まさに的確な指摘だな。
ここで聞いてても答えが出てくるわけないもんな。素人しかいないから。
0238デフォルトの名無しさん
2013/04/12(金) 10:19:18.900239デフォルトの名無しさん
2013/04/12(金) 21:11:34.400240片山博文MZパンク ◆0lBZNi.Q7evd
2013/04/12(金) 21:27:46.06#undef max
#undef min
0241デフォルトの名無しさん
2013/04/12(金) 21:46:30.100242デフォルトの名無しさん
2013/04/12(金) 21:48:32.39#undef >>240
#endif
0243デフォルトの名無しさん
2013/04/12(金) 22:11:27.96結局そうした
他にいいやり方があったら教えてくれ頼む
0244片山博文MZパンク ◆0lBZNi.Q7evd
2013/04/12(金) 23:18:43.92...
#include "unmaxmin.h"
...ここでSTLのmax/minを使う...
#include "maxmin.h"
...ここでWin32のmax/minを使う...
"maxmin.h"と"unmaxmin.h"の中身は自分で考えよう
0245デフォルトの名無しさん
2013/04/12(金) 23:29:16.30#define NOMINMAX
とか
0246デフォルトの名無しさん
2013/04/12(金) 23:33:42.47NOMINMAXしか選択肢は無いよ
0247デフォルトの名無しさん
2013/04/12(金) 23:46:05.59template使うとか考えなかったんだろうか。
0248デフォルトの名無しさん
2013/04/12(金) 23:51:40.010249─☆─ [ X | I.I.T. ] COURANT DE CONSOLE ◆TXFAX7cidQpG
2013/04/12(金) 23:52:58.06http://uni.2ch.net/test/read.cgi/newsplus/1365717932/l50
・「R25」の調べによると、面接経験豊富な30〜40代の上司世代がイラつく「若者言葉」で最も多かったのは「見れた」
「食べれた」などの「ら抜き言葉」だったそうだ。「ものすごく幼稚な印象を受ける」「いちいち気になって、話の内容が
頭に入ってこない」など、かなり厳しい意見も出ているが、果たしてそんなにいけないことなのか。
社会人2年目の女性Aさんは、あるメーカーの面接で「ら抜き言葉」を注意されたことを、いまだに強く根に持っている。
学生時代にトヨタの本を読み、海外旅行で「3現主義」の重要性を感じたという話をしたときのことだ。
彼女は仕事への意気込みについて、「もし入社できたら、海外の生産現場に行かせていただきたい。そうしたら現場を回って、
見れるものは何でも見てきたいと思います!」と伝えたそうだ。すると面接担当者から、こう冷ややかに返されたという。
「君さ、それを言うなら“見られるものは”だよね。海外の前に日本語勉強したら?」
(以下省略)
http://news.livedoor.com/article/detail/7581420/
一方で、「ら抜き言葉」は人材をフィルタリングする上で、それなりに役に立つという考えを持つ人もいる。あるITベンチャー
企業の人事担当者は、言葉遣いから「学生時代にどの程度の知的レベルの集団にいたか」を推測する材料にしているという。
「他人と会話をしていれば、普通は『ら抜き言葉』に違和感を抱いて修正できるはず。それができていないということは、
その程度のレベルの集団に属していたという判断をしてしまいます。コミュニケーション能力にも関わりますし、ハイレベルな
プログラマーを除けば採用に当たって考慮に入れざるを得ません」
学歴だけでなく、日常的に知的水準の高い集団に属している人は意欲も高く、自分の頭でものごとを考える習慣が
あるという。言葉遣いひとつでそこまで見透かされることを考えると、やはり油断はできないのかもしれない。(以上)
- - - - - - - - - - -
見れたぁー? 作れたぁー? アハアハ〜♪”
0250デフォルトの名無しさん
2013/04/13(土) 00:04:39.46作れたはら抜きじゃない
0251─☆─ [ X | I.I.T. ] COURANT DE CONSOLE ◆TXFAX7cidQpG
2013/04/13(土) 00:05:34.640252デフォルトの名無しさん
2013/04/13(土) 00:11:24.910253─☆─ [ X | I.I.T. ] COURANT DE CONSOLE ◆TXFAX7cidQpG
2013/04/13(土) 00:15:44.870254デフォルトの名無しさん
2013/04/13(土) 00:19:57.860255デフォルトの名無しさん
2013/04/13(土) 00:22:55.910256デフォルトの名無しさん
2013/04/13(土) 00:33:48.540257デフォルトの名無しさん
2013/04/13(土) 02:23:03.540258デフォルトの名無しさん
2013/04/13(土) 02:54:18.47int max = std::numeric_limits<int>::max(); // エラー
int max = (std::numeric_limits<int>::max)(); // OK
0259デフォルトの名無しさん
2013/04/13(土) 06:10:50.96しょうがない
0260─☆─ [ X | I.I.T. ] COURANT DE CONSOLE ◆TXFAX7cidQpG
2013/04/13(土) 08:39:22.34自作自演楽しい?w”
0261デフォルトの名無しさん
2013/04/13(土) 11:45:00.50ああ、最高さ!
0262デフォルトの名無しさん
2013/04/13(土) 11:46:00.660263デフォルトの名無しさん
2013/04/13(土) 11:52:00.73そう思うのは朝鮮人だけ
0264デフォルトの名無しさん
2013/04/13(土) 12:16:11.11http://kohada.2ch.net/test/read.cgi/pcnews/1365242417/139-141
コンソール研究所は13日、C言語やJavaを使う学生を採用しない方針を固めた。
これは昨今のソフトウェア開発現場において社内研修期間を嫌う企業や官公庁の意向を取り入れたもので、
「 卒業=即戦力 」 が求められる新時代への突入を明確にしたものである。
たいていの面接官は ” 学生時代にどんな部活に所属していましたか? ” などと聞くが、それは時代遅れと
なったようだ。
また、C言語やJavaのスキルを問うものに対しても、「 実務経験がなければ意味がない 」 と言う現場の声も
反映した。
コンソール研究所の開発現場から一人の声を拾ってみた。
(以下ソース参照)
0265デフォルトの名無しさん
2013/04/13(土) 13:41:13.51これの元ネタってなに?
0266デフォルトの名無しさん
2013/04/13(土) 14:29:13.120267デフォルトの名無しさん
2013/04/13(土) 15:28:53.260268デフォルトの名無しさん
2013/04/13(土) 15:43:31.720269デフォルトの名無しさん
2013/04/13(土) 19:51:10.68そんな判断力じゃプログラムもいつまで経っても上達しないはずだわ
0270デフォルトの名無しさん
2013/04/13(土) 22:53:12.38何があった?
0271デフォルトの名無しさん
2013/04/13(土) 22:54:22.71>そう思うのは朝鮮人だけ
北朝鮮ミサイルによる国難の時に
地震なんかで騒いでるのは朝鮮人だけ
0272デフォルトの名無しさん
2013/04/13(土) 23:10:39.16土曜の夕方にしてはレス少なくないか
0273デフォルトの名無しさん
2013/04/13(土) 23:44:00.02感想はブログに書いてろks
0274デフォルトの名無しさん
2013/04/14(日) 00:49:59.28仲直りの印として、電車の中でUFO焼きそばを食うOFFでもしないか?
0275デフォルトの名無しさん
2013/04/14(日) 11:04:21.96>>263
だけ残ってるの何でなんだろな
0276デフォルトの名無しさん
2013/04/14(日) 13:31:16.09運営が削除依頼してる奴の奴隷に成り下がったからだよ
運営には今やもう削除するしないの判断力はないよ
0277デフォルトの名無しさん
2013/04/14(日) 13:32:29.73専用ブラウザー?
0278デフォルトの名無しさん
2013/04/14(日) 13:34:09.320279デフォルトの名無しさん
2013/04/14(日) 18:02:05.940280デフォルトの名無しさん
2013/04/16(火) 05:05:19.94朝鮮といえば大阪
大阪は朝鮮と結びつきが強い
大阪といえば大阪都構想
なぜ大阪府が大阪都になりたがってるか
それは財政破綻を先送りできるから
「都」は公債発行の限度が高くなっている
大阪府のままだともうすぐ破産扱い
大阪都になればしばらく大丈夫
借金の限度額を上げるために名前を変えようとしている
浅ましいでしょう大阪って
そんな大阪に我々日本人ができることといえば
大阪都構想に反対すること
0281デフォルトの名無しさん
2013/04/17(水) 23:48:24.170282デフォルトの名無しさん
2013/04/17(水) 23:48:54.08思ったんだが
どうやら失敗したみたいです
0283デフォルトの名無しさん
2013/04/17(水) 23:52:11.67boostのインストールしたと
思ったんだが
何故か失敗してるぞ
0284デフォルトの名無しさん
2013/04/18(木) 02:50:54.68coLinuxだとどうだ?
0285デフォルトの名無しさん
2013/04/18(木) 03:25:19.63使ったことないです
0286デフォルトの名無しさん
2013/04/18(木) 03:36:56.80ゲテモノ?
0287デフォルトの名無しさん
2013/04/18(木) 12:53:30.31といっても4年ぐらい前の記憶なので今だとどうだろう…(試してない
0288デフォルトの名無しさん
2013/04/18(木) 14:51:39.29正しいのかわからない
bjam.exe -sTOOLS=mingw --toolset=gcc --stagedir="配置ディレクトリ\boost_1_53_0"
--without-python --without-mpi --build-type=complete variant=debug,release
link=static threading=multi runtime-link=static release debug stage -j4
0289デフォルトの名無しさん
2013/04/18(木) 14:52:27.17コマンドが間違ってるのかも
これでboost のDLLが出来るらしいんだが
実行しても出来ていないし・・・
0290デフォルトの名無しさん
2013/04/18(木) 15:17:11.49ダウンロードしてきました。
0291デフォルトの名無しさん
2013/04/18(木) 15:18:11.13そして、dllが出来ていないので
当然ながら、boostのライブラリを使おうとしてもコンパイルエラーになります
0292デフォルトの名無しさん
2013/04/18(木) 15:18:56.77何だかうまくいったんだけど
あれは最初からboostが入ってるのかな?
0293デフォルトの名無しさん
2013/04/18(木) 16:18:06.260294デフォルトの名無しさん
2013/04/18(木) 17:56:22.210295デフォルトの名無しさん
2013/04/18(木) 18:22:18.39link=staticでは静的ライブラリのビルドでdllはできないだろ
0296デフォルトの名無しさん
2013/04/18(木) 18:29:13.84そうなの?
コマンドが間違ってるって
ことですか
0297デフォルトの名無しさん
2013/04/18(木) 18:36:42.190298デフォルトの名無しさん
2013/04/18(木) 19:36:26.110299デフォルトの名無しさん
2013/04/18(木) 21:16:52.78ゆとり・へたれ時代はググってコピペ出来れば良い。意味なんて知らなくて良い
プログラムだってコピペで作る
0300デフォルトの名無しさん
2013/04/18(木) 21:18:46.30どんな単純なアプリならコピペで作れるんだよ
0301デフォルトの名無しさん
2013/04/18(木) 21:20:06.180302デフォルトの名無しさん
2013/04/18(木) 21:27:46.99swprintf( str, 256, L"%f", m_pObj->GetFloatVal() );
DrawText( str );
こんな感じのコードをもっとエレガントに書けないでしょうか?
256といった適当なサイズのリテラルを書くことなく、
3行も使わずに、ラムダ式みたいに関数の引数内で直接文字列に変換しちゃうような、
そんな書き方はできないのでしょうか?
0303デフォルトの名無しさん
2013/04/18(木) 21:36:12.310304デフォルトの名無しさん
2013/04/18(木) 21:38:00.760305デフォルトの名無しさん
2013/04/18(木) 21:40:39.950306デフォルトの名無しさん
2013/04/18(木) 21:42:42.46そう言う関数作ればいいんじゃね?
0307デフォルトの名無しさん
2013/04/18(木) 21:54:18.46大学いってなさそう
0309デフォルトの名無しさん
2013/04/18(木) 22:01:10.940310デフォルトの名無しさん
2013/04/18(木) 22:03:09.220311デフォルトの名無しさん
2013/04/18(木) 22:27:21.520,以上1未満の実数な一様乱数を<random>を使って発生させようとしているのですが、
秒未満の単位で変動する値で乱数を初期化してmt19937()を使う方法が分かりません。
乱数を使う位置は、main関数以外の自作関数です。再帰的に呼び出すので、
「その関数の先頭に初期化用関数を置く」ようなことはしたくないです。
また、一回その関数を呼び出してから処理が完了するのに1秒未満ということはザラなので、
time(NULL)を使う、といった手段も取れません。
解決法をご教示願います。
0312デフォルトの名無しさん
2013/04/18(木) 22:33:08.20ハードにもよるけどx86ならrdtsc使えばいいんじゃね
0313デフォルトの名無しさん
2013/04/18(木) 22:38:45.830314デフォルトの名無しさん
2013/04/18(木) 22:41:38.320315デフォルトの名無しさん
2013/04/18(木) 22:44:13.45グローバルにおいてもいいと思うし
0316デフォルトの名無しさん
2013/04/18(木) 22:49:06.44std::to_wstring() でいいんじゃね?
0318デフォルトの名無しさん
2013/04/18(木) 23:31:35.84そんなに頻繁に初期化しなおしてたら一様性が崩れそうだ
初期化は一回だけのがいいんじゃね
0319デフォルトの名無しさん
2013/04/18(木) 23:32:39.14#include<math.h>
#include<stdlib.h>
#define LENGTH 1
#define SAMPLING_RATE 16000
#define NUMSAMPLES (LENGTH * SAMPLING_RATE)
int main(){
int i,t,sig,s;
int freq,amp;
double phase[SAMPLING_RATE];
signed short int x[NUMSAMPLES];
freq = 1000;
amp = 1024;
FILE *fp;
fp=fopen("white.raw","wb");
for(i=1;i<SAMPLING_RATE;i++){
phase[i] = rand(); }
for(t=1;t<NUMSAMPLES;t++){
for(s=1;s<8000;s++){
sig+=sin(2*M_PI*s*((double)t/NUMSAMPLES)+phase[s]); }
x[t]=sig;
fwrite(&amp;x[t],sizeof(x[t]),1,fp); }
return 0; }
これでホワイトノイズが出来る予定なんですがプツッって音だけになってしまいます。
ここが違うという指摘があればお願いします。
0320デフォルトの名無しさん
2013/04/18(木) 23:44:15.270321デフォルトの名無しさん
2013/04/18(木) 23:52:27.88iとsは0からでよかったですね
tは指定があったんで
0322デフォルトの名無しさん
2013/04/19(金) 00:38:51.99妄想で答えるけど、人間に聞こえる音になってないんじゃない
とりあえず確実に人間が聞こえる正弦波(1KHz)とかでプログラム組んだら
0323デフォルトの名無しさん
2013/04/19(金) 00:50:45.85sigがintだからsinの結果を加算しても0にしかならない
0324デフォルトの名無しさん
2013/04/19(金) 00:54:15.98>>323
sinの前にampが抜けている。freqはどこだろ
0325デフォルトの名無しさん
2013/04/19(金) 01:28:04.97すまねえ
俺の頭では理解できなかったぜ・・・
>>323
とりあえずこれを参考に頑張ってみます
>>324
freq,ampはこれとはまた別のやつで使うんで今回は放置でいいらしいっす
0326デフォルトの名無しさん
2013/04/19(金) 01:32:38.120327デフォルトの名無しさん
2013/04/19(金) 02:02:25.35書き込んだときにスレ違いに気づいたがもう手遅れだったぜ・・・
>>319
は解決しやしたんでこれにて撤収します
ありがとうございました
0328デフォルトの名無しさん
2013/04/19(金) 04:53:09.17std::random_deviceで、無事解決しました。
指摘通り、グローバル領域で1回初期化を掛けてから使用しています。
0329デフォルトの名無しさん
2013/04/21(日) 15:49:04.57ここまではわかる
じゃあ不完全型はどうなるの
つまり
struct A;
struct B { A* ptr; };
はどう扱われるのか教えて
0330デフォルトの名無しさん
2013/04/21(日) 16:01:15.70サイズも異なることがあるんだっけ?
メンバポインタは異なる事があるけど
0331デフォルトの名無しさん
2013/04/21(日) 16:35:45.05前者なら sizeof(int*) == sizeof(char*) は保証されている、というか前提なのでは?これが違うというアーキや違ったとしたときの具体的な実装が皆目思いつかないのだが?
0332デフォルトの名無しさん
2013/04/21(日) 17:03:06.77でも、言われてみると、文書では見たこと無いな。
会社に行ったら規格書しらべてみるかな。
0333デフォルトの名無しさん
2013/04/21(日) 17:12:29.31まあこれはCだけど
0334デフォルトの名無しさん
2013/04/21(日) 17:17:03.73GCCだと確か変わらなかったけど、
VC++だと仮想継承するかどうかで変わってた
普通のポインタは不完全型のポインタを考えると
同じでないと流石にダメな気がするが、
規格でどうかと言われると出てこない
nearポインタ、farポインタに関しては規格外だし、
near/farがあるとしてもfarの有無で判別するものであって
型で判別するものではないし
0335デフォルトの名無しさん
2013/04/21(日) 17:19:59.87そうなると構造体へのポインタ型に関しては
void*と同じ内部構造で扱うみたいな規格があるのかな
0336デフォルトの名無しさん
2013/04/21(日) 17:36:28.940337デフォルトの名無しさん
2013/04/21(日) 17:37:59.40void*との相互変換ができるというのが規格にあったはず
0338デフォルトの名無しさん
2013/04/21(日) 19:53:39.66struct系のポインターは全部void*と
同じサイズだろ。
0339デフォルトの名無しさん
2013/04/21(日) 20:06:49.88C++の場合(C++03 3.9.2 p4)
> Objects of cv-qualified (3.9.3) or cv-unqualified type void* (pointer to void),
> can be used to point to objects of unknown type.
> A void* shall be able to hold any object pointer.
> A cv-qualified or cv-unquali-fied (3.9.3) void* shall have the same representation
> and alignment requirements as a cv-qualified or cv-unqualified char*.
とあるから実質こうでなければならず
sizeof(char*) == sizeof(void*) >= sizeof(object *)
そこから考えると不完全型へのポインタのサイズはありえる最大サイズにあわせて
sizeof(void*) == sizeof(incomplete type*)
つまりvoid*(==char*)の大きさと同じになる
0340デフォルトの名無しさん
2013/04/21(日) 20:13:44.38struct T;
void foo(T**);
void bar(T*);
T* foobar() {
T* p;
foo(&p);
bar(p);
return p;
}
// B.cpp
struct T {
int a;
};
void foo(T**) { ... }
void bar(T*) { ... }
これが動かないといけないので
完全型かどうかでポインタサイズが変わったらまずい
構造体やクラスへのポインタサイズは一律でないと
0341デフォルトの名無しさん
2013/04/21(日) 20:21:51.790342デフォルトの名無しさん
2013/04/21(日) 20:48:22.13sizeof(char *) == sizeof(int *) == ... etc
sizeof(void (*)()) == sizeof(char(*)()) == sizeof(int(*)()) == ... etc
そして sizeof(int *) != sizeof(void(*)())
を意識しておればいいみたいだね。
さて sizeof(void *) はどっちに属するのか?
0343デフォルトの名無しさん
2013/04/21(日) 21:16:22.680344デフォルトの名無しさん
2013/04/21(日) 22:00:51.80それがポインタが指すオブジェクトによって、そのポインタ自体のサイズが変わるのでは?という問題、
あるいはポインタ同士の互換性を、どこまで考慮しておけばいいのか、という問題がもちあがっているんです。
多分起源は far/near だとは思いますが。
0345デフォルトの名無しさん
2013/04/21(日) 22:41:18.28>>340を考えると構造体やクラスへのポインタのサイズは一律でないとマズいと思うが、
規格にその旨は書かれているのだろうか
0346デフォルトの名無しさん
2013/04/22(月) 00:33:56.51いや違うか。
0347デフォルトの名無しさん
2013/04/22(月) 00:37:16.94それ単独では使えず、必ずthisとセットで使わないと意味がない
オフセット値でも入ってんじゃないの
知らないけど
0348デフォルトの名無しさん
2013/04/22(月) 00:54:25.44メンバ変数ポインタは本当にオフセット値が入ってるね
VC++はNULLのビット表現が0になるよう下駄はかせてるけど、
gccはオフセットそのままで、NULLのビット表現が-1になる
0349デフォルトの名無しさん
2013/04/22(月) 05:19:52.840350デフォルトの名無しさん
2013/04/22(月) 07:43:41.48いや、x32はあるよ
64bit環境で、アドレッシングだけ32bitでやろうよ!っていう変則APIセット
0351デフォルトの名無しさん
2013/04/22(月) 11:13:47.64template< typename T > class BBB
{
template< typename T > friend class CCC;
};
とやると
error: declaration of ‘class T’
error: shadows template parm ‘class T’
となるので
template< typename T > class BBB
{
template< typename > friend class CCC;
};
とやったら出なくなりました。Tを消すのは規格的にまずいですか?
0352デフォルトの名無しさん
2013/04/22(月) 11:55:08.470353デフォルトの名無しさん
2013/04/22(月) 12:06:43.18環境:gcc++ 4.4.6 CentOS6
std::list<char> list;
for(auto it=list.begin();it!=list.end();++it)
{
list.erase(it);
}
上記のコードはerase()の段階で
stl_list.h:143 _M_node=NULL になり ++itで落ちます。
コードが複雑になってくると意図せず上記をやってしまいそうなのですが
erase(it)後に++itでsegmentation faultは期待していいのでしょうか?
それとも、何らかのチェックを入れるべきでしょうか?
0354デフォルトの名無しさん
2013/04/22(月) 12:12:07.360355デフォルトの名無しさん
2013/04/22(月) 12:42:26.66it=list.erase(it);
慣用句レベルな。
イテレータが無効化される要件は、規格で規定されてるから、ググれば直ぐ情報出てくると思うぞ。
0356355
2013/04/22(月) 12:47:31.25erase の戻りが何を返すのか調べてくれ。
出先で書いてるので調べられん。
中途半端な情報ですまん。
0357デフォルトの名無しさん
2013/04/22(月) 12:48:59.62それはvc++のみじゃない?
linuxに突っ込まれてる erase()は void型
規約があるのか、探してみる
coredumpとコード読んで理解しようとしていたがギブアップだった
0358デフォルトの名無しさん
2013/04/22(月) 12:53:44.33いやさんくす、規約というのをしらなかった
探してみる
0359デフォルトの名無しさん
2013/04/22(月) 12:58:54.900360デフォルトの名無しさん
2013/04/22(月) 15:31:24.56iterator erase(const_iterator position);
voidなのは何かの見間違いじゃね?
0361デフォルトの名無しさん
2013/04/22(月) 16:29:34.07g++ならerase()はiteratorを戻すが?
0362デフォルトの名無しさん
2013/04/22(月) 16:39:37.39it = list.erase(it);
でビルドとおった、すまぬ。
0363デフォルトの名無しさん
2013/04/22(月) 16:44:04.210364デフォルトの名無しさん
2013/04/22(月) 16:49:13.810365デフォルトの名無しさん
2013/04/22(月) 18:05:07.320366デフォルトの名無しさん
2013/04/22(月) 18:13:05.06C++03 を使う機会はだんだん減っていくといいなぁ
0367デフォルトの名無しさん
2013/04/22(月) 18:31:38.530368デフォルトの名無しさん
2013/04/22(月) 18:45:17.190369デフォルトの名無しさん
2013/04/22(月) 19:03:24.700370デフォルトの名無しさん
2013/04/22(月) 19:21:38.86g++ 4.7.2で確認したけど
g++ -std=c++98 → map<T1,T2>::eraseはvoidを返す
g++ -std=c++03 → map<T1,T2>::eraseはvoidを返す
g++ -std=c++11 → map<T1,T2>::eraseはイテレーターを返す
0371デフォルトの名無しさん
2013/04/22(月) 21:14:44.500372デフォルトの名無しさん
2013/04/22(月) 21:28:15.35関数のポインタと変数のポインタのサイズが違う場合があるって知らなかったけど
どうしてこうなる?
0373デフォルトの名無しさん
2013/04/22(月) 22:04:12.36変数:RAM
に配置されてROMとRAMでそれぞれ別のアドレス空間とアドレス表現を持つとか普通だから
0374デフォルトの名無しさん
2013/04/22(月) 22:11:20.77どうも
そういうことか。PCだけじゃなく組み込みなんかでもC/C++使うからな
0375デフォルトの名無しさん
2013/04/22(月) 22:21:23.99A::A() { b = new B(); }
こうやると実行時エラーになるのに
class A { std::shared_ptr<B> b };
A::A() { b= new shared_ptr<B>(); }
だとエラーになりません。
これはやってもいいことがやれているのか
やってはいけないことがやれてるだけなのか教えてください
0376デフォルトの名無しさん
2013/04/22(月) 22:24:41.970377デフォルトの名無しさん
2013/04/22(月) 22:26:44.310378デフォルトの名無しさん
2013/04/22(月) 22:27:28.42B の定義が見えてないだけでは?
後者はB のインスタンスを作ってないからコンパイルできているだけのような気が。
0379デフォルトの名無しさん
2013/04/22(月) 22:29:33.23Cでは「pointer to structure typeは皆同じサイズ、それ以外は知らん」となってる。
でもC++ではそもそもオブジェクトポインターはメモリアドレスと規定されているし
Cみたいな記述は見つけられなかった。
ISO/IEC 14882:2011の3.9には「sizeof UNKA* is known」と
例があるしきっと安全だろううん。 ※UNKOは不完全型の配列
0380デフォルトの名無しさん
2013/04/22(月) 22:57:35.640381デフォルトの名無しさん
2013/04/22(月) 23:18:14.81規格上は
不完全(なあるクラス)型へのポインタの大きさ == (完全なその)クラス型へのポインタの大きさ
は保証されない
>>340の例が動くのは
・A.cppとB.cppを不完全型へのポインタと(完全な)クラス型へのポインタが
同じ大きさであるように実装された同じコンパイラでコンパイルした場合
・A.cppをコンパイルしたコンパイラでの不完全なTへのポインタの大きさと
B.cppをコンパイルしたコンパイラでのTへのポインタの大きさがたまたま一致した場合
とかの環境依存の結果でしかない
0382デフォルトの名無しさん
2013/04/22(月) 23:24:33.21>は保証されない
いやそれはおかしい
0383デフォルトの名無しさん
2013/04/22(月) 23:25:21.84規格を引用しない限り信用しない
0384デフォルトの名無しさん
2013/04/22(月) 23:30:29.052:s * ps1;
3:struct s{};
4:s * ps2;
ps1とps2のサイズが違ったらオカルトだぜ。
0385デフォルトの名無しさん
2013/04/22(月) 23:58:21.150386デフォルトの名無しさん
2013/04/23(火) 00:33:21.98となると、サイズが違ったらこうなるわけか
struct s {
s* p;
};
s x;
x.p = &x; // NG
リスト作れねえ
0387デフォルトの名無しさん
2013/04/23(火) 00:45:48.71クラス定義内の前方参照は2回翻訳した時に
最初と同じ意味でなければならないから
途中のs*p;が既にアウチ。
C++的には「未定義だけどチェックはされない」
動くのは偶然ということになる
0388デフォルトの名無しさん
2013/04/23(火) 00:51:34.98マシン性能が上がってくると需要がなくなっていくのはどうするの?
0389デフォルトの名無しさん
2013/04/23(火) 01:03:45.860390デフォルトの名無しさん
2013/04/23(火) 01:49:53.10> struct s {
> s* p; // (1)
> }; // (2)
>
> s x;
> x.p = &x; // NG
少なくともそのケースだけなら例えば(1)の時点で sizeof(s*)==8、(2)以降は sizeof(s*)==4 (s.pは4バイト+padding4バイト)
みたいな扱いになるなら問題にはならないだろ
0391デフォルトの名無しさん
2013/04/23(火) 02:03:29.22否定するために根拠を求めるダブスタ野郎は最低のクズだから誰かそうならとっとと消えてね
で>>379がいうことに該当するCの規格の箇所を誰かが示して
C++で規定されてない事はCの規格に従う+不完全な構造体も構造体の内
ということで収めちゃえばいいんじゃないの
0392デフォルトの名無しさん
2013/04/23(火) 02:37:37.91つMS-DOS系メモリモデル/farポインタ、nearポインタ
0393デフォルトの名無しさん
2013/04/23(火) 06:45:26.19ISO/IEC 9899:1999 3.2.5Type 26
『All pointers to structure types shall have the same representation and alignment requirements as each other.
All pointers to union types shall have the same representation and alignment requirements as each other.
Pointers to other types need not have』
0394デフォルトの名無しさん
2013/04/23(火) 06:46:39.410395デフォルトの名無しさん
2013/04/23(火) 07:32:50.95不完全型へのポインタが違うサイズなんて
ソース出して見ろよヲラ
0396デフォルトの名無しさん
2013/04/23(火) 07:37:27.91farついてないから両方nearポインタじゃね?
採用するメモリモデルによってかわる。
small もでるなら両方 near、large モデルなら両方 far だが、compact モデルや medium? モデルだったら一方が far なら一方は near という風だったはず、huge モデルはよくわからない‥‥
0398デフォルトの名無しさん
2013/04/23(火) 09:12:56.73s* a = nullptr; //8byte
struct s {};
s b, *c = &b; //4byte
std::swap(a, c); //www
0399デフォルトの名無しさん
2013/04/23(火) 11:18:39.02>>386と同じ話だけど
0400デフォルトの名無しさん
2013/04/24(水) 00:38:58.46http://ja.wikipedia.org/wiki/%E3%82%B3%E3%83%B3%E3%83%9E%E6%BC%94%E7%AE%97%E5%AD%90
・「未定義動作」の節で、コード内のコメントでは不定と書かれています。「未定義」と「不定」は同じ意味でしょうか。
・i++, i++; がダメなのは理解しましたが、(i, j) = 7; がダメな理由が分かりませんでした。
「副作用完了点で変数へアクセスしようとしている」と書かれていますが、
この副作用完了点は具体的にどこなのかと、「変数へアクセス」の変数とはiかjどちらのことか、教えてください。
0401デフォルトの名無しさん
2013/04/24(水) 01:00:24.42「不定」とは「unspecified」の訳で、いくつかの動作パターンが考えられる時にどの
パターンで実行されるかは処理系次第という意味
「未定義」とは「undefined」の訳で、「これを実行したら『鼻から悪魔』、つまり
何が起きるか分かりませんよ、という警告を込めた意味
0402デフォルトの名無しさん
2013/04/24(水) 01:01:44.940403デフォルトの名無しさん
2013/04/24(水) 01:14:31.37副作用完了点は(i, j)のとじカッコの位置
普通ならjが評価されて戻るのだが、カンマ演算子が使われると最後の評価点まで
順に評価されるため、カッコが使われるとカンマ演算子の副作用完了点とぶつかって
どちらを優先すべきかコンパイラには分からない
変数へのアクセスには2種類あり、右辺値と左辺値がある
右辺値は代入不可能、左辺値は代入可能(ただし変更可能の場合に限る)
カンマ演算子もカッコもこの場合は代入可能な左辺値を返すために、おそらく
jに代入されると予想されるが、iの評価した結果をどうするかが分からず、
警告を発するコンパイラがありそうだ
0404デフォルトの名無しさん
2013/04/24(水) 01:29:24.95なにを意味不明なことを言ってんだ
0405デフォルトの名無しさん
2013/04/24(水) 01:30:49.46代入演算子が最終的に評価されてるぞ
0406デフォルトの名無しさん
2013/04/24(水) 21:28:09.29#defineと全く同じですか?
0407デフォルトの名無しさん
2013/04/24(水) 21:29:19.030408デフォルトの名無しさん
2013/04/24(水) 21:49:19.34いくらなんんでもあんまりだと思ったので記事訂正しといた。
0409デフォルトの名無しさん
2013/04/25(木) 09:14:58.62constと同じってことでOK?
0410デフォルトの名無しさん
2013/04/25(木) 10:21:32.740411デフォルトの名無しさん
2013/04/25(木) 12:24:07.79enum: 数値に意味がなくて名前が重要。気の利いたデバッガなら名前を見られる
後で数値の割当てが変わっても平気
const: 数値自体に意味がある。式で計算に使うような場合
0412デフォルトの名無しさん
2013/04/25(木) 14:37:01.14いい加減なことを言うな
0413デフォルトの名無しさん
2013/04/25(木) 15:24:06.95じゃあ「いい加減じゃない」事を言ってみろカス
0414デフォルトの名無しさん
2013/04/25(木) 15:46:14.31> enum: 数値に意味がなくて名前が重要。
これさぁ。
コンパイラが勝手に値を書き換えても問題なく動作するところだけで使えということ?
0415デフォルトの名無しさん
2013/04/25(木) 15:53:12.080416デフォルトの名無しさん
2013/04/25(木) 16:53:30.740417デフォルトの名無しさん
2013/04/25(木) 17:03:06.73気の利いたデバッガなら名前→数値を見られる
0418デフォルトの名無しさん
2013/04/25(木) 17:49:39.46スレ間違ってない? ここは C++ だよ
C でさえ [] の中が整数とは限らないし
0419デフォルトの名無しさん
2013/04/25(木) 17:50:41.510420デフォルトの名無しさん
2013/04/25(木) 18:01:30.760421デフォルトの名無しさん
2013/04/25(木) 18:45:31.44int NUMBER={0,1,2,3};
return 0 NUMBER;
0422デフォルトの名無しさん
2013/04/25(木) 18:54:12.090423デフォルトの名無しさん
2013/04/25(木) 19:15:17.17勝手に変わることはないけれど、用途としてはその認識でいい。
デバッガの話はよくわからないけれど、値が意味を持つものにenumを使うべきじゃない。
enumは、名前や順番に意味があるとき使うもの。
値が重要、普遍でなければならない場合は、constやdefineを使うべき。
enumの使い時としては例えば
配列でmapみたいな指定に使ったり、値に依存する処理がカプセル化されているときとか?
逆に使えないのは、エラーコードかな?
同じプログラム内でなら問題にはならないけどログや終了値みたいに外部に公開するようなやつに使うのはまずい。
0424デフォルトの名無しさん
2013/04/25(木) 19:21:00.85都道府県コードにenumを使ってはいけないというわけか
0425デフォルトの名無しさん
2013/04/25(木) 19:25:54.68netinet/in.h に書かれることの多い
IPPROTO_TCP = 6,
のようなenumは、君の家では間違いなんだ?
0426デフォルトの名無しさん
2013/04/25(木) 19:57:41.24勝手に変わらない=確定しているもので
何がまずいんだよ
飛躍の一切ない論理を聞こうか
enumerate
0428デフォルトの名無しさん
2013/04/25(木) 21:42:13.43どうしようもない馬鹿
0429デフォルトの名無しさん
2013/04/25(木) 21:59:57.61圧縮とか画像とかのライブラリな。
あれ結構あるんだよな。
画像等のファイルヘッダーに入れるID情報をenumで列挙してるの。
君んちルールではルール違反でアウトになるよな。
君の会社と一緒に仕事するのは不可能だなあ。
0430デフォルトの名無しさん
2013/04/25(木) 22:21:11.84コード体系なんかも値が意味を持つたぐいじゃないだろうか。
enumを使うことの問題点は、定義する位置や直前の値にひきづられて変わりかねない値の不安定さ。
だから、値が意味を持つものには使うべきじゃないという話。
>>425
値に対する処理が、ある意味カプセル化されている部分で値そのものに、意味はないと思うのだけど、どうだろ?
もしも、値に意味がある場所でenumを使っているのだとしたら、本来はconstを使うところだとは思うな。
0431デフォルトの名無しさん
2013/04/25(木) 22:28:41.63値が意味を持つ場合にも使える
型が作られる事も重要
0432デフォルトの名無しさん
2013/04/25(木) 22:34:39.600433デフォルトの名無しさん
2013/04/25(木) 22:40:11.13こんなダメすぎる考え方は見たことないよ
このバカチンがー!
0434デフォルトの名無しさん
2013/04/25(木) 22:44:46.26char b = *static_cast<char*>( static_cast<void*>(&a) );
char c = *reinterpret_cast<char*>(&a);
bとcって何か違うんですか?
0435デフォルトの名無しさん
2013/04/25(木) 22:50:17.220436デフォルトの名無しさん
2013/04/25(木) 22:53:46.35列挙される数値の集合に意味があって、その意味にふさわしい名前を付けた方が良いから名前を付ける。
それがenum。
enum protocol {
tcp = 6,
udp = 17,
};
こうやってやると、TCPという意味のある数値の6に対してtcpという名前を付けられるし、
プロトコルという意味のある集合に対してprotocolという名前を付けられるじゃないか。
そしてprotocolという型まで生まれて、コンパイラはチェックできるようになるじゃないか。
意味があるから意味にふさわしくこれらのことをやるんだよ。
0437デフォルトの名無しさん
2013/04/25(木) 22:58:10.67ほぼ同じ
ただし、int より char の方がアラインメントの要請が厳しいうんこ環境があったら失敗するかもしれない
(普通はないと思われるが)
5.2.10 7 (C++11)
An object pointer can be explicitly converted to an object pointer of a different type.
When a prvalue v of type “pointer to T1” is converted to the type “pointer to cv T2”,
the result is static_cast<cv T2*>(static_cast<cv void*>(v))
if both T1 and T2 are standard-layout types (3.9) and
the alignment requirements of T2 are no stricter than those of T1,
or if either type is void.
0438デフォルトの名無しさん
2013/04/25(木) 23:00:00.89static_cast を重ねた場合は
元の型が分からないので
アラインメントのチェックができなくなる
0439デフォルトの名無しさん
2013/04/25(木) 23:01:00.02>>432
そんなあなたに enum-base
0440デフォルトの名無しさん
2013/04/25(木) 23:26:58.090441デフォルトの名無しさん
2013/04/25(木) 23:31:56.280442デフォルトの名無しさん
2013/04/25(木) 23:32:52.530443デフォルトの名無しさん
2013/04/25(木) 23:34:53.420444デフォルトの名無しさん
2013/04/25(木) 23:37:46.090445デフォルトの名無しさん
2013/04/25(木) 23:47:45.32const にするということは左辺値にするということで
その必要性を聞いている
右辺値参照に渡せなくなるという違いまであるんだぞ
0446デフォルトの名無しさん
2013/04/26(金) 01:29:32.71ポインタで生成したときのみですか?
0447デフォルトの名無しさん
2013/04/26(金) 01:50:28.550448デフォルトの名無しさん
2013/04/26(金) 01:58:21.00警告がウザいんだよ
0449デフォルトの名無しさん
2013/04/26(金) 06:01:23.09共変の戻り値についての相談です。
URLのコードにてAとCは継承関係にあるのは明らかなのになぜ「covariantでない」と言われるのでしょうか。
0450デフォルトの名無しさん
2013/04/26(金) 06:05:28.00極論に聞こえるのは型について無視した話をしているからだと思うけど、言ってることのコンセプトは
外部設計等、仕様上定義された値→const
内部設計等、プログラムの都合上定義した値→enum
という話を具体的にしてるだけなんだけどね。
まぁ、値を意味づけ、グループ化するというenumの用途も理解はしている。
0451デフォルトの名無しさん
2013/04/26(金) 06:33:10.20ビットフラグもenumで作ってるし
0452デフォルトの名無しさん
2013/04/26(金) 06:41:03.23ttp://codepad.org/WnQosPYb
?
そういう意味では >>430 に賛同するね
0454デフォルトの名無しさん
2013/04/26(金) 07:08:56.17Aにすれば同じ型なのでコンパイル通るのは分かるんです。
template使わなければ派生型を戻リ値にしても問題無いのにどうしてかなーと思いまして。
0455デフォルトの名無しさん
2013/04/26(金) 07:24:21.86数値に意味が有ろうと無かろうと
enumに決まっている。
constは老害
defineは犯罪者
0456デフォルトの名無しさん
2013/04/26(金) 07:29:38.08値に意味があるか
どうかももちろん重要な場面はあるけどそれより利点の「どのように使われるためにまとめたか」って
部分が重要かねぇ
0457デフォルトの名無しさん
2013/04/26(金) 07:33:38.18const は #define の代わりに C++ で推奨されるようになったもの
元々 enum を使っていたものは C++ でも enum を使う
enum を使わないようなものは const を使う
ただの単発の値や、特定の型を指定したい場合など、ね
この判断に右辺値か左辺値という話は全く出てこない
必要だから左辺値にしているわけではないし、
そもそも意図的に左辺値にしているわけでもない
たまたま左辺値だったというだけ
右辺値にしたいなら右辺値にすればいいだけ
そんなのはどうとでもない
0458デフォルトの名無しさん
2013/04/26(金) 07:34:10.62○そんなのはどうとでもなる
0459デフォルトの名無しさん
2013/04/26(金) 07:35:28.600460デフォルトの名無しさん
2013/04/26(金) 07:44:39.10個人的には、共変の戻り値型使うケースとして自分の型のケースしか脳内になかった。
http://ccf.myhome.cx:5000/result/700 Derived* だとどのコンパイラでも通らない
http://ccf.myhome.cx:5000/result/701 B<Derived,Base>* だとどのコンパイラでも通る
規格上これに引っかかるんだと思う(shall be complete at the point of declaration)。
> 14882/2011 10.3p8
>If the return type of D::f differs from the return type of B::f, the class type in the return type of D::f shall
>be complete at the point of declaration of D::f or shall be the class type D.
0461デフォルトの名無しさん
2013/04/26(金) 08:05:56.57なるほど。仕様なら仕方ないですね。別のアプローチ探してみることにします。
ありがとうございました。
0462デフォルトの名無しさん
2013/04/26(金) 11:05:37.95const が #define に取って代わるなんて妄想やめれ
const がなかった頃の #define を const ができてすぐ置き換えるとき、
リンクが必要になっていたのを憶えているか?
左辺値の話はここに含みを置いていたんだよ
標準では INT_MAX みたいな計算に使うマクロは
std::numeric_limits<int>::max() みたいに関数にしていたりもするし
「enum を使わないようなもの」とは整数でない定数のことで
おまえさんの妄想こそ関係ない
>>455-456に賛成
タイプ数が少なく済み(=読むのも早い)、{} でグループを明示できるし
強い型づけには enum-base や enum class まであるのに
こんなにメリットのあるものを感情論で毛嫌いするのはもったいない
0463446
2013/04/26(金) 11:05:55.48元の基底クラスのデストラクタをvirtualにするってことでOK?
0464デフォルトの名無しさん
2013/04/26(金) 12:04:52.960465446
2013/04/26(金) 12:11:58.58virtualの機能を使ったら
virtualを使ってる基底クラスのデストラクタをvirtualにするってことでOK?
0466デフォルトの名無しさん
2013/04/26(金) 12:32:46.46田中、どんだけ変動すると値上げ変更するんだろ
0467デフォルトの名無しさん
2013/04/26(金) 12:48:04.49めんどくさいから、派生させるつもりがあるなら virtual 付けとけ。
逆に、デストラクタに virtual 付いていなければ、派生禁止と考えておけ。
0468デフォルトの名無しさん
2013/04/26(金) 14:02:12.010469デフォルトの名無しさん
2013/04/26(金) 14:07:29.230470446
2013/04/26(金) 15:45:06.87教えてくれよぉぉぉぉぉぉぉぉぉぉぉぉぉぉぉ
0471デフォルトの名無しさん
2013/04/26(金) 16:09:47.34一番下が最大ではなくなるし、途中で=を使えば上下での大小関係も崩せる。
0472デフォルトの名無しさん
2013/04/26(金) 17:19:20.28わざわざ値が変わるようなことをして、これだからenumは駄目なんだよって
言いたいのか?
0473デフォルトの名無しさん
2013/04/26(金) 17:19:50.57>>467
0474デフォルトの名無しさん
2013/04/26(金) 17:20:37.62そんなことする馬鹿が悪い&>>471が馬鹿
0475デフォルトの名無しさん
2013/04/26(金) 19:59:03.66&&型の目的は「右辺値なのでムーブするチャンス」
って考えだろ。定数をムーブしてどうする。
そこはconst参照使うところ。
0476デフォルトの名無しさん
2013/04/26(金) 21:39:52.76えっ?
0477デフォルトの名無しさん
2013/04/27(土) 00:02:30.35遅かったな
>>462 の前なら少しはマシだったが
今さらそんな枝葉に噛みつくだけ恥の上塗りだ
整数は値で受けるもので、おまえみたいに const 参照するやつは異端
右辺値参照がよほど助け船に見えたようだな
0478デフォルトの名無しさん
2013/04/27(土) 00:14:58.040479デフォルトの名無しさん
2013/04/27(土) 00:45:43.07> const が #define に取って代わるなんて妄想やめれ
> const がなかった頃の #define を const ができてすぐ置き換えるとき、
> リンクが必要になっていたのを憶えているか?
> 左辺値の話はここに含みを置いていたんだよ
いつの話だよ
規格の出来る前の話は知らんが
C++のconstは静的リンケージでヘッダに書ける
> 標準では INT_MAX みたいな計算に使うマクロは
> std::numeric_limits<int>::max() みたいに関数にしていたりもするし
定数にすると浮動小数点型の時に困るから関数になってるだけ
それ以上の意味は無い
> 強い型づけには enum-base や enum class まであるのに
enum class は型付けが強すぎて const 定数の代わりには使えない
enum-base は別に良いのだけど、
型を作る意味が無ければやっぱり enum にする必要は薄い
というか C++11 が使える事前提だよねこれ
0480デフォルトの名無しさん
2013/04/27(土) 01:11:15.18いつの話だよ、をそのままお返ししよう
0481デフォルトの名無しさん
2013/04/27(土) 02:40:28.40いつかと訊かれたらC++は1998年の最初から?
ちなみに静的は内部の誤りだろうきっと。
>enum class は型付けが強すぎて const 定数の代わりには使えない
そりゃenumはサイズを指定するためのものじゃないからね。
当然、使うべきじゃない。
0482デフォルトの名無しさん
2013/04/27(土) 07:18:15.87enum はリストだから単体で使う意味が無いし、わかりにくくなるだけ。
明示的に最適な型宣言をして意味を持った変数名を付けるだけで良い。
0483デフォルトの名無しさん
2013/04/27(土) 09:07:59.46おう、内部リンケージの間違い
指摘ありがとう
0484デフォルトの名無しさん
2013/04/27(土) 09:58:54.32指定できるよアホ
>>482
たとえば int なら int であることが絶対条件になるまで
int と書かないほうが合理的だ
0485デフォルトの名無しさん
2013/04/27(土) 13:42:55.85値のグループはenum
これでよかですか?
0486デフォルトの名無しさん
2013/04/27(土) 13:45:27.23short <==> const short
long <==> const long
int <==> const int
? <==> enum
迷うのはおかしい
0487デフォルトの名無しさん
2013/04/27(土) 13:45:36.930488デフォルトの名無しさん
2013/04/27(土) 13:53:03.66趣味なら好きなの使っとけ
このスタンスでそうそう困る事は無いし、そのうち経験から使い分けができるようになる
0489デフォルトの名無しさん
2013/04/27(土) 14:03:29.03>int <--> const int
constと非constの対応じゃなくて
constかenumのどちらを使用すべきかの
話だったんだけど
日本語読めない>>486には理解できなかったようだね。
0490デフォルトの名無しさん
2013/04/27(土) 14:11:48.550491デフォルトの名無しさん
2013/04/27(土) 14:14:38.53final int定義が羅列してあって
どのメソッドがどの値を返すのか書かれて
いなくて発狂しそうになります。
0492デフォルトの名無しさん
2013/04/27(土) 14:18:44.780493デフォルトの名無しさん
2013/04/27(土) 14:19:38.77ベースの型のサイズ
何も書かなければintのサイズ
0494デフォルトの名無しさん
2013/04/27(土) 14:48:28.52intのサイズが保証されるのはenum baseがintのenumと
emum baseのないenum class/struct (scoped enum)と
Cのenumだけ
enum baseのないenum class/structでないenum (unscoped enum)のサイズは処理系定義
(いくつかの条件はあるけどややこしいので略)
0495デフォルトの名無しさん
2013/04/27(土) 19:02:50.00enum baseがあればいいけど
0496デフォルトの名無しさん
2013/04/27(土) 21:02:05.350497デフォルトの名無しさん
2013/04/27(土) 21:07:10.94移植性がないのはintだろうとenumどろうと同じだぜ。
0498デフォルトの名無しさん
2013/04/27(土) 21:24:00.710499デフォルトの名無しさん
2013/04/27(土) 21:35:13.88enumの内容を変更したらサイズが変わった、
という事もありうる
移植性関係無しに危険
0500デフォルトの名無しさん
2013/04/27(土) 21:37:33.16enum E { A = 0xFFFFFFFF };
int main() { std::cout << sizeof(E) << std::endl; }
出力 : 4
#include <iostream>
enum E { A = 0xFFFFFFFFFFFFFFFF };
int main() { std::cout << sizeof(E) << std::endl; }
出力 : 8
0501デフォルトの名無しさん
2013/04/27(土) 21:38:27.650502デフォルトの名無しさん
2013/04/27(土) 21:43:34.09バイナリで書き込む場合、C++03まではenumは厳禁
C++11ならenum baseとcstdintで頑張れる
0503デフォルトの名無しさん
2013/04/27(土) 21:44:58.49>>499のおつむの方がヤバい。
0504デフォルトの名無しさん
2013/04/27(土) 21:50:58.43お前のプログラムは怖いから保守したくないわ
0505デフォルトの名無しさん
2013/04/27(土) 21:57:05.42バイトオーダー依存しまくりの
KUSOなプログラムは保守したくないわ
0506デフォルトの名無しさん
2013/04/27(土) 22:02:11.36お前は独自のフォーマットのファイルしか扱わないのか
0507デフォルトの名無しさん
2013/04/27(土) 22:03:21.650508デフォルトの名無しさん
2013/04/27(土) 22:05:35.18インディアン固定は問題ないけど、
プログラムがバイトオーダ依存
なのはよくないってことでしょ
0509デフォルトの名無しさん
2013/04/27(土) 22:06:08.49バイトオーダーで氏ぬやつって低脳だろ
0510デフォルトの名無しさん
2013/04/27(土) 22:09:16.09読む時に現在のバイトオーダに応じて変換すればいいだけ
気にする必要がない環境なら気にするだけ時間の無駄
0511デフォルトの名無しさん
2013/04/27(土) 22:16:13.44単体試験が増える方が無駄。
バイトオーダー依存のプログラム書く奴は
大抵は漏れなくintサイズ依存
0512デフォルトの名無しさん
2013/04/27(土) 22:17:44.80どの環境でも単体試験するのは当然だろ
何を言い出すんだこいつは
0513デフォルトの名無しさん
2013/04/27(土) 22:25:49.010514デフォルトの名無しさん
2013/04/27(土) 22:42:09.19だよな
0515デフォルトの名無しさん
2013/04/27(土) 22:47:47.420516511
2013/04/27(土) 22:48:26.38>どの環境でも単体試験するのは当然だろ
んなこたーない。
フォーマット仕様が「2バイト符号無し整数
リトルインディアン」って書かれてたら
unsigned v = a[ofs+0]<<8 |a[ofs+1]
で書いておけばコードは一通り。
わざわざバイトオーダー変換ありと
なしの試験が必用となるコードを
書く方が無駄
0517511
2013/04/27(土) 22:49:10.390518デフォルトの名無しさん
2013/04/27(土) 22:50:35.500519デフォルトの名無しさん
2013/04/27(土) 22:52:00.66うわぁ
0520デフォルトの名無しさん
2013/04/27(土) 22:52:13.340521デフォルトの名無しさん
2013/04/27(土) 23:05:15.97ワロタw
0522デフォルトの名無しさん
2013/04/27(土) 23:11:17.51いや、試験しろよ
動くよ(多分)じゃ製品にならん
お遊びならいいんだろうが
0523デフォルトの名無しさん
2013/04/27(土) 23:21:14.18試験しないんじゃなくて
環境非依存の書きかたにすれば
試験項目が減るって話でわ?
>>520のいうとおりライブラリ
を使うのは賛成
0524デフォルトの名無しさん
2013/04/27(土) 23:28:12.19両環境で同じ試験を一通りするもんじゃないの
0525デフォルトの名無しさん
2013/04/28(日) 00:45:58.32言語仕様で保証された範囲内で書かれてるんなら
リグレッション試験相当で十分じゃね?
高級言語使ってんだから。
0526デフォルトの名無しさん
2013/04/28(日) 00:57:47.49エンディアンの変換ロジックをテストしてもエンディアン自体をテストするのはまれじゃないか?
どんな環境でも動くぜ的な趣味で作るようなやつならいざしらず、複数のアーキテクチャに対応するとか、今となっては一般的じゃないな
0527デフォルトの名無しさん
2013/04/28(日) 01:28:22.22環境依存なんてそうそう無いぜ
自分のコードが処理系依存かどうか
意識するのはあたり前じゃねーの?
多バイトオブジェクトのメモリ
イメージをそのまま保存とか怖すぎる
0528デフォルトの名無しさん
2013/04/28(日) 01:57:52.39あるかどうか分からない移植を考えていちいち対応するのも馬鹿らしい
0529デフォルトの名無しさん
2013/04/28(日) 02:02:45.16動くよ(多分)じゃ製品にならん
お遊びならいいんだろうが
0530デフォルトの名無しさん
2013/04/28(日) 02:38:31.70intの値総当たりで試験しないと気が済まな
そうなタイプだな。
言語仕様を知らないから処理系依存しまくりの
ウンココードを量産して
PCメーカーごと、HDD容量ごと、
ディスプレイの解像度ごとに全単体試験を
やり直してるに違いない。
0531デフォルトの名無しさん
2013/04/28(日) 03:01:26.050532デフォルトの名無しさん
2013/04/28(日) 03:35:27.590533デフォルトの名無しさん
2013/04/28(日) 07:52:34.96かわいー♪
0534デフォルトの名無しさん
2013/04/28(日) 07:55:01.97#ifndef
#error
0535デフォルトの名無しさん
2013/04/28(日) 09:37:24.91世間は大型連休だと言うのに
家に引きこもって2ちゃんとオナニーしか
することないんですか?
0536デフォルトの名無しさん
2013/04/28(日) 09:53:25.42/⌒ヽ ヤル気でない
く/・�� ⌒ヽ
| 3 (∪ ̄]
く、・�� (∩ ̄]
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
0537デフォルトの名無しさん
2013/04/28(日) 10:17:14.08かわいー♪
でも卵の割り方に依存しない書き方って結構難しかった記憶があります。http://toro.2ch.net/test/read.cgi/tech/1313183984/35
両宗教の流儀とも環境を準備したいんですけれどもビッグエンディアンの環境ってなにがあるんでしょう、ぜひとも手元においておきたいものですが。
世界一の放射光施設の一般見学に参加しました。ポスターの前でわけわかんなくてうんうんうなっていると、宗教勧誘の人が酔ってきていろいろ教義解説していただけたんですが余計にわけわかんなくなりました‥‥。
世界一ってすごいんだなあ二番じゃだめなんだなあ、て思いました。
結局ポスターセッションだけで結局一日が終わってしまって、結局設備を見る暇がなかった‥‥‥。
0540デフォルトの名無しさん
2013/04/28(日) 12:30:01.76…ミドルエンディアンの機械とかって入手できんのかこれ
0541デフォルトの名無しさん
2013/04/28(日) 14:00:20.50なんか前はスレあったみたいなんだけど、落ちてるみたいで・・。
0542デフォルトの名無しさん
2013/04/28(日) 14:07:33.710543デフォルトの名無しさん
2013/04/28(日) 14:48:18.70ここでもいいんじゃない?もしかすると質問に答えてくれる人がいるかもしれないし
0544デフォルトの名無しさん
2013/04/28(日) 15:07:14.84見てきましたが今はないぽいですね。
>>543
そうします。
objective-Cを cygwin上でかつ、clangでコンパイルしてる人いませんか?
この時点でかなレアケースだとは思いますが・・・。
0545デフォルトの名無しさん
2013/04/28(日) 20:12:52.23代入や計算結果を自動的に範囲制限(いわゆるClip)(min〜max)してくれたり、
あるいは端を超えると裏回ってくれる(いわゆるWrap)(min〜max<-min〜max->min〜max〜)型ってありませんか?
自分で作れるんですが、標準のものがあればそれを使いたいです。
0546デフォルトの名無しさん
2013/04/28(日) 20:15:19.230547デフォルトの名無しさん
2013/04/28(日) 20:16:05.630548545
2013/04/28(日) 20:17:28.420549デフォルトの名無しさん
2013/04/28(日) 21:02:33.32たとえおてんとうさまがゆるしても
おいらがゆるさねぇ
0550デフォルトの名無しさん
2013/04/28(日) 22:05:21.13> C++あるいはVC++なんかで、
> 代入や計算結果を自動的に範囲制限(いわゆるClip)(min〜max)してくれたり、
> あるいは端を超えると裏回ってくれる(いわゆるWrap)(min〜max<-min〜max->min〜max〜)型ってありませんか?
> 自分で作れるんですが、標準のものがあればそれを使いたいです。
なければテンプレートで作るかな。
閉区間や開区間で判定・クランプするテンプレートとか、
clipはclampとかでたまにやってる。warpもやるかな。
なんかboostとかでありそうだけど。
0552デフォルトの名無しさん
2013/04/29(月) 00:17:29.18std::list<hoge> hogeList;
std::ofstream file("test", std::ifstream::binary);
file.write( (char*)&hogeList, sizeof(hogeList) );
とやってもリスト構造の保存はできませんよね、どうすればリスト構造の保存できますか?
0553デフォルトの名無しさん
2013/04/29(月) 00:24:21.360554デフォルトの名無しさん
2013/04/29(月) 00:31:24.51少し探してみるだけでも、次のような事例が見つかります:
BERT(githubで採用:Introducing BERT and BERT-RPC)
Thrift(Facebookが開発:Thrift: Scalable Cross-Language Services Implementation)
Avro(Hadoopで採用されそう)
Protocol Buffers(Googleが開発)
BSON(mongoDBで利用)
MessagePack(kumofs などで利用)
http://d.hatena.ne.jp/viver/20100324/p1
0555デフォルトの名無しさん
2013/04/29(月) 01:49:56.49>>554
ありがとうございます
0556デフォルトの名無しさん
2013/04/29(月) 05:07:36.940557デフォルトの名無しさん
2013/04/29(月) 22:54:39.24hoge厨は二度と来るな
0558デフォルトの名無しさん
2013/04/29(月) 22:58:04.470559デフォルトの名無しさん
2013/04/29(月) 23:00:33.81クスリでもやられています?
0560デフォルトの名無しさん
2013/04/29(月) 23:30:26.490561デフォルトの名無しさん
2013/04/30(火) 14:34:34.38{
void test(){}
template<typename T> void test(){}
};
A a;
a.test();
a.test<int>();
この2つのtest()は正しく区別されますか?
0562デフォルトの名無しさん
2013/04/30(火) 14:37:13.030563デフォルトの名無しさん
2013/04/30(火) 14:46:41.840564デフォルトの名無しさん
2013/04/30(火) 14:56:02.54急いでます
0565デフォルトの名無しさん
2013/04/30(火) 14:56:19.160566デフォルトの名無しさん
2013/04/30(火) 14:59:52.160567デフォルトの名無しさん
2013/04/30(火) 15:03:30.74a.template test<int>(); って書かないとだめなんじゃないの?
非テンプレートな同名のメンバ関数の存在にかかわらず。
0568デフォルトの名無しさん
2013/04/30(火) 15:06:00.83アスぺ「>>567 明示して使うのが前提ならそうだろう
0569デフォルトの名無しさん
2013/04/30(火) 15:12:39.87んなこたーない
test<>()でいけるはず
0571デフォルトの名無しさん
2013/04/30(火) 15:54:06.35上級者でも(むしろ上級者ほど)規格片手にコード
書かなきゃいけない言語はおかしいだろ。
何のためのプログラミング言語だよ
0572デフォルトの名無しさん
2013/04/30(火) 16:00:50.900573デフォルトの名無しさん
2013/04/30(火) 16:01:19.06使い捨てのプログラムならそんなことしなくていいし、長期間にわたって正しく動くことが
要求されてるプログラムならどんな言語で書いてもそうなると思うんだけど。
本当にC++のせいなのかい?
0574デフォルトの名無しさん
2013/04/30(火) 17:12:13.82typename 前置とか private 継承みたいに、マジクソなところは確かにある
しかも C++11 という大改訂のチャンスを逃して残ったのが大量にあるし
0575デフォルトの名無しさん
2013/04/30(火) 17:15:44.840576デフォルトの名無しさん
2013/04/30(火) 17:39:44.430577デフォルトの名無しさん
2013/04/30(火) 17:42:51.130578567
2013/04/30(火) 19:02:09.16http://d.hatena.ne.jp/faith_and_brave/20080128/1201510970
0579デフォルトの名無しさん
2013/04/30(火) 19:27:46.46あたまに入ってるな
0580デフォルトの名無しさん
2013/04/30(火) 19:35:30.46リーマンショックでやばい時期だったから、必死にもなるわ
C#だけどな
0581デフォルトの名無しさん
2013/04/30(火) 19:52:00.45↓のコメントアウトはずしてエラーメッセージ読んでみ
http://ideone.com/9ogFHt
0582デフォルトの名無しさん
2013/04/30(火) 20:06:23.83a.testが何物かわからないのでtemplateが必用。
aの型がわかっているときは要らない、なのかな。
こんなくだらないことでおまえら大先生の意見が分かれるとは
やはりC++はKUSOだな。
0583デフォルトの名無しさん
2013/04/30(火) 20:12:01.020584デフォルトの名無しさん
2013/04/30(火) 20:15:53.53template限定子はtemplate引数型のtemplateメンバを使う際に付けるもの
template引数型はどんなメンバを持つか分からないから、
とりあえず変数か通常の関数として解釈される
それを曲げてtemplateメンバと解釈させたければtemplate限定子が必要になるし、
型と解釈させたければtypename限定子が必要になる
これ以外のケースでは限定子は使われないし、使えない
入門書にも書いてあるレベルだと思うが
0585デフォルトの名無しさん
2013/04/30(火) 20:20:21.97間違いだらけのクラス概説で終わるから
0586デフォルトの名無しさん
2013/04/30(火) 20:23:27.970587デフォルトの名無しさん
2013/04/30(火) 20:28:09.72使い回されるからこういいった間違いが起こる。
やっぱりC++はウンコだね おウンコ
0588デフォルトの名無しさん
2013/04/30(火) 20:28:12.68http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#468
0589デフォルトの名無しさん
2013/04/30(火) 20:30:55.030590デフォルトの名無しさん
2013/04/30(火) 20:33:53.740591デフォルトの名無しさん
2013/04/30(火) 20:45:34.590592デフォルトの名無しさん
2013/04/30(火) 20:47:33.03アスぺにはアスペな回答をしてあげよう
誰も付けちゃいけないなんて言ってないよ?
0593デフォルトの名無しさん
2013/04/30(火) 20:57:50.530594デフォルトの名無しさん
2013/04/30(火) 20:59:38.210595デフォルトの名無しさん
2013/04/30(火) 21:00:58.176つ前のレスくらい嫁よ
0596デフォルトの名無しさん
2013/04/30(火) 21:07:13.19class hoge って...
これで情報はウンコって決定だな
0597デフォルトの名無しさん
2013/04/30(火) 21:10:29.76ファイル1:
extern int g;//外部リンケージ
ファイル2:
static int g;
extern int g;//内部リンケージ
こんな言語がウンコでないなわけがない
0598デフォルトの名無しさん
2013/04/30(火) 21:13:02.82>C++がKUSO
だからC#なんてのを作ったんだろ
0599デフォルトの名無しさん
2013/04/30(火) 21:14:28.23C++03まではつけてはいけない
>>588が言ってんのはC++11の話
0600デフォルトの名無しさん
2013/04/30(火) 21:21:01.52いや、もともと>>567は書く必用があるかどうかの議論でしょ。
なんで>>588は書いてもいいかどうかになっちゃうのさ
0601デフォルトの名無しさん
2013/04/30(火) 21:36:28.50C++03ではaの型がテンプレート引数なら必須、それ以外は「つけちゃいけない」
C++11では他のケースでも「書いていい」と言ってるのが>>588
0602デフォルトの名無しさん
2013/04/30(火) 21:36:40.28externって…何だっけ?
0603デフォルトの名無しさん
2013/04/30(火) 21:40:11.630604デフォルトの名無しさん
2013/04/30(火) 21:40:40.94C++11では明示的にするために
a.template test<int>(); がOKになった
当然、a.test<int>();もOK
で、C++03(まで?)では明示は駄目だから
a.test<int>(); にしる
こんな感じか
0605デフォルトの名無しさん
2013/04/30(火) 21:43:58.17aの型がテンプレート引数でない場合は、な
>>603
externなんぞ害悪にしかならんので忘れてよろしい
0606デフォルトの名無しさん
2013/04/30(火) 21:54:11.85○ a.template test<int>();
× a.test<int>();
aの型がテンプレでないとき
△ a.template test<int>();//昔はダメ。G++は今もダメ?
○ a.test<int>();
勉強になったよ。奥が深いね…
0607デフォルトの名無しさん
2013/04/30(火) 21:55:52.77アホなこと聞くけど
aの型がテンプレート引数ってコードだとどんなの
0608デフォルトの名無しさん
2013/04/30(火) 21:57:28.37>>578をよみなおせ!
0609デフォルトの名無しさん
2013/04/30(火) 22:08:01.46aの型がテンプレでないとき
△ a.template test<int>();//昔はダメ。G++は今もダメ?
はC++11の仕様はNG? それともOK?
0610デフォルトの名無しさん
2013/04/30(火) 22:09:53.3611もOK。
>>588にあるよう、14.2の第5段落に
ほぼ同じことが書いてある
0611デフォルトの名無しさん
2013/04/30(火) 22:21:56.45どんだけ人生の貴重な時間を
ウンコの時間に割いてるわけ
0612デフォルトの名無しさん
2013/04/30(火) 22:23:16.30こんなマイナーな仕様変更とかどこで情報得てるんだ? >>588は
0613デフォルトの名無しさん
2013/04/30(火) 22:29:49.03自称アスペさんじゃないの?
GCCも実装漏れするマイナー仕様変更が
ぱっと出てくるなんて
0614デフォルトの名無しさん
2013/04/30(火) 22:36:11.95参考になる
0615デフォルトの名無しさん
2013/05/01(水) 01:03:40.70いちいち書かないとTとconst T&の呼び分けすらしてくれない欠陥品をよく使ってるもんだと感心します
プリミティブのconst参照なんて認めて誰が得するんですか?
限定子やら特殊化やらで結局ゴチャゴチャさせんのなら
素直にオーバーロードした方が綺麗で早そうだね^^;
アッタマ悪ぃ言語w
0616デフォルトの名無しさん
2013/05/01(水) 01:21:38.39だけどテンプレートを暗黙でインスタンス化
しようとしたらヘッダーが肥大化するし、
翻訳単位ごとに重複したインスタンスを
ODRで一つにする動作も見苦しい。
C#は実行時にインスタンス化だっけ?
0617デフォルトの名無しさん
2013/05/01(水) 01:45:32.34正直、スマンカッタ。反省してる。
今度からf(T &&)とf(T const &)のオーバーロードだけにしてくれ。
0618デフォルトの名無しさん
2013/05/01(水) 06:21:00.270619デフォルトの名無しさん
2013/05/01(水) 17:02:08.29ファイル2でコンパイルエラーだろ。
そんな結果になるのならクソなのはコンパイラのほうじゃないの?
0620デフォルトの名無しさん
2013/05/01(水) 17:10:16.04規格も知らんアホは黙っとけ
0621デフォルトの名無しさん
2013/05/01(水) 17:13:26.327.1.1 [dcl.stc] p8 "The linkages implied by successive declarations for a given entity shall agree."
0622デフォルトの名無しさん
2013/05/01(水) 17:20:02.47http://stackoverflow.com/questions/14403796/can-a-variable-be-declared-both-static-and-extern
0623デフォルトの名無しさん
2013/05/01(水) 17:36:33.00炎上勉強法はもういいです
0624デフォルトの名無しさん
2013/05/01(水) 17:38:32.53炎上学習法なら知ってるけどwwwwwwwwwwwwwwwwwwwww
0625デフォルトの名無しさん
2013/05/01(水) 17:51:53.99ちゃんと乾燥させておくんだ
0626デフォルトの名無しさん
2013/05/01(水) 18:06:38.39Cのほうはちゃんと規格の文言に基づいて説明できてるけど、C++のほうには対応する文言が
無いから、やっぱり>>621のルールでアウトなんじゃないの?
0627デフォルトの名無しさん
2013/05/01(水) 18:07:36.13何でそうなるんだっけ?
CだとISO/IEC 9899:2011の6.2.2-4に明記してある。
if the prior declaration specifies internal or
external linkage, the linkage of the identifier at the later declaration is the same as the
linkage specified at the prior declaration.
C++の7.1.1には確かに例があるけど、定義は3.5を見ろと書いてあって
3.5のどこを読んだらそうなる?
3.5の内部リンケージの定義に該当しないような
0628デフォルトの名無しさん
2013/05/01(水) 19:41:52.32おまえらパソコンの大先生が古文書片手に議論しても
意見がまとまらないなんて、国際標準が意味をなしてない
0629デフォルトの名無しさん
2013/05/01(水) 20:20:04.580630デフォルトの名無しさん
2013/05/01(水) 20:46:53.863.5のパラグラフ3〜4と7.1.1のパラグラフ8を総合した結果だろうな
分かりづらいけど、例もあるし、エラーにならないのは間違いはない
0631デフォルトの名無しさん
2013/05/01(水) 21:03:17.14国語は苦手なんで教えて欲しい
3.5 段落3
名前空間スコープの名前が内部リンケージとなる条件は以下(俺訳)
a variable, function or function template that is explicitly declared static; or,
a variable that is explicitly declared const or constexpr and neither explicitly declared extern nor
previously declared to have external linkage; or
a data member of an anonymous union.
3.5 段落4
名前空間スコープの名前は前述の内部リンケージでない限り外部リンケージ(俺訳)
7.1.1 段落8
static int b; // b has internal linkage
extern int b; // b still has internal linkage ←???
0632デフォルトの名無しさん
2013/05/01(水) 21:04:56.23どこをどう読んだら>>597の例が>>621のルールに反していないと言えるのか、詳しく。
例以外に根拠にないなら、例が不正ということになるだろうし。
0633デフォルトの名無しさん
2013/05/01(水) 21:07:09.57>>627は定義と例が矛盾してるって言ってんだろ
0634デフォルトの名無しさん
2013/05/01(水) 21:15:27.60・後続の宣言は同じリンケージを持つ(7.1.1)
・externを付けると必ず外部リンケージになるという項目は存在しない
これらを総合すると・・・
0635デフォルトの名無しさん
2013/05/01(水) 21:37:42.68> ・後続の宣言は同じリンケージを持つ(7.1.1)
こんなことが書いてあるのは見当たらない・・・該当箇所の引用もくれ。
0636デフォルトの名無しさん
2013/05/01(水) 21:40:26.05>後続の宣言は同じリンケージを持つ(7.1.1)
これは
>each declaration declaring the same variable name or the same overloading of a function name shall imply
the same linkage
のこと?
だとしたら3.5の4-5と7.1.1の8が矛盾してない?
0637デフォルトの名無しさん
2013/05/01(水) 21:45:19.240638デフォルトの名無しさん
2013/05/01(水) 21:46:44.90externごときでもめんなよ大先生ども
0639デフォルトの名無しさん
2013/05/01(水) 21:47:47.65何に使うんだっけ
0640デフォルトの名無しさん
2013/05/01(水) 21:51:31.370641デフォルトの名無しさん
2013/05/01(水) 21:52:23.040642デフォルトの名無しさん
2013/05/01(水) 21:55:55.72>>636はサンクス
>>597のgを解析する際にも恐らく3.5のパラグラフ3が適用されるのではないだろうか
いつstaticが付けられたかにまで言及してないので
0643デフォルトの名無しさん
2013/05/01(水) 21:59:33.240644デフォルトの名無しさん
2013/05/01(水) 21:59:44.68> いつstaticが付けられたかにまで言及してないので
その解釈だと extern が先で static が後のケースも通らないとおかしいんじゃないか?
0645デフォルトの名無しさん
2013/05/01(水) 22:02:56.683.5-3 A name having namespace scope (3.3.6) has internal linkage if it is the name of
a variable, function or function template that is explicitly declared static
これを読んで「その変数はexternでも以前の宣言でstaticだった場合も」
と思うのなら国語力が怪しい
0646デフォルトの名無しさん
2013/05/01(水) 22:04:22.540647デフォルトの名無しさん
2013/05/01(水) 22:14:13.34プログラムは上から順番に解析されるので、
その場合はexternを解析する時点ではまだstaticがないので3.5のパラグラフ4に従って外部リンケージになる
staticを解釈すると3.5のパラグラフ3に従って内部リンケージになるけど、7.1.1に反するのでエラー、
じゃないかな
>>645
いや、そんなことはない
その項目は識別子に対する規則であって宣言対する規則ではないから、主語から見て
まあ、Cではすっきり書かれていた規則が
なんでここまで分かりにくくなってるんだろうとは思う
0648デフォルトの名無しさん
2013/05/01(水) 22:51:25.28>いや、そんなことはない
ではexternは(明示的なstaticがないから)内部リンケージでないということになるのでは?
わかりにくいでなく、3.5の定義からどうしてexternが内部リンケージ足り得るのか、ご教示願いまする
0649デフォルトの名無しさん
2013/05/01(水) 23:03:35.10おまいらパソコンの大先生が古文書片手に議論しても
意見がまとまらないなんて、国際標準が意味をなしていない
スカトロプレイもたいがいにして、仕事が他言語に奪われてレーゾンデートルが無くなった事実を認識したほうがいい
0650デフォルトの名無しさん
2013/05/01(水) 23:18:33.58実は先行する宣言含めて static が付いてないから、ってことかー。わかりにくいなー。
0651デフォルトの名無しさん
2013/05/01(水) 23:20:52.193.5は主語が識別子なので、
例えば、宣言以外で出てきたgに対しても適用される
こう書けば分かると思う
static int g; ← 内部リンケージ
void foo(){g=1;} ← 3.5により、内部リンケージ
extern int g; ← 3.5により内部リンケージ
0652デフォルトの名無しさん
2013/05/01(水) 23:24:49.85>わかりにくいな
だから>>597で糞認定された
>>651
わかりやすいな
言語仕様はわかりにくいけど
0653デフォルトの名無しさん
2013/05/01(水) 23:38:50.08ダウト
これはgが前のgと同じと判断する前に外部リンケージ変数の宣言と見なすべきで
結果、同名の異なるリンケージ宣言でエラーとすべき
0654デフォルトの名無しさん
2013/05/01(水) 23:46:10.05そんなこと書いた規則は存在しない
こう書いた方が分かりやすいか
static int g;
void foo(){g=1;} ← 3.5により内部リンケージ
extern int g;
void bar(){g=2;} ← 3.5により内部リンケージ
先入観を捨てて規格と照らし合わせる事だ
0655デフォルトの名無しさん
2013/05/01(水) 23:49:58.12static int g;
void foo(){g=1;} ← 3.5により内部リンケージ
extern int g; ←★これは何だったのおかしくね?
void bar(){g=2;} ← 3.5により内部リンケージ
0656デフォルトの名無しさん
2013/05/02(木) 00:24:45.41規格を厳密に適用するとそうなるんだから仕方がない
0657デフォルトの名無しさん
2013/05/02(木) 00:27:36.32extern が付いてたら外部リンケージになるっていう規定は無いんだから、
リンケージについては何も関与せず、ただ定義ではないことを示すのみ。
0658デフォルトの名無しさん
2013/05/02(木) 00:33:57.19>extern が付いてたら外部リンケージになるっていう規定は無いんだから、
>リンケージについては何も関与せず、ただ定義ではないことを示すのみ。
じゃあ
extern int g;
static int g:
これもokだよね?
0659デフォルトの名無しさん
2013/05/02(木) 00:34:16.79でもそういうものなので諦めれ
0660デフォルトの名無しさん
2013/05/02(木) 00:35:42.11>>647
0661デフォルトの名無しさん
2013/05/02(木) 00:44:35.34Cとかブロックスコープの3.5p6のような記述を
0662デフォルトの名無しさん
2013/05/02(木) 00:47:08.690663デフォルトの名無しさん
2013/05/02(木) 00:50:58.51内部リンケージでなく無名名前空間外なら外部リンケージというもの
この定義の中にexternなんて語は1つも出てこない
(constかconstexprがつく場合を除く)
0664デフォルトの名無しさん
2013/05/02(木) 00:59:37.33内部リンケージかどうかの定義が>>631でそ。
だったら>>597の二つ目はstaticが無いから
外部リンケージだね。
Cにあった「前の宣言に従う」ルールを
C++では削除してんだから。
0665デフォルトの名無しさん
2013/05/02(木) 01:11:39.22まず3.5は限りなくグレーだ。
Cにあった説明が無いから
前の宣言を引き継ぐか
その宣言内で判断すべきか
が自明ではない。つまり
3.5だけでは完結しない。
一方、7.1.1は明確だ。
これらを総合すると、
3.5の怪しい記述は
「Cと同じルールが適用される」
という結論になる。
これで完璧。
0666デフォルトの名無しさん
2013/05/02(木) 01:31:07.65Cとはそもそも内部リンケージの定義が違う
Cでは宣言がstaticを含むなら、その宣言内の識別子(the identifier)は内部リンケージを持つと言っている
C++ではある識別子(a name)はstatic付きで宣言されていれば内部リンケージだと言っている
一見微妙な差に見えるけど、C++は宣言以外の位置にも適用できるようになっている・・・と思う
0667デフォルトの名無しさん
2013/05/02(木) 02:02:38.53難解な上にどうとでもとれる糞記述
仕様の共通化を計るための標準が
目的を果たしていないといっていい
そういう意味では禿の書物は偉大
0668デフォルトの名無しさん
2013/05/02(木) 02:35:18.05ここは入門レベルの高いスレですね・・・
ぜんぜんついていけません(><)
0669デフォルトの名無しさん
2013/05/02(木) 03:08:40.43回答者が社会の底辺の糞なので気にしないように
0670デフォルトの名無しさん
2013/05/02(木) 03:24:58.270671デフォルトの名無しさん
2013/05/02(木) 03:56:40.42マジレスするとこの辺は高いスルースキルが求められている
誰とは言わないが、不必要だと思われるレスはNG等でフィルタリング必須
名目上は↓が初質スレだが、流れが初心者向けじゃない気がするんだぜ……
【初心者歓迎】C/C++室 Ver.84【環境依存OK】
http://toro.2ch.net/test/read.cgi/tech/1367137639/
0672デフォルトの名無しさん
2013/05/02(木) 04:20:07.64そっちの方がスルースキル上級
0673デフォルトの名無しさん
2013/05/02(木) 04:36:46.95KUSO
UNKO
糞
ウンコ
段落
オナニー
www
0674デフォルトの名無しさん
2013/05/02(木) 05:25:04.46/ ⌒ 俺 ⌒ ;\ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| (●), 、(●)、 | | キンタマ中古C言語命!!”
⊂. | ,,ノ(、_, )ヽ、,, | < 今日もキンタマ中古C言語でソース乞食するゾォォオオ〜っ♪”
,r----、__|.Javaト‐=‐ァ' .::::| | 仕事レポート全部くれくれ乞食するぞォォォオオオオ〜っ!”
/Ruby \最強ニニ´ .:::/ \____________________
(ひま,/¬--v \____/⌒\
/⌒ ( ] |丶 ̄ ̄ /丿 丿 ─
(_ _丿 ,ノ--v_\ 糞 ノ ノ ─
 ̄ ノ宿敵 リ--─ーARM八
〔 マシン語 Python__,ノ′ヽ ギャハハ!!!! バ〜〜〜カ♪”
,ノ'' ー--ー┘■■ ̄\ │
/ /  ̄■■■/ \ | #○&#$△#%&$▼&%#!!!!
ノ /]アンチ|■AMD命|\| \\ (↑意味不明w)
| / .| Intel | ) ノ
|/′ | .| |---く
| | \ ] ※)一部見苦しい部分がありますが御了承下さい。
0675デフォルトの名無しさん
2013/05/02(木) 08:19:41.10「この辺」と言っただろうに
それの前スレはまだマシだったんだぜ……?
0676デフォルトの名無しさん
2013/05/02(木) 10:44:52.00C++を勉強するJavaやC#使いが急増中
C++に男らしさを感じる人が一番多いことが判明
Javaは恥ずかしいと泣きながらC++使いに謝る
JavaがC++の実行速度を上回る!?禁断の-serverオプション
Java/C#使いの半数はC++を使えることが判明
〜勧告ニュース板より〜
0677デフォルトの名無しさん
2013/05/02(木) 10:45:24.630678デフォルトの名無しさん
2013/05/02(木) 10:48:28.32まずあなたがボツにした案を列挙していただかないことには、何を答えても
「シンプルじゃない」「エレガントじゃない」と言われそうな気がするので、あまり
気が進みませんね。
0679677
2013/05/02(木) 11:00:52.78// 文字列取得
str.erase( 0, 1 );
でいけました!
失礼しました。
0680デフォルトの名無しさん
2013/05/02(木) 13:16:04.65思いついたのは
string deleter(string s)
{
vector<char> s2(&s[1], &s[s.size()]);
s2.push_bacck(0);
string s3(s2.begin());
retuen move(s3);
}
0681デフォルトの名無しさん
2013/05/02(木) 14:17:05.76とてもエレガントとはいえないな
0682デフォルトの名無しさん
2013/05/02(木) 14:22:30.26破壊的でいいなら
str.erace(str.begin());
でいいんでないの
0683デフォルトの名無しさん
2013/05/02(木) 15:04:16.110684デフォルトの名無しさん
2013/05/02(木) 15:29:46.72いきなりゴミって、どういう事ですか?君には社会の常識がないのですか?
普通は、『あのう、すいませんけれどもレスしないでくれませんか?』とか
『あなたには、スルーという選択肢もありますよ』とか言うものですよ、
あなたみたいに最初から喧嘩腰だと、
言われた方『じゃぁスルーしてみようかな』とかいう気持ちがなくなるものです。
まずは、親切丁寧に人にROMしてくださいと頼むべきだと思いますよ。
そこから、人の輪と協調が生まれ、『よーしクソレス止めてみるか』という気持ちが生まれるわけです
0685デフォルトの名無しさん
2013/05/02(木) 17:44:27.34お前「コンロバーナーwww」だろ
0686デフォルトの名無しさん
2013/05/02(木) 17:45:01.260687デフォルトの名無しさん
2013/05/02(木) 17:45:18.740688デフォルトの名無しさん
2013/05/02(木) 17:49:35.020689デフォルトの名無しさん
2013/05/02(木) 19:36:36.450690デフォルトの名無しさん
2013/05/02(木) 21:32:45.09hogeキチが普通の人のC/C++スレは荒れてないと面白くないからな
0691デフォルトの名無しさん
2013/05/03(金) 01:28:52.860692デフォルトの名無しさん
2013/05/03(金) 01:39:45.92「アホカス」さん、「メガチンポ」さん、「カタイネン」さん、・・・etc
0693デフォルトの名無しさん
2013/05/03(金) 02:05:34.440694デフォルトの名無しさん
2013/05/03(金) 15:59:07.81というのを明示する修飾子ってなんかある?
0695デフォルトの名無しさん
2013/05/03(金) 16:01:51.570696695
2013/05/03(金) 16:02:55.290697デフォルトの名無しさん
2013/05/03(金) 16:10:02.49void f() const volatile && final override throw()
であってる?
0698デフォルトの名無しさん
2013/05/03(金) 16:15:08.900699デフォルトの名無しさん
2013/05/03(金) 16:21:42.52ありがとう
これってC#にしかない?
0700デフォルトの名無しさん
2013/05/03(金) 16:23:27.03overrideはBisual C++ 2012でもいけるはずだが
0701デフォルトの名無しさん
2013/05/03(金) 16:23:55.940702デフォルトの名無しさん
2013/05/03(金) 17:12:51.18auto test() const volatile throw() -> decltype(0) final override
G++ 4.7.3だと
auto test() const volatile throw() final override -> decltype(0)
まあG++の方が正しいんだろうなたぶん
0703デフォルトの名無しさん
2013/05/03(金) 17:43:18.34なので順番はこんな感じの筈。
[[noreturn]] inline virtual auto test() const volatile && throw() [[noreturn]] -> decltype((void)0) final override try
{
std::exit(0);
}
catch(...)
{
}
0704デフォルトの名無しさん
2013/05/03(金) 21:06:53.47元のクラスを調べることはできますか?
void * p=get();
if ( pがクラスAか? )
else if ( pがクラスBか? )
0705デフォルトの名無しさん
2013/05/03(金) 21:15:30.310706デフォルトの名無しさん
2013/05/03(金) 21:21:25.30型情報を一緒に渡すか、
データの先頭に型情報を置くかする必要がある
0707デフォルトの名無しさん
2013/05/03(金) 21:41:13.590708デフォルトの名無しさん
2013/05/03(金) 21:43:30.570709デフォルトの名無しさん
2013/05/03(金) 21:45:46.78がんばればvoid*でも取得できそう
0710デフォルトの名無しさん
2013/05/03(金) 21:53:21.47お察しください。
0711デフォルトの名無しさん
2013/05/03(金) 21:56:12.880712デフォルトの名無しさん
2013/05/03(金) 22:53:45.89ハッシュテーブルを自分で準備して自分でタイプ分けしてね、というのがまっとうで、あと神クラスを作れ、とかもありますね。
0713デフォルトの名無しさん
2013/05/03(金) 23:11:51.36職場の老害が値渡しにいちいちアレルギー起こして困る
ついでにconstexprすら実装してない腐れVSも
0714デフォルトの名無しさん
2013/05/03(金) 23:26:32.08namespace a
{
struct array{};
}
のように新たな名前空間でarrayを使っても平気ですか?
0715デフォルトの名無しさん
2013/05/03(金) 23:28:47.04std::arrayクラスとかあるんだから
何ら問題無かろう
0716デフォルトの名無しさん
2013/05/03(金) 23:39:31.57どうしてデータ構造がハッシュテーブル限定なのかkwsk
0717デフォルトの名無しさん
2013/05/03(金) 23:46:23.19MDSNライブラリ>開発ツールと言語ドキュメント>Visual Studio2012
>Visual C++>C++言語および標準ライブラリ>C/C++言語>C++言語リファレンス
>構文の規則>C++のキーワード
http://msdn.microsoft.com/ja-jp/library/2e6a4at9.aspx
『They cannot be used as identifiers in your program』
0718デフォルトの名無しさん
2013/05/03(金) 23:47:45.33std::mapかハッシュテーブル(なんでもいいけど)
って書いてある
0719デフォルトの名無しさん
2013/05/03(金) 23:50:00.510720デフォルトの名無しさん
2013/05/04(土) 00:08:45.87ごめんstd::map は平衡二分木だったんだね連想記憶はすべからくハッシュ関数を使っているものだと思い込んでいた
0721デフォルトの名無しさん
2013/05/04(土) 00:17:30.86他の言語でもそうだけど、何で連想配列が
std::mapとstd::unorderd_mapの
二種類あるのかは知っておかないとやばい。
ただmapはBツリーだなんて決まってないよ
0722デフォルトの名無しさん
2013/05/04(土) 01:13:28.48これがC++11なのか?
ずいぶんと変態な言語だなおい
0724デフォルトの名無しさん
2013/05/04(土) 17:36:30.06↓こういう雰囲気でやりたいのですがよく分かりません
codepad.org/KFWuHc9w
0725デフォルトの名無しさん
2013/05/04(土) 17:50:03.59class Point {
private:
double x, y;
public:
Point(double x, double y) : x(x), y(y) {}
Line getLine(Point b);
};
class Line {
private:
Point a, b;
public:
Line(Point a, Point b) : a(a), b(b) {}
};
Line Point::getLine(Point b)
{
return Line(*this, b);
}
0726デフォルトの名無しさん
2013/05/04(土) 18:15:23.19http://codepad.org/YJMfuxcI
0727デフォルトの名無しさん
2013/05/04(土) 18:16:30.010729デフォルトの名無しさん
2013/05/04(土) 18:27:24.38最悪の場合クラスへのポインタを持っておくとか
あ、でもnewも不完全型には適用出来ないのか
0730デフォルトの名無しさん
2013/05/04(土) 18:30:19.27あと、どうしてもおかしな循環参照になってしまう場合、クラスの設計をやり直す
0731デフォルトの名無しさん
2013/05/04(土) 19:54:26.33Line getLine(Point b)
に突っ込めよ
0732デフォルトの名無しさん
2013/05/04(土) 20:27:01.76普通に変換コンストラクタで行けるのにな
0733デフォルトの名無しさん
2013/05/04(土) 20:56:56.23http://jbbs.livedoor.jp/bbs/read.cgi/computer/43761/1367197701/l100
0734デフォルトの名無しさん
2013/05/04(土) 21:14:29.42>>725の
Line Point::getLine(Point b)で
Line(*this, b);
これになんで*thisつけるないといけない?
0735デフォルトの名無しさん
2013/05/04(土) 21:20:32.820736デフォルトの名無しさん
2013/05/04(土) 21:27:19.73これになんで*thisつけないといけない?
0737デフォルトの名無しさん
2013/05/04(土) 21:35:00.84Lineは2つのPointからオブジェクトを生成するから
*thisと引数の二つを使用した。
何か問題でも?
0738デフォルトの名無しさん
2013/05/04(土) 21:35:06.43他に意味があるか?
0739デフォルトの名無しさん
2013/05/04(土) 21:54:22.04Line(Point b)がない。つまり
自分自身と引数のPoint bから新たなLineを生成するメソッドがないからってこと?
それを作れって言っているのが>>732の変換コンストラクタ?
0740デフォルトの名無しさん
2013/05/04(土) 21:57:31.51>自分自身と引数のPoint bから新たなLineを生成するメソッドがないから
それがgetLineなのだが、オマエは何を言っているんだ?
0741デフォルトの名無しさん
2013/05/04(土) 22:01:48.530742デフォルトの名無しさん
2013/05/04(土) 22:11:50.33自分自身と引数から作るメソッドなんて不要
0743デフォルトの名無しさん
2013/05/04(土) 22:14:54.30>みたいのがあれば
いやすでにあるだろう。
Line l = x.getLine(Point(5.5, 6.6));
なんて不要で
Line l(x, Point(5.5, 6.6));
にする。
少なくともPointにgetLineというのは意味的におかしい
0744デフォルトの名無しさん
2013/05/04(土) 22:20:41.930745デフォルトの名無しさん
2013/05/04(土) 22:35:15.13楽をしたかったらC#でも使っとけ
0746デフォルトの名無しさん
2013/05/04(土) 22:35:52.470747デフォルトの名無しさん
2013/05/04(土) 22:40:16.99http://codepad.org/LlcNqUny
0748デフォルトの名無しさん
2013/05/04(土) 22:47:44.79friend std::ostream& operator<<
って糞コードですよね?
全うな設計者ならpublicなtoString()を作ると思うんです
0749デフォルトの名無しさん
2013/05/04(土) 22:57:52.72完全に理解してる奴なんてこの地上に存在しないってレベルだからな
0750デフォルトの名無しさん
2013/05/04(土) 23:12:12.89>>721
普通、Bツリーって言ったら二分木(Binary tree)のことじゃなくて
特定の多分岐平衡木構造をさすと思うが。
ディスク上のデータによく使われるやつ。
map の実装が二分木なんて決まってないのはその通りなんでいいけど。
0751デフォルトの名無しさん
2013/05/04(土) 23:15:58.300752デフォルトの名無しさん
2013/05/04(土) 23:19:11.480753デフォルトの名無しさん
2013/05/04(土) 23:24:29.600754デフォルトの名無しさん
2013/05/04(土) 23:41:19.24型(type)
昔は(規格内では)typedef型にのみ使われてたけど、
今はwchar_tとか予約語でも使われてる
0755デフォルトの名無しさん
2013/05/05(日) 00:47:32.21後者は戻り値で余計なコピーが派生するから前者のほうが速いって、
以前言われたんですが、C++11でも同じですか?
0756デフォルトの名無しさん
2013/05/05(日) 00:58:25.83C++11なら後者の方が同じか速いし何より書きやすい。
0757デフォルトの名無しさん
2013/05/05(日) 00:59:36.22get_stringの戻り値で変数を「初期化」するなら、
戻り値最適化が(普通は)働いて
C++03でも後者の方が引数のクリアが必要ない分だけ速い
「代入」するなら確かにC++03だと遅くなるので、
平均的には多分遅くなる(使い方次第だけど)
これはC++11だと右辺値参照引数の代入演算子のおかげで解消される
0758721
2013/05/05(日) 02:13:39.86やや、BはバランスのBと理解しているが
>>757
>「代入」するなら確かにC++03だと遅くなるので、
具体的にどこで遅くなるんだっけか?
この手の話で関連するのは
・初期化先への直接コンストラクト(初期化の話なので関係なし)
・関数内ローカルから戻り値tmpのコピー(関数内なので関係なし)
・戻り値tmpから受け取り側へのコピー(03でも省略許可されていたような)
0759デフォルトの名無しさん
2013/05/05(日) 02:45:30.38それはすべてのオブジェクトが神オブジェクトから派生することを前提に使える仕様、C++ なら自分でそうすればいい
0760デフォルトの名無しさん
2013/05/05(日) 02:56:42.493つ目
省略可能なのはコピーコンストラクタのみ
代入は省略できない
0761デフォルトの名無しさん
2013/05/05(日) 03:03:59.38代入は確かにコピコンじゃないわな。
でも11だと省略できるのん?
0762デフォルトの名無しさん
2013/05/05(日) 03:21:32.05バッファ自体のコピーなしで実現できるようになった
0763デフォルトの名無しさん
2013/05/05(日) 03:25:01.41できない
その代わり、代入がコピーでなくムーブになるので速い
ただ、それでも引数から渡した方が若干速くなるケースもある
引数に既に中身がある場合、
バッファの再確保が避けられる事があるので
中身が空の場合はほぼ同じ速度かな
0764デフォルトの名無しさん
2013/05/05(日) 03:31:31.39例:
string get_string(){
return string(...);
}
0765764
2013/05/05(日) 03:37:40.58NRVOを実現できるコンパイラなら名前付きオブジェクトを返却しても効率は悪くならない。
例:
string get_string(){
string ret;
ret = ...
return ret;
}
C++11で委譲代入演算子のオーバロードが定義されているクラスなら、RVO、NRVOが効かなくても
効率は悪くならないはず。
0766デフォルトの名無しさん
2013/05/05(日) 03:38:27.4003と11の違いじゃなくて
前者と後者の差について答えてやれよ
0767デフォルトの名無しさん
2013/05/05(日) 03:49:35.660768デフォルトの名無しさん
2013/05/05(日) 04:00:22.01結果が関数内で生成される場合
初期化の場合
03: RVOにより直接が期待できる
11: RVOにより直接
代入の場合
03: 最低1回のコピー
11: ムーヴなので中身のコピーなし★違い
結果が関数内で生成されない場合
初期化の場合
03: 最低1回のコピー
11: 最低1回のコピー
代入の場合
03: 最低1回のコピー
11: 最低1回のコピー
0769デフォルトの名無しさん
2013/05/05(日) 04:02:42.02多分、前者の内部で代入するケースと比較してるのだと思うが、
前者では通常わざわざ代入前にstringをコンストラクトする必要がないので
前者のが速い
0770デフォルトの名無しさん
2013/05/05(日) 04:05:31.300771デフォルトの名無しさん
2013/05/05(日) 04:31:25.65効率悪い場合もある
引数のバッファを直接再利用できる場合とか
http://ideone.com/x6Guc3
ただ、少なくともコピーよりは効率がいいし、
再利用できない場合はムーブで上等
結局どう使われるかだね
0772764 765
2013/05/05(日) 04:35:06.97後者は
1.get_string関数内でstringオブジェクトを生成。
2.get_string関数内から関数外部にオブジェクトをコピーするために
コピーコンストラクタもしくは代入演算子のオーバロードが実行される。
(受け取る側のオブジェクトが既に初期化されているかどうかによる。)
3.get_string関数内のstringクラスのオブジェクトがデストラクタで削除される。
コンパイラが愚直に解釈すると上記3ステップが実行されることになるため、動作効率が
悪くなってしまう。
C++03ではコンパイラが
・RVO(戻り値最適化の促進)
・NRVO(名前付きオブジェクトの戻り値最適化の促進)
という仕様に対応していれば上記3ステップを、get_string関数外でstringオブジェクト
を直接生成するという1ステップに置き換えられるため、無駄なstringオブジェクトの
コピーと削除が行われなくなるので動作効率の低下は起こらない。但しこれは最適化
してもいいよという仕様であり、必ずそうしなければならないと言うものでは無いため、
最終的にはコンパイラに依存していた。
C++11だと右辺値参照があるため、委譲コンストラクタ、委譲代入演算子のオーバロードが
定義されているクラスなら、RVO、NRVOが効かなかったとしても無駄なコピーは発生しない。
但しget_string関数内のstringクラスのオブジェクトのデストラクタは実行されてしまうので
わずかながら効率が低下するから、RVO、NRVOが効く場合はそちらが優先される。
コンパイラがC++03ならRVO、NRVOが効いているかを考慮する、C++11なら何も気にせず後者で書く。
0773デフォルトの名無しさん
2013/05/05(日) 04:56:10.63こんな所で聞かなくても自分で確認できるでしょ
↓はRVOが効いてる例
http://ideone.com/pEMjxW
0774デフォルトの名無しさん
2013/05/05(日) 04:56:52.26/\___/\
/ ⌒ 俺 ⌒ ;\ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| (●), 、(●)、 | | キンタマ中古C言語命!!”
⊂. | ,,ノ(、_, )ヽ、,, | < 今日もキンタマ中古C言語でソース乞食するゾォォオオ〜っ♪”
,r----、__|.Javaト‐=‐ァ' .::::| | 仕事レポート全部くれくれ乞食するぞォォォオオオオ〜っ!”
/Ruby \最強ニニ´ .:::/ \____________________
(ひま,/¬--v \____/⌒\
/⌒ ( ] |丶 ̄ ̄ /丿 丿 ─
(_ _丿 ,ノ--v_\ 糞 ノ ノ 今日も見にくい小文字でプログラミングするぞ〜!!(ギャハハ!!wwww”
 ̄ ノ宿敵 リ--─ーARM八
〔 マシン語 Python__,ノ′ヽ ギブ・ミー・レポート!!!! ギブ・ミー・ソース!!!!
,ノ'' ー--ー┘■■ ̄\ │
/ /  ̄■■■/ \ | #○&#$△#%&$▼&%#!!!!
ノ /]アンチ|■AMD命|\| \\ (↑意味不明w)
| / .| Intel | ) ノ
|/′ | .| |---く
| | \ ] ※)一部見苦しい部分がありますが御了承下さい。
.
0775デフォルトの名無しさん
2013/05/05(日) 04:58:19.14うん、まあなんだ
他の人の話はよく聞こうね
http://ideone.com/Wx8T03
ローカルだとコピーのがムーブより遅いのだが、
ideoneだとなぜか同じだな
バッファが再利用できる場合はそれが常に最速
再利用できない場合がほとんどならムーブが楽チン
0776デフォルトの名無しさん
2013/05/05(日) 05:03:39.75>ideoneだとなぜか同じだな
理由が本気でわからないんですか?
0777デフォルトの名無しさん
2013/05/05(日) 05:03:44.05プログラミングで委譲って言ったらdelegationあたりがメジャーだからか
あとはまあ意味的に移譲のほうがいい気もするし
0778デフォルトの名無しさん
2013/05/05(日) 05:06:09.46手段が移動
何ら問題はない
0779デフォルトの名無しさん
2013/05/05(日) 05:12:32.49委譲コンストラクタでは
他人とのコミュニケーションが
難しくなりますよ?
0780デフォルトの名無しさん
2013/05/05(日) 05:20:16.900781デフォルトの名無しさん
2013/05/05(日) 05:24:41.86クッソ遅いし普通はね
つか、相互参照を見た瞬間に掻き毟りたくなった
>>755
http://d.hatena.ne.jp/yohhoy/20120524/p1
11の難しさは内容よりも03ジジイの説得にある
あいつら英語読めないからな
hogeやfooで書かれた化石のような書籍が連中のバイブル
0782デフォルトの名無しさん
2013/05/05(日) 05:32:21.80friend std::ostream& operator<<
がイケてないのは
「オブジェクトの内容を文字列に変換」
と言う極めてありがちな処理の
汎用性を放棄しているところ。
こんなことも出来るぜアピールとしてはいいけど
cout << obj.toString() << endl;
の方が100倍マシ
0783デフォルトの名無しさん
2013/05/05(日) 05:37:15.23>>759
0784デフォルトの名無しさん
2013/05/05(日) 05:37:28.03英語の前に実測値を読めるようになった方がいいよ
コピーとムーブではムーブのが速いというだけで、
それ以外のケースよりムーブのが速いとは限らない
速度を非常に気にするケースでは
ムーブが最適解にならないケースがあることを知るべき
(いずれにせよコピーは論外だけどね)
0785デフォルトの名無しさん
2013/05/05(日) 06:24:03.72T::toStringよりもstd::to_string(T)にしたほうがいいと思う
0786デフォルトの名無しさん
2013/05/05(日) 08:08:46.48http://ideone.com/KUI8Bl
http://ideone.com/Ddh0Nj
0787デフォルトの名無しさん
2013/05/05(日) 08:24:23.73C#に頭毒されすぎ
そんなにtoStringが欲しかったら自分で作れ
「オブジェクトの内容を文字列に変換」するオーバーヘッドが馬鹿にならないので
C++は便利さを捨てて「自分でやれ」式になってるんだろ
Cの精神を踏襲している
0788デフォルトの名無しさん
2013/05/05(日) 08:24:53.70上はわざわざtest2をコストアップさせて何がしたいの?
馬鹿なの? 死ぬの?
ムーブを利用する場合は
新しくメモリを確保してからswapになる
どうしてもメモリ確保が入るので
バッファの再利用ができる場合は遅い
一方、バッファの再利用ができない場合はムーブで良い
例えば、str::ostringstreamを使って文字列を作る場合とか
ケースバイケースなんだよ
基本的には気にせずムーブしていいけど、
シビアな場合はムーブを過信しちゃいけないという事だ
0789デフォルトの名無しさん
2013/05/05(日) 09:44:27.88警戒するまでもなく、こんな冗長なキャストを見た時点で設計の失敗を確信する。
便所の中で如何に清潔に飯を食うかを苦心するようなもんだ。
0790デフォルトの名無しさん
2013/05/05(日) 09:49:28.73設計とか言っちゃう男の人って……
0791デフォルトの名無しさん
2013/05/05(日) 10:14:46.95ムーブの方が遅くなる時点で、既に効率化とかいうレベルにないコードであることが分からないか。
0792デフォルトの名無しさん
2013/05/05(日) 10:26:13.71ムーブと速度が変わらないのは謎
gcc 4.6.0 だと明らかにコピーのが遅いんだが、
gcc 4.7.2 だと同じになるようだ
0793デフォルトの名無しさん
2013/05/05(日) 10:59:44.040794デフォルトの名無しさん
2013/05/05(日) 11:27:28.25怪しい動きに見えるんだが……
0795デフォルトの名無しさん
2013/05/05(日) 11:28:30.160796デフォルトの名無しさん
2013/05/05(日) 11:31:24.24いちいち読んでないけど
0797デフォルトの名無しさん
2013/05/05(日) 12:11:08.140798デフォルトの名無しさん
2013/05/05(日) 13:06:46.630799デフォルトの名無しさん
2013/05/05(日) 13:54:13.35少なくともVS2010のSTLだと、front()とback()はあってもbegin()、end()、operator[]()のどれも存在しないので、
全要素を別のコンテナにpop()して、read modify語に同じ順序で全要素をpushし直すとか
別のstd::queue<T>に移し変えつつread modifyする、ぐらいしか思いつきません…
実は随時要素アクセス可能なFIFOは全く別の手段で実現すべきもの?
0800799
2013/05/05(日) 14:00:00.18単純に生の配列を使って自前でキューイングしようと思いますが、今後常にそうとも限らないし、
0801デフォルトの名無しさん
2013/05/05(日) 14:01:58.48キュー構造というのは本来そういうもの(純粋にFIFOするもの)だ。
FIFO以外の機能が欲しければ deque なんか使って自作するしかないが、
それはもう純粋なキューじゃないな。
0802デフォルトの名無しさん
2013/05/05(日) 19:50:36.55my_string(my_string &&other)
operator=(my_string &&other)
も書けよになったのか。C++複雑になりすぎ
0803デフォルトの名無しさん
2013/05/05(日) 21:18:31.24my_string(my_string other)
my_string &operator =(my_string other)
でまとめても良い
0804デフォルトの名無しさん
2013/05/05(日) 23:23:00.120805デフォルトの名無しさん
2013/05/05(日) 23:26:25.110806デフォルトの名無しさん
2013/05/05(日) 23:27:34.500807デフォルトの名無しさん
2013/05/05(日) 23:30:53.10可搬性の要否
再現性の要否
周期
をはっきりさせなさい
0808デフォルトの名無しさん
2013/05/05(日) 23:32:16.350809デフォルトの名無しさん
2013/05/05(日) 23:32:20.04ダサすぎ。C++11になんか格好良い奴があるんじゃないのか
0810デフォルトの名無しさん
2013/05/05(日) 23:34:44.760811デフォルトの名無しさん
2013/05/05(日) 23:42:37.740812デフォルトの名無しさん
2013/05/05(日) 23:46:46.670813デフォルトの名無しさん
2013/05/05(日) 23:54:27.41C++1yからできるようになる予定
0814デフォルトの名無しさん
2013/05/05(日) 23:56:30.140815デフォルトの名無しさん
2013/05/06(月) 00:09:39.42そうなんだ。
じゃあ最初からできるようにしとけよハゲ。
0816デフォルトの名無しさん
2013/05/06(月) 00:10:36.490817デフォルトの名無しさん
2013/05/06(月) 00:17:27.580818デフォルトの名無しさん
2013/05/06(月) 00:29:06.98じじいの多いC++屋が忘れていた。爺には良くあること
現状のC++は、C++屋が年をとり介護か必要になり、自分で色々出来なくなった。
それを補うためにゆとり拡張を気合を入れてするようにしたって感じかな
0819デフォルトの名無しさん
2013/05/06(月) 00:32:04.750820デフォルトの名無しさん
2013/05/06(月) 00:51:42.520821デフォルトの名無しさん
2013/05/06(月) 00:54:07.470822デフォルトの名無しさん
2013/05/06(月) 02:39:35.02Better Cと呼ばれる(ことがある)所以である
0823デフォルトの名無しさん
2013/05/06(月) 03:15:10.76代替はないんだから
0824デフォルトの名無しさん
2013/05/06(月) 11:48:23.13オナニー以外でC++を使うというのか?
0825デフォルトの名無しさん
2013/05/06(月) 11:59:50.31どういう意味があるの?
0826デフォルトの名無しさん
2013/05/06(月) 12:03:52.59つい最近CからC++に移行したのもやってるし
そいつ無職かITドカタなんだよ、察してやれ
0827デフォルトの名無しさん
2013/05/06(月) 12:04:32.11本当はCしか分からない(それも糞コードしか書けない)のにC++になると
よりいっそうその糞さが目立って見てられない
0828デフォルトの名無しさん
2013/05/06(月) 12:48:22.00複雑怪奇なC++を選ぶ理由はあんまりない。
0829デフォルトの名無しさん
2013/05/06(月) 12:51:54.95標準化委員会ェ・・・
0830デフォルトの名無しさん
2013/05/06(月) 13:01:40.62Qの自己愛性パーソナリティ障害の「僕ちゃんってすごいでしょ」病が出ていてアイタタタ
だよな
0831デフォルトの名無しさん
2013/05/06(月) 15:00:59.320832デフォルトの名無しさん
2013/05/06(月) 15:03:38.15C++しか使ったことがないのでわかりません
0833デフォルトの名無しさん
2013/05/06(月) 15:05:55.83C++をやっていればSTLを知らないはずがない
嘘乙
0834デフォルトの名無しさん
2013/05/06(月) 15:19:12.61ほう、ではそのSTLとやらの定義を伺おうか。
と荒れるからやめれ
0835デフォルトの名無しさん
2013/05/06(月) 15:30:41.47http://ja.wikipedia.org/wiki/Standard_Template_Library
0836デフォルトの名無しさん
2013/05/06(月) 15:31:31.49馬鹿発見
ISO/IEC 14882:2003も読んでない奴はすっこんでろ
0837デフォルトの名無しさん
2013/05/06(月) 15:40:53.48ISO/IEC 14882:2003のどこに書いてあるの?
1998でも2011でもいいけど
0838デフォルトの名無しさん
2013/05/06(月) 15:43:47.58自分で「規格票は読んでいません」と告白しなくてもいいよ
0839デフォルトの名無しさん
2013/05/06(月) 15:47:16.370840デフォルトの名無しさん
2013/05/06(月) 15:52:18.74wikiが『STLの定義(何がSTLの一部であるか)には 様々な意見があり、人によりその解釈は違ってい ることがある。ここではC++標準ライブラリのコ ンテナ、イテレータ、アルゴリズム、関数オブ ジェクトを指すものとする』
って書いてある以上、企画にSTLという用語の定義が無いってこと?
0841デフォルトの名無しさん
2013/05/06(月) 15:54:56.970842デフォルトの名無しさん
2013/05/06(月) 15:55:28.97だろうな
馬鹿には見えないから
0843デフォルトの名無しさん
2013/05/06(月) 15:56:15.32○>>839
読みたかったら利口になりたまえ
0844デフォルトの名無しさん
2013/05/06(月) 15:57:13.37STLportだけとかじゃなく全部なの?
SDLの間違いとかだったら>>831は死罪な
0845デフォルトの名無しさん
2013/05/06(月) 15:58:00.89誰かの著作物ってこったろ。
0846デフォルトの名無しさん
2013/05/06(月) 16:02:40.80荒らすなボケ
>>843
「書かれていない」系のレスには
書かれているページを答えろよカス
0847デフォルトの名無しさん
2013/05/06(月) 16:03:13.83規格票を持ってない奴に説明しても無駄
0848デフォルトの名無しさん
2013/05/06(月) 16:12:25.64さて、どこに書いてあるか答えてもらおうか。
[PDF] ISO/IEC 14882:2003(E)
http://cs.nyu.edu/courses/spring13/CSCI-GA.2110-001/downloads/C++ Standard 2003.pdf
0849デフォルトの名無しさん
2013/05/06(月) 16:15:08.38分からないならお前が低脳なだけ
0850デフォルトの名無しさん
2013/05/06(月) 16:18:00.260851デフォルトの名無しさん
2013/05/06(月) 16:18:18.06100万ほどでいいよ
0852デフォルトの名無しさん
2013/05/06(月) 16:19:44.260853デフォルトの名無しさん
2013/05/06(月) 16:20:12.64読んだ結果が>>839なんだろカス
つまりSTLは妄想ってことでFA
0854デフォルトの名無しさん
2013/05/06(月) 16:24:51.10そろそろSTLという言葉は避けた方がいいのかも試練
0855デフォルトの名無しさん
2013/05/06(月) 16:24:53.48きゃわっ☆
0856デフォルトの名無しさん
2013/05/06(月) 16:27:46.790857デフォルトの名無しさん
2013/05/06(月) 16:29:31.330858デフォルトの名無しさん
2013/05/06(月) 16:33:17.190859デフォルトの名無しさん
2013/05/06(月) 16:47:04.82これマメチな
0860デフォルトの名無しさん
2013/05/06(月) 16:49:16.090861デフォルトの名無しさん
2013/05/06(月) 16:57:19.26>>858
>>858
0862デフォルトの名無しさん
2013/05/06(月) 17:02:07.820863デフォルトの名無しさん
2013/05/06(月) 17:15:37.120864デフォルトの名無しさん
2013/05/06(月) 17:24:23.77明日からは曜日感覚と書き込み時間に少しだけ気を付けてね。
身分がばれちゃうからw
0865デフォルトの名無しさん
2013/05/06(月) 17:29:01.78C++の標準ライブラリ(Cから引き継いだものを除く)=STL
0866デフォルトの名無しさん
2013/05/06(月) 17:38:24.29消えろゴミクズ
質問したら荒らし扱いかキチガイ
0867デフォルトの名無しさん
2013/05/06(月) 17:52:16.710868デフォルトの名無しさん
2013/05/06(月) 18:21:56.06恥ずかしさをごまかすために
暴れた奴がいるふりをしているんです。
お察しください。
0869デフォルトの名無しさん
2013/05/06(月) 18:49:08.610870デフォルトの名無しさん
2013/05/06(月) 19:27:11.35>本当はCしか分からない
へえQのCを認めているんだ、あり得ない‥‥
0871デフォルトの名無しさん
2013/05/06(月) 19:30:34.98パクってるんじゃねーよ
boostの開発者にC++標準化委員会が極めて多いだけだ
0872デフォルトの名無しさん
2013/05/06(月) 19:31:05.26>(それも糞コードしか書けない) とちゃんと書いてあるだろwww
0873デフォルトの名無しさん
2013/05/06(月) 20:16:12.91あんなものを「分かる」とかいってる分だけお前のお里も知れるというもの
あやつは「根本的に何一つ分かっていない」
0874デフォルトの名無しさん
2013/05/06(月) 20:19:05.51文法だけは辛うじて分かっているようだけど、とにかく無駄が多いよな
0875デフォルトの名無しさん
2013/05/06(月) 20:20:23.92ってなんだ?
0876デフォルトの名無しさん
2013/05/06(月) 20:22:19.100877デフォルトの名無しさん
2013/05/06(月) 20:24:26.780878デフォルトの名無しさん
2013/05/06(月) 20:27:38.46void func0(){}
void func1(){}
};
template<typename T> struct B{
void func(){
T t;
t.func2();
}
};
B<A> b;
//b.func();
この場合b.func()を呼ばなければコンパイルエラーにはなりませんか?
0879デフォルトの名無しさん
2013/05/06(月) 20:29:10.090880デフォルトの名無しさん
2013/05/06(月) 20:31:07.320881デフォルトの名無しさん
2013/05/06(月) 20:33:29.65Qは下手ながらも一応プログラムを書いている中年ニート
uyは宿題スレの回答をそのまま提出して留年したバカでプログラムも書けなくて
荒らしているだけの真性キチガイ
片山も相当きてるが頭は良さそう
0882デフォルトの名無しさん
2013/05/06(月) 20:36:12.06一般マ≫片>Q>u
0883デフォルトの名無しさん
2013/05/06(月) 20:38:22.55クラスAにfunc2()がないんだからコンパイル通らないっしょ
0884デフォルトの名無しさん
2013/05/06(月) 20:41:43.92どこかに《超えられない壁》を挿入してくれないか?
0885デフォルトの名無しさん
2013/05/06(月) 20:41:58.11VS2012では通ってます。
0886デフォルトの名無しさん
2013/05/06(月) 20:42:40.980887デフォルトの名無しさん
2013/05/06(月) 20:44:59.81>>886
読んだけどどうもVS2012のバグっぽいな
0888デフォルトの名無しさん
2013/05/06(月) 20:46:10.04ならない。14.7.1p2参照
0889デフォルトの名無しさん
2013/05/06(月) 20:47:49.450890デフォルトの名無しさん
2013/05/06(月) 20:50:23.12B<A> b;
b.func();
コンパイルが通りません
と読み間違えていた
//でコメントアウトするとgcc4.8でも通る
0891デフォルトの名無しさん
2013/05/06(月) 20:50:34.180892デフォルトの名無しさん
2013/05/06(月) 20:52:00.340893デフォルトの名無しさん
2013/05/06(月) 20:53:33.43ならない
使われないメンバ関数は実体化されない
>>891
今は = delete の時代だよ
0894デフォルトの名無しさん
2013/05/06(月) 20:55:07.77普通の人《超えられない壁》一般マ≫片>Q>u
0895デフォルトの名無しさん
2013/05/06(月) 20:56:01.23ワロス
0896デフォルトの名無しさん
2013/05/06(月) 20:58:16.4011が出る前はprivateに置いてたろ?それを知らないとしたら問題だろ?
0897デフォルトの名無しさん
2013/05/06(月) 21:01:20.09と揚げ足の揚げ足をとってみる
0898デフォルトの名無しさん
2013/05/06(月) 21:01:39.29そんなテクニックはboost::noncopyableでとっくに使われていた
0899デフォルトの名無しさん
2013/05/06(月) 21:02:39.46boost::noncopyable かそれに類するものを private 継承だな
0900デフォルトの名無しさん
2013/05/06(月) 21:16:58.140901デフォルトの名無しさん
2013/05/06(月) 21:27:03.97なんか論点がずれてるんだけど大丈夫?
0902デフォルトの名無しさん
2013/05/06(月) 22:18:56.72何でprivateなの?
0903デフォルトの名無しさん
2013/05/06(月) 22:23:05.98横レス。ダイアモンド継承回避だお
0904デフォルトの名無しさん
2013/05/06(月) 22:32:38.35プログラムでは「死の」なんだよなw
0905デフォルトの名無しさん
2013/05/06(月) 22:33:43.090906デフォルトの名無しさん
2013/05/06(月) 22:34:59.58冗長な慣習ばかり残しやがって
0907デフォルトの名無しさん
2013/05/06(月) 22:36:04.780908902
2013/05/06(月) 22:38:34.60すみませんちょっと理解できませんでした。
noncopyable がpublic継承だと問題が起きるのは
どんなコードでしょうか?
むしろnoncopyableであることをpublicに
主張すべきではないかと思うのです
0909デフォルトの名無しさん
2013/05/06(月) 22:41:38.900910デフォルトの名無しさん
2013/05/06(月) 22:56:11.390911デフォルトの名無しさん
2013/05/06(月) 23:03:11.640912デフォルトの名無しさん
2013/05/06(月) 23:04:30.590913デフォルトの名無しさん
2013/05/06(月) 23:07:32.040914デフォルトの名無しさん
2013/05/06(月) 23:12:47.72いらないよそんなの
特に関係性のないクラスを全部
boost::noncopyable& に渡せるとかキモいだけ
0915デフォルトの名無しさん
2013/05/07(火) 00:39:23.630916デフォルトの名無しさん
2013/05/07(火) 00:52:02.84>>848で世界中に共有されてるじゃないか
0917デフォルトの名無しさん
2013/05/07(火) 00:57:02.09俺は11のFDIS持ってるけど、
もう公開されてないみたいね
0918デフォルトの名無しさん
2013/05/07(火) 01:04:50.12http://www.webstore.jsa.or.jp/webstore/Com/FlowControl.jsp?lang=jp&bunsyoId=ISO%2FIEC+14882%3A2011&dantaiCd=ISO&status=1&pageNo=0
>原本冊子をお求めの場合は、CD-ROMでのお届けとなります
0919デフォルトの名無しさん
2013/05/07(火) 01:24:36.50返品ものなのだが
0920デフォルトの名無しさん
2013/05/07(火) 12:14:51.75だがドラフトはあまりオヌヌメできないかな
0921デフォルトの名無しさん
2013/05/07(火) 12:16:14.120922デフォルトの名無しさん
2013/05/07(火) 17:47:38.830923デフォルトの名無しさん
2013/05/07(火) 20:02:57.66どうすればいいでしょうか。
また、プログラム起動時再生するようにして、
ボタンでON/OFFを切り替えることは可能でしょうか
0924デフォルトの名無しさん
2013/05/07(火) 20:03:45.610925デフォルトの名無しさん
2013/05/07(火) 20:16:18.68C++11にそれを実現するSTLがあったような
0926デフォルトの名無しさん
2013/05/07(火) 20:21:56.33オンオフ情報をレジストリに
読み書きするSTL
0927デフォルトの名無しさん
2013/05/07(火) 23:22:32.66のCD-ROMを原本冊子にswapするSTLを探してるんだけど
0928片山博文MZパンク ◆0lBZNi.Q7evd
2013/05/07(火) 23:22:44.58多重再生が不必要で単純にWAV再生したいなら、PlaySound関数を使う。
ON/OFFの状態は、INIファイルかレジストリに記録しておく。
0929デフォルトの名無しさん
2013/05/08(水) 04:12:06.57Win32API質問箱 Build114
http://toro.2ch.net/test/read.cgi/tech/1363042502/
0930デフォルトの名無しさん
2013/05/08(水) 05:02:02.34誰か助けて下さい
http://ideone.com/4F1kmr
0931デフォルトの名無しさん
2013/05/08(水) 06:30:46.25http://rarara.cafe.coocan.jp/cgi-bin/lng/vc/vclng.cgi?print+200905/09050032.txt
これだろ
0932デフォルトの名無しさん
2013/05/08(水) 08:28:08.810933デフォルトの名無しさん
2013/05/08(水) 19:20:03.40頭文字って全部大文字にで良い?
名前のルールが分からん……
0934デフォルトの名無しさん
2013/05/08(水) 19:29:10.63C++の規格書に載っている。C++11を規格書読め
趣味なら俺ルールで良いけど、仕事なら規格書のスタイルが規範
0935デフォルトの名無しさん
2013/05/08(水) 20:01:54.420936デフォルトの名無しさん
2013/05/08(水) 20:04:42.730937デフォルトの名無しさん
2013/05/08(水) 20:51:22.36あと、規格書の「T*」スタイルは
臭い物にフタをしただけの一貫性のない書き方
なので好きじゃない
0938デフォルトの名無しさん
2013/05/08(水) 22:16:11.19ってたとえばどんなやつ?
0939デフォルトの名無しさん
2013/05/08(水) 22:40:21.25通信相手のユーザーから渡されたバイト配列が
「正当なUTF8かどうか?」をチェックしたいです。
調べて見たところ、ICU、iconv、法則を元に自前で実装 等色々手段が
ありそうなのですが、「これつかっとけ」みたいなおすすめライブラリはありますか?
0940デフォルトの名無しさん
2013/05/08(水) 23:17:18.20・UTF-8として解釈不可能
・UTF-8として解釈可能だが冗長
・サロゲートペアが冗長
・文字の結合その他規則により冗長
・正規化された文字列
一番上は弾く以外ないけれど、他のは受け入れるかどうかや受けれてから変換するかとか色々…
使うシステム側が受け入れ可能な"正当"によっても何処まで正規化するかは変わるだろうなぁ
最後の奴とかは、自前で検査を実装するのは変態か馬鹿しか居ないレベルでダルそう
0941デフォルトの名無しさん
2013/05/08(水) 23:28:29.630942デフォルトの名無しさん
2013/05/08(水) 23:31:20.91ありがとうございます。
なるほど、まずその定義が必要なのですね。
・データベースに読み書きが正しくできること
・不正なUTF8を許可してしまい、ハングアップしたり、セキュリティーホールにならないこと
あたりのアバウトな認識でやってました
2010用のICUビルドが2012で利用できたので
まずはこれからいじり倒してみようと思います
0943デフォルトの名無しさん
2013/05/09(木) 00:17:24.773つ目はUTF-16を前提としたシステムの互換性のために敢えて採用する場合があって、
その場合はCESU-8とかModified UTF-8とかいう名前になるけど、それをUTF-8と呼んじゃう場合があるから一応な
DBで古いOracleだかMySQLだかはそれ使わんとダメだった筈で、942の条件としては意識はしたほうが良いかもしれない
不正だろうが受け入れるシステムは受け入れてしまうし、吐き出すシステムは吐き出してくるからなぁ…
>>942
セキュリティホールって意味では「受けれてから変換する」動作でアレコレあるから特に注意したほうが良いかも
ダメ文字判定をUTF-8の冗長表現で突破とか、「それUnicodeで」で書かれてるようなUnicode自体のアレコレとか
0944デフォルトの名無しさん
2013/05/09(木) 07:21:53.02>CESU-8とかModified UTF-8とかいう名前になる
Unicode規格のどこにそんなことが書いてあるのかね?
0945デフォルトの名無しさん
2013/05/09(木) 08:16:24.04COMPATIBILITY ENCODING SCHEME FOR UTF-16: 8-BIT (CESU-8)
http://www.unicode.org/reports/tr26/tr26-1.html
0946デフォルトの名無しさん
2013/05/09(木) 08:18:57.230947デフォルトの名無しさん
2013/05/09(木) 12:27:52.29template<typename T> struct A{};
A<super> a;
C++03でTがsuperを継承してるかコンパイル時に調べる方法ありますか?
0948デフォルトの名無しさん
2013/05/09(木) 12:43:55.26>Status This is a draft document
提案中のドラフトですか
0949デフォルトの名無しさん
2013/05/09(木) 12:48:11.680950デフォルトの名無しさん
2013/05/09(木) 21:06:39.55int* a, b;
ってやつじゃない?
ただそこまで言ったら
const intも本当は
int constにすべきなんだろうけど。。
0951デフォルトの名無しさん
2013/05/09(木) 21:28:19.12変数毎に行を変えればそんな事を気にする必要は無い
0952デフォルトの名無しさん
2013/05/09(木) 21:36:16.630953デフォルトの名無しさん
2013/05/09(木) 22:27:49.67>変数毎に行を変えれば
それは正に「臭いものにふた」だよ。
もともと左から右に読む文法じゃないんだから、
変数ごとにしたって
const int* p;
const int* const* const (* const p[1])();
はやっぱり誤解を招く。
0954デフォルトの名無しさん
2013/05/09(木) 22:30:50.860955デフォルトの名無しさん
2013/05/09(木) 22:32:36.480956デフォルトの名無しさん
2013/05/09(木) 22:37:27.780957デフォルトの名無しさん
2013/05/09(木) 22:40:07.93void (__stdcall *pf)()
これが一貫性があって最強
だがオススメしない
0958デフォルトの名無しさん
2013/05/09(木) 22:43:22.610959デフォルトの名無しさん
2013/05/09(木) 22:46:19.880960デフォルトの名無しさん
2013/05/09(木) 22:54:52.13>p が const なのだから
んなこたーない。
constはconst Xの例外を除いて常に左に掛かる
0961デフォルトの名無しさん
2013/05/09(木) 23:31:06.64そんなことよりBASICやろうぜ
0962デフォルトの名無しさん
2013/05/09(木) 23:46:15.29int * const p = NULL;
これ、p が定数でしょ
int *const p = NULL;
より
int* const p = NULL;
の方が分かりやすい
0963デフォルトの名無しさん
2013/05/10(金) 03:40:42.030964デフォルトの名無しさん
2013/05/10(金) 04:58:59.43struct tmpclass
{
template<typename X>
X operator()(X x)
{return x;}
};
これの特殊化がgccだと
tmpclass<double>().operator()<double>(5)
で出来てしまうのだけど他でもちゃんと動くのだよね?
0965デフォルトの名無しさん
2013/05/10(金) 05:08:25.520966デフォルトの名無しさん
2013/05/10(金) 07:38:37.39ガッ!
0967デフォルトの名無しさん
2013/05/10(金) 12:13:32.56僕は好きやで、typedefちゃん
0968デフォルトの名無しさん
2013/05/10(金) 19:37:46.75実際使われてんだから意識しなきゃ不味いって話なんで、正規のUnicode規格かどうかは関係あるのかね?
0969デフォルトの名無しさん
2013/05/10(金) 22:59:11.93取れる書き方だから噛みつかれたんだろ。
規格厨は「それは規格違反」って他人を避難
することに命を懸けるアスペだからな。
0970デフォルトの名無しさん
2013/05/11(土) 22:07:17.81struct B1 {};
struct B2 {};
struct D : public B1, B2 {};
D ar[2];
&(B2&)ar[0] と &ar[1] が同じアドレスに
なるのですが、何故でしょうか?
0971デフォルトの名無しさん
2013/05/11(土) 22:15:46.260972デフォルトの名無しさん
2013/05/11(土) 22:17:13.69マイクロソフトに訊け。
0973デフォルトの名無しさん
2013/05/11(土) 22:34:16.00「同じアドレスになる」をどうやって確認したんだ?
0975デフォルトの名無しさん
2013/05/11(土) 23:09:29.25ま、これが問題になるような場面はねーな
0976デフォルトの名無しさん
2013/05/11(土) 23:18:42.490977デフォルトの名無しさん
2013/05/11(土) 23:19:25.44ビール飲むとやっぱり頭が鈍るな
0978デフォルトの名無しさん
2013/05/11(土) 23:20:04.170979デフォルトの名無しさん
2013/05/11(土) 23:24:52.33struct B2
struct D
のsizeofっていくつになるんですか
0980デフォルトの名無しさん
2013/05/11(土) 23:25:31.88これは規格で決められている
0981デフォルトの名無しさん
2013/05/11(土) 23:36:00.800982デフォルトの名無しさん
2013/05/11(土) 23:46:00.46そのサイズがゼロじゃ都合が悪いんだよ
具体的にどういう理由だっけ
違うインスタンスは必ず違うアドレスになるようにしたとD&Eに書いてあった
0983デフォルトの名無しさん
2013/05/11(土) 23:48:48.70イテレーターがいきなりループ抜けそう。
やはりC++にもinterfaceを入れるべきだった。
0984デフォルトの名無しさん
2013/05/12(日) 00:24:14.55ttp://ideone.com/IetmJ6
そのコンパイラの不具合だと思うけどな
EBOのあるなしでsizeof(D)が変わることはあっても
> &(B2&)ar[0] と &ar[1] が同じアドレスに
これはおかしいだろ
0985デフォルトの名無しさん
2013/05/12(日) 00:30:05.86type&へのキャストってどういう意味?
0986デフォルトの名無しさん
2013/05/12(日) 00:40:04.320987デフォルトの名無しさん
2013/05/12(日) 00:48:17.290988デフォルトの名無しさん
2013/05/12(日) 00:50:22.81{
typedef T value_type;
};
template<typename T> struct bbb : public aaa<T>
{
bbb()
{
value_type t = 0; // error: expected ‘;’ before ‘t’
}
};
bbb<int> b;
というエラーが出ます。bbbからvalue_typeを使うにはどういう方法があるでしょうか
g++4.5.3です。
0989デフォルトの名無しさん
2013/05/12(日) 00:55:46.88コンパイラの問題なのは>>972も指摘
してるようにその通りなのだけど、
B1サブオブジェクトとB2サブオブジェクトが
同じアドレスってありなの?そのGCCの結果
0990デフォルトの名無しさん
2013/05/12(日) 00:57:36.20typename aaa<T>::value_type ?
0991デフォルトの名無しさん
2013/05/12(日) 01:42:16.63struct B{ char c; };
struct D1L:B{};
struct D1R:B{};
struct D2:D1L,D1R{};
D2 d;
B & rbl = (B &)(D1L &)d;
B & rbr = (B &)(D1R &)d;
0992デフォルトの名無しさん
2013/05/12(日) 01:49:38.98いや、全然
多重継承を使わないと理解できないありがたみだとすると、多重継承使ったことないから
わからなくて当然なのかもしれないが
0993デフォルトの名無しさん
2013/05/12(日) 02:18:31.52rblはD1L側、rbrははD1R側が継承した構造体Bの参照を取っている。
でも多重継承の利点て、インターフェイスを継承させる事ではないのか?
0994デフォルトの名無しさん
2013/05/12(日) 02:31:13.84そんなことができるんか
これもまた参照とポインタとの違いなんだな
0995デフォルトの名無しさん
2013/05/12(日) 03:11:50.39ポインタの方が機能は多いけど
0996デフォルトの名無しさん
2013/05/12(日) 08:12:35.60多重継承だけの問題じゃない。
struct B {};
struct D : virtual B {};
D d;
D * pd = &d;
B * pb = pd;
ここでpdとpbのアドレスは違う。
代入時の型変換でアドレス変換が行われる。
(T&) は *(T*)&と意味的に同じだから
裏ではアドレス調整が行われている。
0997デフォルトの名無しさん
2013/05/12(日) 08:14:37.920998デフォルトの名無しさん
2013/05/12(日) 08:16:18.70継承の度にどんどんサイズおっきくなるよね?
0999デフォルトの名無しさん
2013/05/12(日) 08:23:20.20http://ideone.com/ZQtLvW
1000デフォルトの名無しさん
2013/05/12(日) 08:31:49.40マジか、初めて知った
これもstatic castの一つ?
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。