C++相談室 part98
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2012/08/25(土) 00:46:04.23ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレに
お願いします。
前スレ
C++相談室 part97
http://toro.2ch.net/test/read.cgi/tech/1343559275/
このスレもよろしくね。
【初心者歓迎】C/C++室 Ver.79【環境依存OK】
http://toro.2ch.net/test/read.cgi/tech/1341052801/
■長いソースを貼るときはここへ。■
http://codepad.org/
http://ideone.com/
0002デフォルトの名無しさん
2012/08/25(土) 00:46:47.34[C++ FAQ]
http://www.parashift.com/c++-faq/
http://www.bohyoh.com/CandCPP/FAQ/ (日本語)
Cとその仕様を比較しながらの解説なので分かりやすい。
***** 質問の前に必ずこの二つに目を通してください *****
[C/C++ リファレンス]
http://en.cppreference.com/w/cpp (英語)
http://ja.cppreference.com/w/cpp (↑の日本語訳だけどまだ未完)
[Stroustrup]
http://www.stroustrup.com/
[C++ International Standard]
http://www.iso.org/iso/iso_catalogue/catalogue_ics/catalogue_detail_ics.htm?csnumber=50372
[JTC1/SC22/WG21 - C++]
http://www.open-std.org/jtc1/sc22/wg21/
ここから規格の最新ドラフトがダウンロードできる。
[JIS X3014]
http://www.jisc.go.jp/app/pager?%23jps.JPSH0090D:JPSO0020:/JPS/JPSO0090.jsp=&RKKNP_vJISJISNO=X3014
ISO規格の日本語訳。JIS X3014:2003はISO/IEC 14882:2003 (E)に対応。
0003デフォルトの名無しさん
2012/08/25(土) 00:47:18.56amazon C,C++関連書籍
http://www.amazon.com/exec/obidos/tg/browse/-/3956/ref=br_bx_c_1_3/
http://www.amazon.co.jp/b/?node=754384
The C++ Programming Language
http://www.amazon.com/exec/obidos/ASIN/0201700735/
http://www.amazon.co.jp/exec/obidos/ASIN/475611895X/ (翻訳)
C++ Primer (3rd Edition)
http://www.amazon.com/exec/obidos/ASIN/0201824701/
http://www.amazon.co.jp/exec/obidos/ASIN/4756140068/ (翻訳)
The C++ Standard Library
http://www.amazon.com/exec/obidos/ASIN/0201379260/
http://www.amazon.co.jp/exec/obidos/ASIN/4756137156/ (翻訳)
Effective C++
http://www.amazon.com/exec/obidos/ASIN/0201924889/
http://www.amazon.co.jp/exec/obidos/ASIN/4756118089/ (翻訳)
More Effective C++
http://www.amazon.com/exec/obidos/ASIN/020163371X/
http://www.amazon.co.jp/exec/obidos/ASIN/4756118534/ (翻訳)
Exceptional C++
http://www.amazon.com/exec/obidos/ASIN/0201615622/
http://www.amazon.co.jp/exec/obidos/ASIN/4894712709/ (翻訳)
More Exceptional C++
http://www.amazon.com/exec/obidos/ASIN/020170434X/
http://www.amazon.co.jp/exec/obidos/ASIN/4894714833/ (翻訳)
Exceptional C++ Style
http://www.amazon.com/exec/obidos/ASIN/0201760428/
http://www.amazon.co.jp/exec/obidos/ASIN/4894714663/ (翻訳)
0004デフォルトの名無しさん
2012/08/25(土) 00:48:47.01Effective STL
http://www.amazon.com/exec/obidos/ASIN/0201749629/
http://www.amazon.co.jp/exec/obidos/ASIN/4894714108/ (翻訳)
Modern C++ Design
http://www.amazon.com/exec/obidos/ASIN/0201704315/
http://www.amazon.co.jp/exec/obidos/ASIN/4894714353/ (翻訳)
C++ Templates
http://www.amazon.com/exec/obidos/ASIN/0201734842/
C++ Template Metaprogramming
http://www.amazon.com/exec/obidos/ASIN/0321227255/
0005デフォルトの名無しさん
2012/08/25(土) 00:51:23.69[Boost]
Boost http://www.boost.org/
(日本語) http://www.kmonos.net/alang/boost/
(日本語) http://shinh.skr.jp/boost/
[標準ライブラリ]
SGI-STL http://www.sgi.com/tech/stl/
STLport http://stlport.sourceforge.net/
GNU libstdc++ http://gcc.gnu.org/libstdc++/
Apache C++ Standard Library (STDCXX) http://stdcxx.apache.org/
STLFilt http://www.bdsoft.com/tools/stlfilt.html
(日本語) http://episteme.wankuma.com/stlprog/ (※1999年発行注意)
[Loki]
http://sourceforge.net/projects/loki-lib/
LokiPort-MSVC6sp5 http://fara.cs.uni-potsdam.de/~kaufmann/?page=lokiport
0006デフォルトの名無しさん
2012/08/25(土) 00:59:12.13変更点
- 禿リンクを www.stroustrup.com に変更
- Libraries復活(順番間違えた。Booksよりこっちが先だった。)
0007デフォルトの名無しさん
2012/08/25(土) 12:46:08.11struct node {
list<edge> edges;
node_data data;
};
struct edge {
node * to;
edge_data data;
};
struct graph {
vector<node> nodes;
};
こんな構造でグラフを作ってます
グラフの形状が初期化してから変わらないなら問題ないのですが
これだと要素の追加削除に無駄が多い気がします
もっとグラフの変形に強いデータ構造はないでしょうか
0008デフォルトの名無しさん
2012/08/25(土) 13:12:29.80疎なグラフならstd::map<Node, Node>でよろしかろう
ここでNodeはノードを表す型で、std::map<key, value>が勝手に行うコピーに手当てされているものとする
疎でないグラフなら行列(隣接行列)でおk
行列表現のC++における最も良いやり方は知らん
00098
2012/08/25(土) 13:18:29.33- Vのは、std::map<int, Node>で表してノードのキーからNodeオブジェクトを引けるようにしておいて、
- Eのは、std::map<int, int>でノードのキーの対として表現する
等の2段構えとするのが自然かも試練
詳細は何を効率よく行いたいかによる有効グラフはEの表現で工夫する
0010デフォルトの名無しさん
2012/08/25(土) 14:01:34.43その場合const性を保つために暗黙的にコピー動作に変更されているということでしょうか
これをエラーや警告を出すようにすることはできませんか
特にaut
const std::wstring STRING = L"hoge";
void f(const std::wstring &s) {}
const std::wstring & e() {return STRING;}
int main()
{
f(L"hoge");
auto a = e();
a.push_back(L'a');
std::wstring s = e();
s.push_back(L'a');
}
0011デフォルトの名無しさん
2012/08/25(土) 14:41:49.34そこコードのどこについてどんなエラーや警告を出したいの?
0012デフォルトの名無しさん
2012/08/25(土) 15:09:52.69仮想関数を呼び出したいんだけどどうすればいいでしょうか?
class SuperC{
virtual bool func()=0;
};
class SubC{
virtual bool func(){ 何らかの処理 }
};
int main(){
SuperC* super=new SubC();
return 1;
}
インスタンス化する予定はないのにSuperCのポインタは宣言できませんって言われる
0013デフォルトの名無しさん
2012/08/25(土) 15:10:33.85です
0014デフォルトの名無しさん
2012/08/25(土) 15:11:10.510015デフォルトの名無しさん
2012/08/25(土) 15:15:23.98しにたいありがとう
0016デフォルトの名無しさん
2012/08/25(土) 15:20:22.69まずe()は、return STRING;であって return &STRING;ではないから、
e()の呼び出し毎にSTRINGがコピー(ていうか新規生成)されてそれがスタックに積まれて返される
(中略)
以降は呼び出し元の勝手
0017デフォルトの名無しさん
2012/08/25(土) 15:22:37.97環境によるだろ。
俺はBorland-C++5.6.2に -D_RTLDLL オプションを指定して、極力
ランタイムを使用するようにして使っているが、例えばstd::vectorを
使っても使わない時と比べ10Kほどしか増えない
すげえ。ダイナミックリンクしといてファイルサイズが増えないとかいってるよ。この人。
C1010: プリコンパイル済みヘッダーの検索中に予期しない EOF を検出しました。
とかいうエラーが出るんだけどこれってどうすればいいの?
#include <stdafx.h>
後死ね。
言葉が悪いな。それで教えているつもりか。
まぁヒントぐらいにはなったな。
うむごくろう。
0018デフォルトの名無しさん
2012/08/25(土) 15:26:20.93飽・き・た
0019デフォルトの名無しさん
2012/08/25(土) 16:51:07.330020デフォルトの名無しさん
2012/08/25(土) 16:54:23.470021デフォルトの名無しさん
2012/08/25(土) 17:30:06.45コピーをもろに要求する文脈だが?
変更なんかされてなく
0022デフォルトの名無しさん
2012/08/25(土) 17:38:57.110023デフォルトの名無しさん
2012/08/25(土) 17:59:56.080025デフォルトの名無しさん
2012/08/26(日) 02:14:03.65>これをエラーや警告を出すようにすることはできませんか
>10なコードでコピーが起きるのは、e()が参照を返した後の話なのでe()の対策ではできない
エラーにしたいとしたら、STRINGをコピー不可能なクラスにすることが考えられる
例えば class wsrting2 : public std::wstring { private: wstring2(const wstring2&); /* delete */ };
というクラスを設け、>10なコードのstd::wstringをwstring2の置換する(std::wstringのかわりにwstring2を使う
他にもっと良い方法があるかもしれんが知らん
0026デフォルトの名無しさん
2012/08/26(日) 08:15:46.30auto a = e();
じゃなくて、
auto& a = e();
じゃないのか?
0027デフォルトの名無しさん
2012/08/26(日) 22:14:04.26なんでiteratorにしちゃったの標準のアホども
0028デフォルトの名無しさん
2012/08/26(日) 22:21:19.55CTest::CTest(int num) : m_num(num)
{
}
↑”:”を付けて右にm_num(num)と書いてあるんですが、これなんという書式名?
ぐぐって調べたいが検索キーワードがわからん
0029デフォルトの名無しさん
2012/08/26(日) 22:22:07.72initializer_list
0030デフォルトの名無しさん
2012/08/26(日) 22:55:33.72サイズ増えるのがイヤだったんじゃね
0031デフォルトの名無しさん
2012/08/26(日) 23:01:45.58増えなくね?
例えばvectorなら始点終点のポインタで普通は4*2=8
vectorに対するenumeratorを実装するとしたら
コンテナへのポインタ+現在位置へのポインタで4*2=8
あるいは始点終点へのポインタで同じく4*2=8
分離してるかしてないかってだけで実用上では同じサイズでしょ
0032デフォルトの名無しさん
2012/08/27(月) 00:00:53.370033デフォルトの名無しさん
2012/08/27(月) 11:51:22.26自作するときにかなりだるい
enumeratorの実装は簡単だったなぁ
0034デフォルトの名無しさん
2012/08/27(月) 16:08:36.99わざとか? それとも真性アフォ?
0035デフォルトの名無しさん
2012/08/27(月) 18:33:18.26やっぱりかw
ぐぐっても出てこないはずだ
で、正解は?
0036デフォルトの名無しさん
2012/08/27(月) 18:40:30.75呼び方は知らん
ttp://wisdom.sakura.ne.jp/programming/cpp/cpp22.html
0037デフォルトの名無しさん
2012/08/27(月) 18:46:50.290038デフォルトの名無しさん
2012/08/27(月) 23:18:32.910039デフォルトの名無しさん
2012/08/28(火) 02:26:34.66STLが期待してるクラス内のtypedefとかメンバ関数とか制約をきっちり理解したいです
0040デフォルトの名無しさん
2012/08/28(火) 02:49:23.570041デフォルトの名無しさん
2012/08/28(火) 09:58:43.87規格書のほうは有料(?)っぽいのでとりあえずリファレンス読んでみます。どうもでした
0042デフォルトの名無しさん
2012/08/28(火) 20:48:19.67があるんだから
輪廻のStroustrup
もあっていいと思う
0043デフォルトの名無しさん
2012/08/28(火) 21:12:14.190044デフォルトの名無しさん
2012/08/28(火) 21:45:49.670045デフォルトの名無しさん
2012/08/29(水) 00:36:28.06なんかハマって脱力した
struct Base
{
protected:
void Function(){}
};
struct Derived : Base
{
Derived(Base *b)
{
Base::Function(); // OK
b->Function(); // NG
}
};
0046デフォルトの名無しさん
2012/08/29(水) 00:56:36.240047デフォルトの名無しさん
2012/08/29(水) 01:03:21.50割愛したコードに究極の馬鹿が隠れていそうだな
0048デフォルトの名無しさん
2012/08/29(水) 01:19:23.86実際には継承した方を完全スルーして引数で受け取った方を動かそうとするから・・・(ノ∀`)
0049デフォルトの名無しさん
2012/08/29(水) 02:03:01.45「見えちゃ嫌だけどちょっとは見えたほうが」
そんなの微妙すぎ。
0050デフォルトの名無しさん
2012/08/29(水) 02:07:19.78糞が氏++ね
struct Derived : Base
{
Derived(Base *b)
{
Base::Function(); // OK
b->Function(); // NG
static_cast<Derived*>(b)->Function(); // OK
}
};
0051デフォルトの名無しさん
2012/08/29(水) 02:15:32.03おっぱいうらない
0052デフォルトの名無しさん
2012/08/29(水) 02:20:02.67無理キャストを通すやつが悪いに決まってる。
0053デフォルトの名無しさん
2012/08/29(水) 05:30:30.760054デフォルトの名無しさん
2012/08/29(水) 09:06:53.06dynamic_cast でないと危険だろ
0055デフォルトの名無しさん
2012/08/29(水) 10:03:22.12チラリズムだよ言わせんな恥ずかしい
0056デフォルトの名無しさん
2012/08/29(水) 12:05:46.80friend好きは卑屈過ぎます 自分に自信がない証拠です
名前空間は決して怖くなーい 勇気を持ってください
0057デフォルトの名無しさん
2012/08/29(水) 12:23:31.94メンバ関数ってなんでわざわざ
struct Obj {
void Method(void);
};
Obj obj;
obj.Method();
っていうふうにドットつけて書くんですかね?
struct Obj {
void Method(Obj & obj);
};
Obj obj;
Method(obj);
みたいな仕様ではダメな理由でもあったんでしょうか?
0058デフォルトの名無しさん
2012/08/29(水) 12:34:20.98禿本には両者がほとんど同じと書いてある
おまえさんのご希望は ADL がかなえてくれるかも知れない
0059デフォルトの名無しさん
2012/08/29(水) 12:46:20.86なんだか後者だと「クラスが引数な関数」っぽい……
0060デフォルトの名無しさん
2012/08/29(水) 13:33:23.61わざわざ?
メンバー関数に同じ引数をわざわざ繰り返し書くよりもドット1文字で済む方が楽に決まってるじゃん
0061デフォルトの名無しさん
2012/08/29(水) 14:03:34.49は?
0062デフォルトの名無しさん
2012/08/29(水) 14:05:49.31C++からC++/CLIのクラスライブラリ(dll)を使うことは可能なのでしょうか?
0063デフォルトの名無しさん
2012/08/29(水) 14:13:46.940064デフォルトの名無しさん
2012/08/29(水) 14:23:52.13困った...
0065デフォルトの名無しさん
2012/08/29(水) 14:26:17.99同感
まぎらわしいよな
0066デフォルトの名無しさん
2012/08/29(水) 15:37:27.56主語述語が逆転したみたいだな
唐突に出てくるメソッドが正体不明で気持ち悪い
0067デフォルトの名無しさん
2012/08/29(水) 15:53:06.440068デフォルトの名無しさん
2012/08/29(水) 16:06:21.010069デフォルトの名無しさん
2012/08/29(水) 18:04:30.960070デフォルトの名無しさん
2012/08/29(水) 18:31:34.310071デフォルトの名無しさん
2012/08/29(水) 18:41:18.74「ほとんど同じ」とか言いながら
virtual と多重継承でぷーくすくす
0072デフォルトの名無しさん
2012/08/29(水) 19:30:48.03C++も少しは見習えよって思うよね
0073デフォルトの名無しさん
2012/08/29(水) 23:43:39.95お前みたいなバカがやると盛大にメモリリークするから辞めておけ。
0074デフォルトの名無しさん
2012/08/30(木) 00:33:04.200075デフォルトの名無しさん
2012/08/30(木) 00:35:59.700076デフォルトの名無しさん
2012/08/30(木) 00:42:00.580077デフォルトの名無しさん
2012/08/30(木) 00:45:28.120078デフォルトの名無しさん
2012/08/30(木) 00:50:21.360079デフォルトの名無しさん
2012/08/30(木) 01:08:04.940080デフォルトの名無しさん
2012/08/30(木) 01:43:02.720081デフォルトの名無しさん
2012/08/30(木) 01:51:36.460082デフォルトの名無しさん
2012/08/30(木) 07:37:53.750083デフォルトの名無しさん
2012/08/30(木) 08:02:12.420084デフォルトの名無しさん
2012/08/30(木) 08:53:04.30バッファを一箇所にしてnull文字とかをデリミタにして区切るってこと?
固定長にする理由は?
0085デフォルトの名無しさん
2012/08/30(木) 08:55:10.42その場合、素直に実装すると
バッファ長に対する実使用量をみるのに毎回ループかけることになる
0086デフォルトの名無しさん
2012/08/30(木) 10:32:45.28入れるときよりclearのほうが時間掛かるってこと?
それぞれ計測してみた?環境は?
0087デフォルトの名無しさん
2012/08/30(木) 10:44:37.971MB程度のブロック単位でmallocして、それを切り分ければ
まとめて解放出来るだろ
0088デフォルトの名無しさん
2012/08/30(木) 11:04:10.11>>86
reserveして入れていますが、入れるときは30秒程度、clear時は10分以上かかります。
環境はWindows Vista SP2 Visual Studio 2010 SP1 です。
簡単にstring使ってましたが、そもそもstringを使うこと自体がこの規模だと厳しいのですかね?
0089デフォルトの名無しさん
2012/08/30(木) 11:24:37.240090デフォルトの名無しさん
2012/08/30(木) 11:27:33.46へー
0091デフォルトの名無しさん
2012/08/30(木) 12:21:47.350092デフォルトの名無しさん
2012/08/30(木) 12:30:30.10デバッガの上で動かすならせめて _NO_DEBUG_HEAP を設定してから測れ
デバッグ状態だとLFHとかの高速アロケータOffになんだよ
0093デフォルトの名無しさん
2012/08/30(木) 13:32:24.51_NO_DEBUG_HEAP=1で瞬時に解放できるようになりました。
ありがとうございました。
0094デフォルトの名無しさん
2012/08/30(木) 13:48:06.52そういうロジックって、ヘッダファイルに書く?それともcppに書く?
0095デフォルトの名無しさん
2012/08/30(木) 14:07:37.250096デフォルトの名無しさん
2012/08/30(木) 17:19:27.27virtual void Func() = 0;
};
struct IFuga {
virtual IHoge GetHoge(void) = 0;
};
インターフェースを返すメンバ関数を持ったインターフェースを作りたいんですがうまくいきません
なにかいい解決法はないでしょうか
0097デフォルトの名無しさん
2012/08/30(木) 17:40:44.810098デフォルトの名無しさん
2012/08/30(木) 19:36:04.94ちがうちがう
各文字列を固定長にするだけ
文字列の個数は可変長
0099デフォルトの名無しさん
2012/08/30(木) 20:17:32.56お前頭おかしいんじゃね?
何がHogeだよ。
お前みたいなキチガイにプログラム組んでもらわなくても誰も困らないからさっさと消えろ。
0100デフォルトの名無しさん
2012/08/30(木) 20:27:24.59HogeHogeHogeHogeHogeHogeHogeHogeHogeHogeHogeHogeHogeHogeHogeHoge
HogeHogeHogeHogeHogeHogeHogeHogeHogeHogeHogeHageHogeHogeHogeHoge
HogeHogeHogeHogeHogeHogeHogeHogeHogeHogeHogeHogeHogeHogeHogeHoge
0101デフォルトの名無しさん
2012/08/30(木) 20:36:04.66hoge使っても異常だって気付かないんでしょ?
だから自分のコードの異常にも気付かない
お前本当にゴミだな
0102デフォルトの名無しさん
2012/08/30(木) 20:50:22.08今はC++11となってるみたいなんですがこれもう買っちゃっていいんですかね?
0103デフォルトの名無しさん
2012/08/30(木) 20:51:28.390104デフォルトの名無しさん
2012/08/30(木) 20:51:28.33そりゃまともなコードも書けないだろ
親がDQNだと>>96みたいなヴァカが生まれる
世の中に直接的に迷惑をかけるのは>>96だけど
原因は>>96の親
>>96の親は世の中にとって産廃並の不要物
0105デフォルトの名無しさん
2012/08/30(木) 20:56:02.94同情するわ。
0106デフォルトの名無しさん
2012/08/30(木) 21:02:23.180107デフォルトの名無しさん
2012/08/30(木) 21:12:56.720108デフォルトの名無しさん
2012/08/30(木) 21:14:50.32ISO標準の承認(C++11)まで行ったから買っちゃっていいよ
0109デフォルトの名無しさん
2012/08/30(木) 23:51:06.140110デフォルトの名無しさん
2012/08/30(木) 23:52:54.21どれ?
0111デフォルトの名無しさん
2012/08/31(金) 01:25:51.12本当に何がしたいのかわからんわ...
0112デフォルトの名無しさん
2012/08/31(金) 01:57:03.73まあ、これとか?
https://github.com/cplusplus/draft/
0113デフォルトの名無しさん
2012/08/31(金) 02:03:05.22urlとタイトルに目を通したか?
0114デフォルトの名無しさん
2012/08/31(金) 06:46:27.56キモすぎ
0115デフォルトの名無しさん
2012/08/31(金) 06:50:44.18N3338で変更点が列挙されている。
0116デフォルトの名無しさん
2012/08/31(金) 07:42:13.77Hなオージー
0117デフォルトの名無しさん
2012/08/31(金) 11:20:23.460118デフォルトの名無しさん
2012/08/31(金) 11:25:29.21正式版って買う価値なしってことですかね
0119デフォルトの名無しさん
2012/08/31(金) 19:24:40.05割に合わないし廃止になったりしないんだろうか
0120デフォルトの名無しさん
2012/08/31(金) 20:14:31.95狭き門で募集かければ総額バカ安でできるぞ
0121デフォルトの名無しさん
2012/09/01(土) 01:42:04.08品質重視に決まってるから「一応」業者に依頼すんじゃね、知らないけど
0122デフォルトの名無しさん
2012/09/01(土) 04:54:34.77std::ostream& operator<<(std::ostream& stream, const Foo& obj)
を定義したとして、その中で
stream << obj.a << obj.b;
と書いたとき、下記のsetw()の効き方はどうなるのが正しいのよさ?
Foo obj;
std::cout << setw(16) << obj;
VC++ 2008だと、obj.aの出力のみにかかっているような気がしてならないんですが、
std::ostringstream等で一つの文字列にまとめる以外の回避策はありますか
0123デフォルトの名無しさん
2012/09/01(土) 06:09:56.23今時PDFがスキャン画像
0124デフォルトの名無しさん
2012/09/01(土) 08:48:44.97OCR付きで自炊したPDFみたいな感じ。
0125デフォルトの名無しさん
2012/09/01(土) 10:15:25.18自己解決しますた、
obj.aとobj.bの表示幅がそれぞれwa, wbとして事前に与えられる(固定長等)として、
これでおk
int w = stream.width; // (1)
stream << setw(w - (wa + wb)) << obj.a << obj.b; // (2)
さもなくば、std::ostringstreamを使わざるを得ない:
std::ostringstream ost;
ost << obj.a << obj.b;
stream << ost.str();
ユーザー定義型変換等でobj.a, obj.bがstd::stringに変換可能なら、std::stringの連結でも可
ストリームの用途からして、(1)と(2)の間に他スレッドがstreamに出力するケースは
考えなくて良いよね
0126デフォルトの名無しさん
2012/09/01(土) 14:33:58.09Cの構造体に書式あわせただけだろ
0127デフォルトの名無しさん
2012/09/01(土) 17:15:43.930128デフォルトの名無しさん
2012/09/01(土) 18:48:12.05メンバ変数のオフセット値を取り出す際、現状以下のような関数を定義して取得しているのですが、
この変換を静的に解決してテンプレート引数として使いたいのです。
どうすればいいでしょうか
template<typename U,typename Class>
unsigned int offset( U Class::*address32 )
{
union
{
U Class::*pointer;
unsigned int t;
}imp;
imp.pointer = address32;
return imp.t;
};
0129デフォルトの名無しさん
2012/09/01(土) 18:59:18.370130デフォルトの名無しさん
2012/09/01(土) 19:29:18.65offsetofはインテリセンスとも相性悪いのがちょっと・・・
あと、考えてみたらオフセット値はテンプレート引数にはつかないですね。
すみません、質問閉じます。
0131デフォルトの名無しさん
2012/09/01(土) 19:30:17.99○使えない
0132デフォルトの名無しさん
2012/09/01(土) 23:24:16.57肛門にチンコを挿入するような演算子を使えよ。
0133デフォルトの名無しさん
2012/09/01(土) 23:30:01.39>肛門にチンコを挿入するような演算子を使えよ。
*← こんなのか?
0134デフォルトの名無しさん
2012/09/02(日) 00:33:38.78C用に定義された可変長構造体の
固定長部分のサイズを取得するのに
offsetofは使わなくもない
0135デフォルトの名無しさん
2012/09/02(日) 10:02:36.15このコードにおいて同じ文で生成されたオブジェクトは後に生成されたものから破棄されています
この動作はC++規格で決められている動作なのでしょうか もしそうであるならば規格のどこに記述がありますか
0136デフォルトの名無しさん
2012/09/02(日) 11:07:18.6712.2 Temporary objects
0137デフォルトの名無しさん
2012/09/02(日) 11:59:08.95完結式の評価の最終段階で行う (12.2p3)
c.f().f().f().f().f(); の終わりで解体
基本的に変数は生成された逆順で解体される(12.2p5,3.7.1-2,3.6.3,6.7)
かな?
0138デフォルトの名無しさん
2012/09/02(日) 12:09:28.060139デフォルトの名無しさん
2012/09/02(日) 12:41:01.25ありがとうございます
0140デフォルトの名無しさん
2012/09/02(日) 13:54:01.43乗っかるようで申し訳ないけど、ふと疑問に思った事があります。
「リファレンスで束縛」のところなんだけど。
もしかして、関数の戻値で値返ししているような一時オブジェクトも、リファレンスで受け取れる仕様だったりする?
string getName() {return "moemoe";}
const string& s = getName();
もしかして、これ合法?
0141デフォルトの名無しさん
2012/09/02(日) 14:18:56.500142デフォルトの名無しさん
2012/09/02(日) 14:32:35.150143デフォルトの名無しさん
2012/09/02(日) 17:49:49.48これだけ覚えておけばいいよってことはなんですか?
どの入門書、解説ページ見てもストリームと演算子オーバーライドから始まって、
こんなん使わない、sprintfでいいやんとしか思えないのです。
やりたいこと等
・Javaで作ったSwingアプリをGDIアプリに移植したい。
・C言語の基本構文は知ってる、ポインタと修飾子はよく知らない
・GDIについては自分で調べる
・Javaのライブラリは三角関数(Math)のみ使用、文字列は使わない。
0144デフォルトの名無しさん
2012/09/02(日) 17:54:17.12>ポインタと修飾子はよく知らない
ここを改善すればよい
>GDIについては自分で調べる
Windowsベースなら、それはそれで茨の道だが、とりあえずポインタだ
0145デフォルトの名無しさん
2012/09/02(日) 18:18:44.90ありがとう。
知らなかった。
割りと避けてたかも。
これで安心して規格書漁れるよ。
有るか無いかすらわからない情報を探すのが、一番骨が折れるんだよね。
0146デフォルトの名無しさん
2012/09/02(日) 21:56:10.39まぁだいたい分かってると思うんですが、学習経験と実務経験がないから自信がないって感じですかね。
Javaは新入社員研修でIBMのネット教材を思いっきりやらされたから自信があるまでに理解できたけど
C/C++はテキスト見ながらだと危うく感じてしまいますね。
ま、理解できたつもりでやってみます。
0147デフォルトの名無しさん
2012/09/02(日) 22:19:04.43危うい・・
0148デフォルトの名無しさん
2012/09/02(日) 22:25:54.93main 関数内の f2 を constexpr にするとコンパイルが通りません。
何が問題なのか教えていただけないでしょうか。
#include <iostream>
#include <initializer_list>
struct Foo {
constexpr Foo() : p0(), p1() {}
constexpr Foo(std::initializer_list<int> list) : p0(*list.begin()), p1(*(list.begin()+1)) {}
constexpr Foo(const Foo& bb) : p0(bb.p0), p1(bb.p1) {}
int p0;
int p1;
};
constexpr Foo operator | (const Foo lhs, const Foo rhs) {
return Foo{lhs.p0 | rhs.p0, lhs.p1 | rhs.p1};
}
int main() {
constexpr Foo f0{1,2};
constexpr Foo f1{4,8};
const Foo f2(f0 | f1); // OK
// constexpr Foo f2(f0 | f1); // NG
std::cout << f2.p0 << std::endl;
std::cout << f2.p1 << std::endl;
}
0149デフォルトの名無しさん
2012/09/02(日) 22:37:58.730150148
2012/09/02(日) 22:51:17.98tmp.cpp: 関数 ‘int main()’ 内:
tmp.cpp:21:26: in constexpr expansion of ‘operator|(Foo, Foo)(Foo((* & f1)))’
tmp.cpp:21:26: in constexpr expansion of ‘Foo(std::initializer_list<int>(((const int*)(&{(((int)lhs.Foo::p0) | ((int)rhs.Foo::p0)), (((int)lhs.Foo::p1) | ((int)rhs.Foo::p1))})), 2ul))’
tmp.cpp:21:26: エラー: ‘(std::initializer_list<int>::const_iterator)(&{5, 10})’ is not a constant expression
0151デフォルトの名無しさん
2012/09/02(日) 22:57:22.69お、java やってて、後から c やったときの、まごついたところをレポよろしくです。
自分はc/c++やってて今java/c#に苦戦中
0152デフォルトの名無しさん
2012/09/02(日) 23:31:10.81std::initializer_list<T> の size() も begin() も end() も constexpr 宣言されてないからダメ。
18.9/1 ね。
0153148
2012/09/04(火) 00:17:39.30ありがとうございます。
そうなると、配列を含むクラスのコンストラクタを constexpr にするには他の方法を使わないといけませんね。
0154デフォルトの名無しさん
2012/09/04(火) 04:09:38.27std::array でいいんじゃないの?
0155デフォルトの名無しさん
2012/09/04(火) 13:43:47.09すると10個のファイル転送が終わるまで処理が止まってしまいます。
コピーしろって命令だけ出した状態で直ぐに関数を終わりたいのですが
そのような関数はありますか?CopyFileExというのを見つけましたが
これはコピー中の経過が見えるだけで関数が待つという点で同じみたいです
出来れば別スレッドでコピーを実行とか難しいので非同期にコピーしてくれる関数がしりたいです
よろしくお願いします。
サンプルソース
for(i=0;i<10;i++)
{
CopyFile(src[i], dst[i]); //ここを非同期Copyにすり替えたい
}
0156デフォルトの名無しさん
2012/09/04(火) 13:58:44.05system("hoge.bat");ではいかんのか?
0157デフォルトの名無しさん
2012/09/04(火) 14:01:16.30hogeとか書いてる基地害はさっさと失せろ
お前マジで頭おかしいよ
自覚ないみたいだけど
0158デフォルトの名無しさん
2012/09/04(火) 14:07:14.04hogeだってよwwwww
ヴァカじゃねwwwwwwwwwwwwwww
0159デフォルトの名無しさん
2012/09/04(火) 14:14:09.230160デフォルトの名無しさん
2012/09/04(火) 14:15:40.36素直に別スレッドでやることにします
0161デフォルトの名無しさん
2012/09/04(火) 14:24:29.97Hoge使ってる奴の池沼率は異常に高い。
今回も例外ではなかった。
0162デフォルトの名無しさん
2012/09/04(火) 14:32:34.940163デフォルトの名無しさん
2012/09/04(火) 14:43:07.17hoge使わなくてもcopyfileとかcopyasynchronousとかいくらでもあるだろ
思考停止してんのかこいつ
0164デフォルトの名無しさん
2012/09/04(火) 14:44:43.160166デフォルトの名無しさん
2012/09/04(火) 15:04:47.490167デフォルトの名無しさん
2012/09/04(火) 15:06:39.020168デフォルトの名無しさん
2012/09/04(火) 15:10:23.44hoge厨キメぇ
0169デフォルトの名無しさん
2012/09/04(火) 15:10:58.900170デフォルトの名無しさん
2012/09/04(火) 16:48:23.72>アンタッチャブル
それってむしろスルー力高すぎる奴じゃね? TCG的に考えて
0171デフォルトの名無しさん
2012/09/04(火) 16:52:38.650172デフォルトの名無しさん
2012/09/04(火) 19:55:05.61ユーザーインターフェイスを表示するためにUIOption.AllDialogsを指定し(デフォルトでは表示されない)、
ユーザーがキャンセルしても例外(IOException)をスローしないようにUICancelOption.DoNothingを指定し(デフォルトでは、例外がスローされる)
//参照にMicrosoft.VisualBasic.dllが追加されている必要がある
Microsoft.VisualBasic.FileIO.FileSystem.CopyFile(
"C:\test.txt", "C:\test1.txt",
FileIO.UIOption.AllDialogs, FileIO.UICancelOption.DoNothing);
ttp://dobon.net/vb/dotnet/file/filecopy.html
0173デフォルトの名無しさん
2012/09/05(水) 01:00:28.74此処はC++
0174デフォルトの名無しさん
2012/09/05(水) 05:06:25.85ttp://www.crimson-systems.com/tips/t001r.htm
0175デフォルトの名無しさん
2012/09/05(水) 09:28:53.38これで試したら非同期コピーできたよ
簡単だし、途中でキャンセルできたり上書き確認もあったりで至れり尽くせり
0176デフォルトの名無しさん
2012/09/05(水) 23:21:52.92以下のようにReadFileを使うと取得することはできますが、unicode対応
できません(リンクのbuf をwcharにすると文字化けしてしまう)。
http://www.usamimi.info/~hellfather/win32api/API_CreatePipe.xml
unicodeとして取得したい場合どのようにするのが一般的でしょうか?
0177デフォルトの名無しさん
2012/09/05(水) 23:23:17.76ですが、popenは使いません。
CreateProcessを使うやり方でお願いします。
よろしくお願い致します。
0178デフォルトの名無しさん
2012/09/05(水) 23:28:03.37CreateProcessはファイルアクセスには無関係だろ。
単にファイルをunicodeで読み出せばいい。
0179デフォルトの名無しさん
2012/09/05(水) 23:42:40.65え?
知りたいのはc++プログラムから外部のexeを実行して標準出力を取得する方法です。
ファイル開いて中身を読むのではありません。
0180デフォルトの名無しさん
2012/09/06(木) 05:10:29.951.外部exeをUnicode出力するようにする
2.一旦sjisで受け取り、mbtowc()などでUnicodeに変換する
0181デフォルトの名無しさん
2012/09/06(木) 08:26:49.930182デフォルトの名無しさん
2012/09/06(木) 08:33:29.630183デフォルトの名無しさん
2012/09/06(木) 08:43:29.130184デフォルトの名無しさん
2012/09/06(木) 08:57:53.74sjis→Unicodeは問題ないんじゃないかな。実際にやってみないと分からんけど
気をつけるのはsetlocale(LC_CTYPE, "")しとくくらいか
0185デフォルトの名無しさん
2012/09/06(木) 09:43:42.68複数のノードが無向グラフを組むように互いに参照しあっています
外部からどれか一つでも参照されるノードがあればグラフ全体が生きて
全てのノードが参照されなくなったら即メモリなどのリソースを開放しなければなりません
0186デフォルトの名無しさん
2012/09/06(木) 10:27:59.620187デフォルトの名無しさん
2012/09/06(木) 10:38:49.97いろいろ試しましたがうまくいきませんでした
0188デフォルトの名無しさん
2012/09/06(木) 12:23:50.11C++標準のとどう違うのかは知らないけど
0189デフォルトの名無しさん
2012/09/06(木) 12:28:41.52文字コード
ワイド文字
この辺の扱いが難しい
とくにロケーション
0190デフォルトの名無しさん
2012/09/06(木) 15:29:07.85循環参照関連で面倒なら、GCに頼った方がいいんじゃね
アプリ全体の言語変えるのがアレなら
割と高速なGC持ち言語を(Lua, V8/JavaScript)を
組み込んで使うのも手
0191デフォルトの名無しさん
2012/09/06(木) 19:17:39.37wave sign 問題とか minus sign 問題とか
0192デフォルトの名無しさん
2012/09/06(木) 19:29:16.24http://codepad.org/IDIXMH8z
エラーの内容は以下の通りです。
1>Landform.obj : error LNK2019: 未解決の外部シンボル "public: void __thiscall GameObject::SetBody(class b2Body *)" (?SetBody@GameObject@@QAEXPAVb2Body@@@Z) が
関数 "public: __thiscall Landform::Landform(class b2Body *,struct b2Color const &)" (??0Landform@@QAE@PAVb2Body@@ABUb2Color@@@Z) で参照されました。
1>C:\workspace\C++\VC++\Practice\Debug\Practice.exe : fatal error LNK1120: 外部参照 1 が未解決です。
Box2D.hはhttp://box2d.org/のものですが、あまり関係ないような気がします。
こちらVC++2008、マルチバイト文字セット使用です。
vc++に強く関わる問題ならそちらのスレで聞きます。
0193デフォルトの名無しさん
2012/09/06(木) 19:43:40.230194デフォルトの名無しさん
2012/09/06(木) 19:47:13.620195デフォルトの名無しさん
2012/09/06(木) 20:01:30.090196デフォルトの名無しさん
2012/09/06(木) 20:11:19.27ライブラリをリンクしてないだけじゃない?
0197デフォルトの名無しさん
2012/09/06(木) 20:22:07.88どのライブラリが必要なのでしょう?
Box2Dならstdafx.hに
#ifdef _DEBUG
#pragma comment(lib, "Box2D_d.lib")
#pragma comment(linker, "/NODEFAULTLIB:MSVCRTD.lib")
#else
#pragma comment(lib,"Box2D.lib")
#pragma comment(linker, "/NODEFAULTLIB:MSVCRT.lib")
#endif
と記述し、stdafx.hは全てのファイルでインクルードする設定になっています。
GameObject.cppとLandform.cppなら静的ライブラリ化していません。
0198デフォルトの名無しさん
2012/09/06(木) 20:28:55.06stdafx.hの
#pragma comment(linker, "/NODEFAULTLIB:MSVCRTD.lib")
をコメントアウトした所リンクに成功しました。
お騒がせしました。
0199デフォルトの名無しさん
2012/09/06(木) 22:10:09.52無ければ自作しますが、今やってる作業はできるだけ中断したくないので、
できれば既存のライブラリを使いたいです。
求めている機能・性能は下記のものです(括弧内は例です)。
・2進数を表現した文字列による初期化(Bits bs("1011001001101"))
・インデックスによる1ビット単位の高速リードアクセス(if (bits[3] == 1) )
この2つが満たされれば、他の機能・性能は特に要りません。
初期化以降リードオンリーでも、リサイズが非効率でもかまいません。
0200デフォルトの名無しさん
2012/09/06(木) 22:16:48.400201デフォルトの名無しさん
2012/09/07(金) 00:01:52.260202デフォルトの名無しさん
2012/09/07(金) 00:07:45.14標準では、無いから自作しな。
0203デフォルトの名無しさん
2012/09/07(金) 00:08:48.24boost::dynamic_bitset
これ以上の物を見た事がない
0204デフォルトの名無しさん
2012/09/07(金) 00:10:11.590205デフォルトの名無しさん
2012/09/07(金) 00:40:59.770206デフォルトの名無しさん
2012/09/07(金) 00:47:17.550207デフォルトの名無しさん
2012/09/07(金) 00:49:59.72http://d.hatena.ne.jp/fjnl/20111206/1323159773
0208199
2012/09/07(金) 07:12:39.15用件を全て満たし、かつ使いやすそうだという事で、
>>203 の boost::dynamic_bitset を採用することにします。
0209デフォルトの名無しさん
2012/09/07(金) 12:11:55.97デリファレンスでコンテナの中身への参照をそのまま返すのではなく
なにか他の型のテンポラリオブジェクトを返すようなイテレーターって
ランダムアクセスできようがなんだろうがカテゴリはoutput_iteratorでいいんですか?
例えば
template <class Proxy> class MyIterator {
std::vector<MyClass>::iterator i_;
public:
Proxy operator * (void) const { return Proxy(*i_); }
// ry
};
std::vector<MyClass> vec;
MyIterator<Hoge> i = vec.begin(), j = vec.end();
while(i != j) {
*i = MyClass(); // コンパイルされるがテンポラリへの代入なので意味ない。あるいは型によってはコンパイルエラー
++i;
}
0210209
2012/09/07(金) 12:15:20.220211デフォルトの名無しさん
2012/09/07(金) 13:37:15.76ランダム可能なら読み専でもrandom_access_iteratorでいいんじゃないの
こういう話もあるし
http://d.hatena.ne.jp/faith_and_brave/20100305/1267779325
>直交した2つの問題(横断と、値へのアクセス)を扱う場合、単一の階層構造しか持っていない
>標準のイテレータコンセプトとその要件には欠陥がある。
0212デフォルトの名無しさん
2012/09/07(金) 17:43:25.840213デフォルトの名無しさん
2012/09/07(金) 17:45:15.860214デフォルトの名無しさん
2012/09/07(金) 17:46:10.330215デフォルトの名無しさん
2012/09/07(金) 17:51:18.890216デフォルトの名無しさん
2012/09/07(金) 18:08:43.560217デフォルトの名無しさん
2012/09/07(金) 18:11:53.21なるほど
もしやと思ってたんですがやっぱり標準に問題があったんですね
0219デフォルトの名無しさん
2012/09/07(金) 18:51:47.80重要やで
0220デフォルトの名無しさん
2012/09/07(金) 18:53:28.510221デフォルトの名無しさん
2012/09/07(金) 19:46:12.05可能性はある。
実装はともかく。
0222デフォルトの名無しさん
2012/09/07(金) 19:50:33.71kwskwktk
0223デフォルトの名無しさん
2012/09/07(金) 20:15:10.30class という文字のところに波線が表示されて、次のエラーメッセージが出た。
(エラー一覧ウィンドウに警告ではなくエラーとして表示された)
「Intellisense: PCH 警告: ヘッダーの停止はマクロまたは #if ブロックには配置できません。
Intellisense PCH ファイルは生成されませんでした。」
後半の Intellisense PCH ってのはよく分からんけど、
たぶんそんなファイルは必要ないだろうから、どうでも良い。
(今まで使った記憶が無い)
ただ、前半のヘッダーの停止の意味がよく分からない。
ヘッダーの停止って何? 停止も何も、初めから動かないと思うが。
ヘッダーって内部的には、コンパイル時に #include <...> が
ヘッダーファイル内の文字列に置換されるだけなんじゃないの?
書いたコードは次のもの。
#ifndef TEST_H
#define TEST_H
class Container
{};
#endif
たったこれだけ。
0224デフォルトの名無しさん
2012/09/07(金) 20:20:06.62RAIIの意味が理解できないロートル乙
0225デフォルトの名無しさん
2012/09/07(金) 20:39:04.55Hogeとか使ってる精神異常は失せろ
ゴミが
0226デフォルトの名無しさん
2012/09/07(金) 20:53:43.730227デフォルトの名無しさん
2012/09/07(金) 21:01:21.37インクルードしてる側のコードも晒して。
0228デフォルトの名無しさん
2012/09/07(金) 21:02:10.440229デフォルトの名無しさん
2012/09/07(金) 21:25:14.900230デフォルトの名無しさん
2012/09/07(金) 21:25:17.14いや、まだどこにもインクルードされていない。
Win32 コンソールアプリのプロジェクトを新規作成して、
test.h ファイルを新規作成して、>>223 のコードを書いたらこうなった。
(正確に言えば、コードにはもう少し空行があるが、ここに載せるために縮めた)
ちなみに、#ifndef #endif のペアじゃなく、#pragma once を使ったら、
このエラーは発生しなかった。
じゃあ #pragma once でいいじゃんと言うことだが、納得いかない。
0231デフォルトの名無しさん
2012/09/07(金) 21:39:43.73デストラクタ否定派ですか?
0232デフォルトの名無しさん
2012/09/07(金) 22:14:35.42初期化と代入はいくら区別してもしすぎることはないんじゃわー
一般にaへのbの代入は初期化済みのaが存在するからこそ成立するし、
aが保持するリソースの適切な処置(開放等)を伴う
究極的には初期化が無ければプログラミングは成立しないが
代入は無くてもプログラミングが成立し得るという違いがある
0233デフォルトの名無しさん
2012/09/07(金) 22:19:25.81ヒント: stdafx.h
0234デフォルトの名無しさん
2012/09/07(金) 22:24:42.82私のプロジェクトには stdafx.h などというファイルは存在しないが、
stdafx.h を作れという意味?
0235デフォルトの名無しさん
2012/09/07(金) 22:37:12.95ある関数が呼び出されたとき、その関数を呼び出したのが「誰」かによって
動作を変更することは可能でしょうか?
0236デフォルトの名無しさん
2012/09/07(金) 22:38:42.280237デフォルトの名無しさん
2012/09/07(金) 22:40:58.78>代入は無くてもプログラミングが成立し得る
関数型の考え方ですね。いまちょっと苦闘中‥‥
呼び出し先Aにしてほしいことをサブ関数にまとめて、そのサブ関数のポインタを呼び出し先Aに渡す、というのはよくみる光景かと。
0240デフォルトの名無しさん
2012/09/07(金) 22:57:46.46なる
0241デフォルトの名無しさん
2012/09/07(金) 23:02:08.98メモリマップド I/O をどうやって成立させるんだよ
アセンブラに逃げるという答えは聞こえねえぞ
I/O でなくてもメモリそのものへのアクセスサイクルすら同じことで
代入の変形でしかない初期化だけで満足してるようならおめでたいぜ
0242デフォルトの名無しさん
2012/09/07(金) 23:51:07.82外界は移ろい行く世界であるから破壊的代入の世界なんじゃわー
したがって、I/Oまで非破壊的代入で通すことはとうぜん無理が大きい
しかしそんなことはプログラミングする上では瑣末な事柄であって
代入を含むアルゴリズムが皆初期化だけでも書けることが重要なんじゃわー
代入のかわりに初期化を使うと何がうれしいかと言うと、マルチスレッドがメチャ安全に実現できる
0243デフォルトの名無しさん
2012/09/08(土) 00:00:54.31>I/O でなくてもメモリそのものへのアクセスサイクルすら同じことで
チューリングマシンはチューリングマシンを模倣する能力があり、
かつチューリングマシンとチャーチのモデルは等価なんじゃわー
したがってプログラミングする上ではどっちでもおk
外界やメモリや無限の長さの磁気テープが破壊的代入の産物であることは
事実ではあるが、漏れが初期化だけで満足することを全く妨げない
0244デフォルトの名無しさん
2012/09/08(土) 00:02:01.18operator new ですら初期化だけでは無理なのに
0245デフォルトの名無しさん
2012/09/08(土) 00:03:52.83一ヶ月ぶりに来たけど、まだあって安心した。
0246デフォルトの名無しさん
2012/09/08(土) 00:21:47.79例えば
template <int N> class A { ・・・ };
template <typemane T> class B { ・・・ };
これで、クラステンプレートBのテンプレート引数に設定できる型を
クラステンプレートAの実体化された型に限りたいです。
つまり、
typedef A<3> a;
typedef B<a> b; // ok
typedef B<char> b2; // コンパイルエラー
このようになってほしいです。
できるでしょうか。
0247デフォルトの名無しさん
2012/09/08(土) 00:25:07.26そんなことは知らんが(普通はTCBなしくみの上に非破壊代入のみの世界を作る・・・(1)
書こうと思えば書けるまずTCBはつまるところタスク間の同期管理のしくみである同期しなくて良いなら
単にシングルスレッドなプログラムがタスクの本数分、ということでタスクの初期化(生成)だけで済むことは自明
で、破壊的代入なプログラミングで書かれたタスクA、Bの同期というのはAとBの状態が揃ったとき
先に進むということに他ならない
そうした言語では1行1行の実行が無限長の磁気テープか有限状態制御部の状態遷移を伴うからである
これの非破壊代入版への単純な翻訳ではそれが全てタスクの部分に相当するプログラムの新規生成となる
生成に要する引数が揃わねば次のプログラムを生成できないのであるから、理論上そこで同期せざるを得ない
(まあ徹底的に非破壊代入にそろえるとこうなってしまい、マルチスレッドの概念からして覆ってしまう
>242の最後の行はここまですることは意図していない(1)のケースにおけるメリットを述べたもの
0248デフォルトの名無しさん
2012/09/08(土) 00:25:44.620249デフォルトの名無しさん
2012/09/08(土) 00:29:56.25unko& unko::operator = (unko&&) const { return *this; }
0250デフォルトの名無しさん
2012/09/08(土) 00:38:00.28どのように記述すれば良いのでしょうか。
0251デフォルトの名無しさん
2012/09/08(土) 00:47:15.31質問に答えが返ってきてから後出し質問するなよゴミ
どんな教育受けてきだんだ
お前の親はマジで人間のクズだな
0252デフォルトの名無しさん
2012/09/08(土) 00:55:39.60クズ呼ばわりされては親に申し訳ないので新規に質問します。
>>246 は忘れてくださるとありがたいです。
テンプレート引数を特定のクラステンプレートに制限する方法が知りたいです。
例えば
template <int N> class A { ・・・ };
template <typemane T> class B { ・・・ };
これで、クラステンプレートBのテンプレート引数に設定できる型を
クラステンプレートAの実体化された型に限りたいです。
つまり、
typedef A<3> a;
typedef B<a> b; // ok
typedef B<char> b2; // コンパイルエラー
このようになってほしいです。
記述方法を教えていただけないでしょうか。
0253デフォルトの名無しさん
2012/09/08(土) 01:02:42.870254デフォルトの名無しさん
2012/09/08(土) 01:15:22.03コンセプトという機能(C++0xに入る予定でキャンセルされた)
がないと難しいような。
0255デフォルトの名無しさん
2012/09/08(土) 01:51:43.01template<typename T> IsClassA { static const bool value = false; };
template<int N> IsClassA<A<N> > { static const bool value = true; };
みたいなメタ関数を作ってBの中でstatic assertする。
0256デフォルトの名無しさん
2012/09/08(土) 02:10:38.320257デフォルトの名無しさん
2012/09/08(土) 03:04:15.75struct B {};
ならいけると思う
0258デフォルトの名無しさん
2012/09/08(土) 07:28:37.76c++的には多態を使う
0259デフォルトの名無しさん
2012/09/08(土) 12:06:58.190260デフォルトの名無しさん
2012/09/08(土) 16:03:30.030261デフォルトの名無しさん
2012/09/08(土) 18:30:44.97気になる・・・
0262デフォルトの名無しさん
2012/09/08(土) 18:45:40.140263デフォルトの名無しさん
2012/09/08(土) 19:15:05.32ヘッダだけコンパイルするとか、あまりやらないよな
0264デフォルトの名無しさん
2012/09/08(土) 19:31:29.22あぁ、俺のことか
ヘッダだけコンパイルなんてしてないよ。
VC++ 2010 はコンパイルしなくてもリアルタイムでエラーを見つけてくれる。
やった事は、VC++ を立ち上げてから >>230 だけ。
この状態で、class と書いた部分に下波線が引かれ、
エラー一覧ウィンドウにエラーが表示される。
ただ、エラーを無視してそのままいろいろコードを書き加えていくと、
いつの間にかエラーは消えている(どの状態でいつ消えるのか法則がよく分からん)。
そして、わざと書き加えたコードを消して >>223 のコードの状態に戻しても、
同じコード内容なのにもうこのエラーは出ない。
しかし、また別のヘッダファイルを新規作成して >>223 のようなコードを書くと、
そのファイルで同じエラーが出る。
ちなみに、警告では無くエラーとして出ているくせに、
エラーが出ているそのヘッダファイルをインクルードした cpp ファイルは、
何も問題なくコンパイルできる。
よって、目に見える実害は体験していないから、とりあえず無視して作業を続けてる。
しかしだ。
>>230 の操作だけでこのエラーが毎回出ることは確実で(いつの間にか消えるが)、
またエラーの内容も意味不明だから、気持ち悪いことこの上ない。
0265デフォルトの名無しさん
2012/09/08(土) 19:33:31.830266デフォルトの名無しさん
2012/09/08(土) 19:34:43.98それIntelliSenseが解析できませんってエラーでしょ?
0267デフォルトの名無しさん
2012/09/08(土) 20:03:54.90そんな感じに読み取れるエラーメッセージだが、
「ヘッダーの停止はマクロまたは #if ブロックには配置できません。」
って何を指摘されているのか分からない。
ヘッダーの停止に関してできないことを俺がしようとしたために出たエラーであるなら、
ちゃんと理解して、できないことをしないようにしたいのだが・・・
0268デフォルトの名無しさん
2012/09/08(土) 20:11:20.37インテリセンスもバグが有ったりするから実際のコンパイルで何も言われなかったら気にしないのが吉
0269デフォルトの名無しさん
2012/09/08(土) 20:17:48.91staticメンバか関数オブジェクトしか渡せない(?)
mem_funみたいな便利な関数ありますか?
#include <algorithm>
class A {
bool positive(int x) { return x>0; }
public:
bool test() const {
int a[] = {3,2,4};
return std::all_of(a,a+3,positive);
}
};
int main()
{
A a;
a.test();
}
0270デフォルトの名無しさん
2012/09/08(土) 20:32:10.840271デフォルトの名無しさん
2012/09/08(土) 21:00:08.400272デフォルトの名無しさん
2012/09/08(土) 21:03:42.76thatをいちいち参照させないといけないからダサい。
てかラムダ記法ダサいからなるべくつかいたくないw
0273デフォルトの名無しさん
2012/09/08(土) 21:05:29.080274デフォルトの名無しさん
2012/09/08(土) 21:06:39.36ありがとう。知らない記法ばかりだ。
動的配列でもstd::end(a)とか定義されるのかしら・・・?
0275デフォルトの名無しさん
2012/09/08(土) 21:07:48.87まぁこれだといい勝負かもね。
0276デフォルトの名無しさん
2012/09/08(土) 21:15:23.75bind1stかbind2ndとthisを使っても出来るよ
0277デフォルトの名無しさん
2012/09/08(土) 21:20:59.98逆にラムダのが負けてるコードが見たい
0278デフォルトの名無しさん
2012/09/08(土) 21:27:30.690279デフォルトの名無しさん
2012/09/08(土) 21:30:34.62どちらもお亡くなりに・・・w
0280デフォルトの名無しさん
2012/09/08(土) 21:34:08.96名前かんがえろ!
0281デフォルトの名無しさん
2012/09/08(土) 21:34:37.98#include <stdafx.h>
でなく
#include "stdafx.h"
と書く方がお行儀が宜しい
スケルトンもそうなってるし、<>だとカレントをすっとばして探される危険性がある
まあ /Yu "stdafx.h"というオプションがあるからカレントの"stdafx.h"を探してくれるから良いようなものの、
0282252
2012/09/08(土) 21:37:44.15出された2つの案について、仕組みや長所短所などをこれから調べてみます。
0283デフォルトの名無しさん
2012/09/09(日) 19:19:11.071行だけなら
printf("%d ¥r", num);
でできるのですが…
0284デフォルトの名無しさん
2012/09/09(日) 19:21:47.130285デフォルトの名無しさん
2012/09/09(日) 19:45:29.05新しいの書くとイイよ
0286デフォルトの名無しさん
2012/09/09(日) 19:59:05.850287デフォルトの名無しさん
2012/09/09(日) 20:06:36.65何行改行すれば良いのかわかんないだろ
0288デフォルトの名無しさん
2012/09/09(日) 21:13:00.32Windowsのコマンドプロンプトで画面を消す方法
http://questionbox.jp.msn.com/qa2902820.html
ただし、Windows 7で動かすときちょっと手を加える必要があった
0289デフォルトの名無しさん
2012/09/10(月) 02:29:29.15http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1393771603
どなたか教えてください。
0290デフォルトの名無しさん
2012/09/10(月) 07:17:20.380291デフォルトの名無しさん
2012/09/10(月) 07:29:30.36マルチというわけでも・・・
0292デフォルトの名無しさん
2012/09/10(月) 08:04:33.350293デフォルトの名無しさん
2012/09/10(月) 12:39:38.76こっちで答えを考えてるときに参照元で議論が進められると、
同期を取らなくちゃならなくなるし、こっちの思考がリセットされる可能性もある。
いくらC++と言えども、パフォーマンス問題が無い限り、
できるだけ参照透過性は意識してほしいところ。
0294デフォルトの名無しさん
2012/09/10(月) 13:05:59.750296デフォルトの名無しさん
2012/09/10(月) 17:44:31.75ぱっと見マルチ投稿に見えるんだよね……
0297デフォルトの名無しさん
2012/09/10(月) 20:26:02.04OKWAVE
0298デフォルトの名無しさん
2012/09/10(月) 20:59:53.20{ ◯
{
int i;
}
}
で、◯のスコープとして i を宣言できると便利なときがあると思ったり。
0299デフォルトの名無しさん
2012/09/10(月) 21:10:15.53int i;
{
}
}
でいいだろ
0300デフォルトの名無しさん
2012/09/10(月) 21:45:36.02例えばどんな時?
ちょっと意図がわからないので、具体例を出してくれると嬉しい。
>>299
俺も真っ先にそう思った。
0301デフォルトの名無しさん
2012/09/10(月) 22:28:53.800302デフォルトの名無しさん
2012/09/10(月) 23:08:35.33馬鹿はダマッテロ
0303デフォルトの名無しさん
2012/09/10(月) 23:10:27.23それいっちゃうと君が黙らないといけなくなるよ?
0304デフォルトの名無しさん
2012/09/11(火) 00:40:16.85public:
A();
~A();
};
inline A::A()
{処理};
inline A::A()
{処理};
と記入するとinline AのAの部分が曖昧と扱われコンパイルされません
どのように解決すればよいのでしょう?
0305デフォルトの名無しさん
2012/09/11(火) 00:41:12.09public:
A();
~A();
};
inline A::A()
{処理};
inline A::~A()
{処理};
書き間違えました 正しくは上記の用にです
0306デフォルトの名無しさん
2012/09/11(火) 00:58:25.31class A{
public:
A(){処理}
~A(){処理}
};
ってしろよ
0307デフォルトの名無しさん
2012/09/11(火) 01:04:50.94確かにそのとおりなのですが、VC5ではコンパイルが通ってVC10では通らなくなった理由が知りたいのです。
0308デフォルトの名無しさん
2012/09/11(火) 01:05:58.08> と記入するとinline AのAの部分が曖昧と扱われコンパイルされません
どこが? ttp://ideone.com/2ITPP
0309デフォルトの名無しさん
2012/09/11(火) 01:17:55.86通りますね・・・
何か書き間違えてるみたいです・・・
出直してきます
0310デフォルトの名無しさん
2012/09/11(火) 10:20:27.05でも、64bit用のコンパイラーはアドレスは64bitになりましたがintが32bitのままなんで
long longを使うのだと思いますがlong longはintより長いとしか定義されてないような気がしたので
将来的に128bitcpuが標準になったころにはコードを書き換えないといけなくなるじゃないですか?
だったらintもlong longもつかえないことになってどうしたらいぢえすか?
0311デフォルトの名無しさん
2012/09/11(火) 10:43:30.470312デフォルトの名無しさん
2012/09/11(火) 11:06:08.85整数用ないですか?
コンパイラオプションでintの大きさ変えられないですか?
0313デフォルトの名無しさん
2012/09/11(火) 11:19:55.890314デフォルトの名無しさん
2012/09/11(火) 11:25:35.950315デフォルトの名無しさん
2012/09/11(火) 11:55:54.68std::int64_tとか使う
0316デフォルトの名無しさん
2012/09/11(火) 12:03:35.69>long longを使うのだと思いますが
これがアドレスをlong longで扱うという意味でなく
単にアーキテクチャ幅と同サイズの整数型が欲しいということなら
typedefで自分で型用意すればいいんじゃないの
普通はそのままint使うけど
0317デフォルトの名無しさん
2012/09/11(火) 12:16:11.03ptrdiff_tは整数だが?
0318デフォルトの名無しさん
2012/09/11(火) 12:20:16.080319デフォルトの名無しさん
2012/09/11(火) 13:03:58.20なぜそれを守らなかった人のためにintを32bitにするんだろう。
これから先128bitが標準になってもintを32bitで貫くんだろうか。
そうなると大変なことがおこるだろうな。
0320デフォルトの名無しさん
2012/09/11(火) 13:22:00.85そんな理由じゃねぇよ
0321デフォルトの名無しさん
2012/09/11(火) 13:37:05.47間違った前提を持ってた人の方が多そう
0322デフォルトの名無しさん
2012/09/11(火) 13:38:10.39これで何の問題があるんだよ
ほかにどんな選択肢があるんだよ
必要十分だろカス
0323デフォルトの名無しさん
2012/09/11(火) 13:53:28.44ポインターの長さっていうのはメモリーの容量と関係するわけだけど
CPUが128bitになったときに128bit必要な大容量のメモリーが
登場していなければ64bitのままの可能性もあるから、整数が
CPUのレジスタサイズに対応した可変の型があることが必要なんだよ。
0324デフォルトの名無しさん
2012/09/11(火) 13:54:42.32http://www.unix.org/version2/whatsnew/lp64_wp.html
http://msdn.microsoft.com/en-us/library/windows/desktop/aa384083(v=vs.85).aspx
0325デフォルトの名無しさん
2012/09/11(火) 14:02:43.23使わなかったらもっと無駄なんじゃ、レジスタを二つにわけて並列演算
するとかしないかぎり。
0326デフォルトの名無しさん
2012/09/11(火) 14:08:02.530327デフォルトの名無しさん
2012/09/11(火) 15:43:03.50集合の要素はXbitの長さの整数であって
Xbitの整数はランダムな値を持つとすると
Xにはどんな数字をいれたらいいですか?
0328デフォルトの名無しさん
2012/09/11(火) 17:03:02.170329デフォルトの名無しさん
2012/09/11(火) 17:54:02.68え?
0330デフォルトの名無しさん
2012/09/11(火) 21:01:44.97std::unordered_set<std::pair<int,int>,Hash>
適当にHash(a,b)=a^bとかやってもパフォーマンスが悪いです。
どっかの教科書にはHash(a,b)=41*(a+41)+bがよいとか書いてるのですが、
次のような性質が分かっているときにうまいハッシュ値をつくれないでしょうか?
・ペアの要素型はintですが、非負整数が入ります。
・{a,b}が存在するときはほとんどの場合に{b,a}も要素にもちます。(つまりHash(a,b)!=Hash(b,a)としたい)
0331デフォルトの名無しさん
2012/09/11(火) 21:06:32.25てかCSの専門じゃないのでハッシュの基礎的なことが分かってないです。
という意味でスレ違いかもしれないですが、まずはunordered_setにペア型をつっこむとき、
C++コミュニティ推奨の方法とかあれば教えてください。
0332デフォルトの名無しさん
2012/09/11(火) 21:10:00.71ポインタサイズの符号付整数型はstd::intptr_tであってstd::ptrdiff_tじゃねえよ
妙な使い方するなカス
0333デフォルトの名無しさん
2012/09/11(火) 21:46:06.22まずは値の分布調べろ
分布がないと話にならない
0334デフォルトの名無しさん
2012/09/11(火) 21:55:26.32いまクヌース読み始めたけど、その通りですね。
言語標準にしては使うのが難しい・・・。
0335デフォルトの名無しさん
2012/09/11(火) 22:20:21.92ボインタのサイズはアドレスバスの幅
これがそのアーキテクチャに対して一番最適な値
0336デフォルトの名無しさん
2012/09/11(火) 22:23:40.51メモリ空間はRAMだけのものじゃない
メモリサイズとポインタサイズは無関係
0337デフォルトの名無しさん
2012/09/11(火) 22:31:16.940338デフォルトの名無しさん
2012/09/11(火) 22:34:26.28おまえはなしかみあってないようにみえる
FNV Hash -- http://www.isthe.com/chongo/tech/comp/fnv/index.html
はどうでしょう?
0340デフォルトの名無しさん
2012/09/12(水) 10:57:49.55知らんかった
nearやfarを使ってた頃って色々面倒だったんだな
0341デフォルトの名無しさん
2012/09/12(水) 11:35:05.60char*最強だな・・・
0342デフォルトの名無しさん
2012/09/12(水) 11:37:40.520343デフォルトの名無しさん
2012/09/12(水) 11:43:34.30用途によるけどintptr_t無かったらchar*でなんとかするしかないんじゃね?
http://viva2ch.net/tech/1201153965-800.html
>C89やintptr_t/uintptr_tの存在しないC99処理系では、
>一般にポインタ→整数→ポインタのラウンドトリップな変換をする方法はない。
>
>完全に蛇足だが付け加えると、size_tがポインタを格納できる大きさだという保証はない。
0344デフォルトの名無しさん
2012/09/12(水) 12:09:13.97メタプログラミングで型を決めるとかあるだろ
0345デフォルトの名無しさん
2012/09/12(水) 13:54:40.14> ぐぐったら sizeof(size_t) == sizeof(ptrdiff_t) < sizeof(char*) ってあり得るんだな
実在しない
0346デフォルトの名無しさん
2012/09/12(水) 13:55:17.980347デフォルトの名無しさん
2012/09/12(水) 16:19:12.40C++11の話題もこっちに入れていいのだろうか
0348デフォルトの名無しさん
2012/09/12(水) 16:40:37.200349デフォルトの名無しさん
2012/09/12(水) 16:41:31.83早くGCCに換えろよ。
0350デフォルトの名無しさん
2012/09/12(水) 16:46:30.48ってVisualStudioで使えるの?
__gnu_parallel::for_each
そもそもWindowsではOpenMP使わない方がいいのか?
0351デフォルトの名無しさん
2012/09/12(水) 17:44:13.91VSでも使える。
0352デフォルトの名無しさん
2012/09/12(水) 18:15:53.24実在云々じゃなく言語仕様の話なんだけど
規格上でも有り得ないってことか?
一応、>>343の【初心者お断り】ガチ規格準拠C専用スレのレスや
http://stackoverflow.com/questions/1464174/size-t-vs-intptr-t
でポインタを格納出来る保証は無いとあったから
http://www.open-std.org/jtc1/sc22/wg14/www/docs/n897.pdf
を見たら、サイズやオフセットとかの相対値だけで絶対値としての用途に言及が無いから
連中の言う通り sizeof(char*) <= sizeof(size_t) の保証は無いと納得してたんだが
0353デフォルトの名無しさん
2012/09/12(水) 18:19:38.23はい
0354デフォルトの名無しさん
2012/09/12(水) 18:23:24.430355デフォルトの名無しさん
2012/09/12(水) 18:51:07.82あんたが話についていけてないだけしゃないの?
0356デフォルトの名無しさん
2012/09/12(水) 20:29:02.16規格のミスだ
故意に悪化を狙わない限りそういう実装は作れない
0357デフォルトの名無しさん
2012/09/12(水) 20:31:16.34sizeof(size_t) < sizeof(char*)
こんな実装は作成不可能。
規格でそれを許容しても気にしなくていい。
0358デフォルトの名無しさん
2012/09/12(水) 20:35:08.37残念ながら、とってもお寒い感じだな。
CXとかAMPとか、言語拡張のほうに力が入ってるような。
ただ、.NET出始めの頃にC++だけ置いてけぼり食らった歴史もあることだし、
開発力をどう割り振るかは非常に悩ましかったろうな、とは思う。
0359デフォルトの名無しさん
2012/09/12(水) 20:46:29.68これは?
http://bytes.com/topic/c/answers/735346-sizeof-size_t-sizeof-pointer
fact, typical DOS/Win16 implementations used to have a 16-bit 'size_t'
and 32-bit 'void*' pointers (depended on memory model).
0360デフォルトの名無しさん
2012/09/12(水) 20:49:35.27C++ちがうくね?
0361デフォルトの名無しさん
2012/09/12(水) 20:59:51.50こういうケースがCの実装ではあっても
C++の実装では作れないってこと?
C++しか使わないから
それが事実ならありがたいことではあるけど
0362デフォルトの名無しさん
2012/09/12(水) 21:36:45.98>>359
1. スモールモデル以外は、size_t = 16bit よりも void * = 32bit の方が大きかった。
2. win3.1 と MSVC1.5=MSC/C++8.0 が同じくらい。
0364デフォルトの名無しさん
2012/09/12(水) 22:57:49.80char * p;
int_ptr & operator += (const int_ptr &other);
・・・
};
みたいなのじゃいかんの?
0365デフォルトの名無しさん
2012/09/12(水) 23:39:26.820366デフォルトの名無しさん
2012/09/13(木) 04:43:53.850367デフォルトの名無しさん
2012/09/13(木) 07:24:20.41組み込みではどうなんだろう?
0368デフォルトの名無しさん
2012/09/13(木) 08:18:21.21規格と実装は不可分特にC/C++のは後付けのなにものでも
0369デフォルトの名無しさん
2012/09/13(木) 11:10:55.64インターネットのホームページでみかけたんですけど、
CPUのスレッド数までしかスレッドを作らない方がパフォーマンスよくないですか?
スレッド増やしすぎると切り替えるのにじかんかかりすぎますよね?
0370デフォルトの名無しさん
2012/09/13(木) 12:33:59.47その認識であってる
プロセス及びスレッド増やしすぎずに
非同期処理を正しく扱える方がスループットに優れる
が、OSのスケジューラの恩恵を得られないので
やり方によってはタイムシェアリングの品質に問題が出る
例えば2コア環境のサーバーアプリで
ユーザーA,BのためのIO待ちなどが発生しない処理を長時間続けると
ユーザーCの処理がずっと進まない
そのような場合、OSのスケジューラに頼らず自分で適切に処理をスイッチする必要がある
長文書いておいて何だけどC++とほぼ関係ない
0371デフォルトの名無しさん
2012/09/13(木) 17:00:40.11ここ十数年のC++の規格の話は全て実装の後追いですよ
0372デフォルトの名無しさん
2012/09/13(木) 17:05:44.68スイッチの無駄を減らす方がいいというのは、つまり少ない方がいい。
対CPU時間での効率を上げたければスレッドは少ないほどいい。
しかし待機してヒマしているコアが発生すれば資源の有効活用になっていない。
対実時間での効率を上げたければスレッドの数を増やせばいいが、その上限はコア数まで。
0373デフォルトの名無しさん
2012/09/13(木) 23:41:38.33ペンで線を引くのではなくウインドウの縦横指定のドットに色を設定すると言った処理はないでしょうか?
ググってもGDI自体のリファレンスも出てこなくて困ってます。GDI+ではないです。
0374デフォルトの名無しさん
2012/09/13(木) 23:48:17.480375デフォルトの名無しさん
2012/09/14(金) 00:21:04.350376デフォルトの名無しさん
2012/09/14(金) 01:32:36.790377デフォルトの名無しさん
2012/09/15(土) 02:45:43.07ありがとうございます。
別のAPIでもsetPixelだからそういう名前じゃないかなと思ってました。
0378デフォルトの名無しさん
2012/09/15(土) 03:05:54.430379デフォルトの名無しさん
2012/09/15(土) 03:38:47.530380デフォルトの名無しさん
2012/09/15(土) 07:14:23.680381デフォルトの名無しさん
2012/09/15(土) 09:23:41.89と思ったが、LinuxでもいまだにXlib叩くしな
0382デフォルトの名無しさん
2012/09/15(土) 09:25:45.49実験的に実装して、具合がよければ規格になる。
どんな言語でも同じだろ。
そもそも >>366 は、そういう話じゃないし。
0383デフォルトの名無しさん
2012/09/15(土) 09:45:48.47bjam install
だけで /usr/local
にinstallされるって書いてあるんだけど
/usr/local/include
にそれらしいものがない
何かコマンド間違ってる?
0384デフォルトの名無しさん
2012/09/15(土) 10:32:45.320385デフォルトの名無しさん
2012/09/15(土) 10:43:55.570386デフォルトの名無しさん
2012/09/15(土) 22:51:58.57というのは入ってる
なので
Hamigakiを解凍したディレクトリに移動して
bjam-1_46 install
コマンドを実効したけど
インストールされてるようにみえない
0387デフォルトの名無しさん
2012/09/16(日) 07:17:26.930388デフォルトの名無しさん
2012/09/16(日) 10:41:06.54ヴァカはパソコン触るな
触るなら自分で解決しろゴミ野郎
0389デフォルトの名無しさん
2012/09/16(日) 11:19:47.52フォームにbuttan、listboxを配置しリストボックスに
ファイルを表示させるというものです。
#pragma endregion
private: System::Void Form1_Load(System::Object^ sender, System::EventArgs^ e) {
listBox1->AllowDrop = true;
}
private: System::Void listBox1_DragEnter(System::Object^ sender, System::Windows::Forms::DragEventArgs^ e)
{
e->Effect = DragDropEffects::All;
}
private: System::Void listBox1_DragDrop(System::Object^ sender, System::Windows::Forms::DragEventArgs^ e)
{
for each (String^ item in dynamic_cast<array<String^>^>(e->Data->GetData(DataFormats::FileDrop)))
{
listBox1->Items->Add(item);
}
}
0390デフォルトの名無しさん
2012/09/16(日) 11:38:29.210391デフォルトの名無しさん
2012/09/16(日) 11:42:17.720392デフォルトの名無しさん
2012/09/16(日) 11:43:59.52あるいは書籍を教えて欲しいのだと推測してみる。
0393デフォルトの名無しさん
2012/09/16(日) 11:44:56.24その実装の一例
0394デフォルトの名無しさん
2012/09/16(日) 11:45:38.640395デフォルトの名無しさん
2012/09/16(日) 11:48:08.750396デフォルトの名無しさん
2012/09/16(日) 11:51:33.60ごめん、もう言わない
0397デフォルトの名無しさん
2012/09/16(日) 12:00:23.84なかなか無いね。
ただ、実現の仕組みはそんなに難しくないよ。
バイナリレベルであれば、DLLの仕組みがプラグインそのもの。
ソースレベルや概念レベルであれば、GoF本の内容が役に立つかな。
おっと、デザパタの話を出すとヤツが来るかな。。。
0398デフォルトの名無しさん
2012/09/16(日) 12:10:39.150399デフォルトの名無しさん
2012/09/16(日) 12:11:56.41しゃべるな
0400デフォルトの名無しさん
2012/09/16(日) 13:13:23.29この仕組みをバイナリ間で行えるようにしたのが dll や com だよね
ぶっちゃけ、プラグインの基本概念は、関数ポインタ
0401デフォルトの名無しさん
2012/09/16(日) 13:18:54.64プログラムカウンタに設定する値をロードしたバイナリのテーブルから引くだけ
0402デフォルトの名無しさん
2012/09/16(日) 13:18:58.00プラグインとしてよい設計とはなにかみたいな話ではないの?
0403デフォルトの名無しさん
2012/09/16(日) 13:19:53.920404デフォルトの名無しさん
2012/09/16(日) 13:45:25.06GOF って言いたいだけだろ (w
0405デフォルトの名無しさん
2012/09/16(日) 16:08:07.010406デフォルトの名無しさん
2012/09/16(日) 16:21:34.46馬鹿GoFだ全部大文字で書くな意味をしらないのか馬鹿
0407デフォルトの名無しさん
2012/09/16(日) 16:37:18.300408デフォルトの名無しさん
2012/09/16(日) 16:37:19.01とりあえずNPAPIでも参考に見てみたら?
http://en.wikipedia.org/wiki/NPAPI
>cross-platform plugin architecture
Chrome, Safari, Firefox, Operaなどが備える
共通プラグイン仕様
0409デフォルトの名無しさん
2012/09/17(月) 02:22:43.69http://woman.infoseek.co.jp/news/entertainment/cyzowoman_16Sep2012_25106
日韓の関係悪化の影響により、韓流離れが加速する現在のテレビ業界。
しかし、2年ほど前には広告代理店を中心に「ゴールデンタイムの番組には韓国人タレントを使用する」流れが作られていたという。
現在は吉本興業所属の芸人が幅を利かせる“ひな壇タレント”を、そっくり韓流と入れ替えるという計画だったそうだ。
日本国内で、KARAや少女時代がブレークした2010年。
日本音楽事業者協会会長で「尾木プロ」社長の尾木徹氏が、K-POPアーティストの誘致に尽力したと伝えられていた。
そして同時期頃から、広告代理店やテレビ局上層部の間では、こんな“定説”が存在していたという。
「2011年以降は、ゴールデンのバラエティから、吉本芸人はほとんどいなくなります。
代わりにひな壇に座るのがK-POPアーティストや、韓流タレントたち。
安定してレギュラー番組を続けられそうなのは明石家さんま、島田紳助、ダウンタウンくらいで、その他の芸人たちは有名無名問わず降板させていこうという方針でした」(広告代理店幹部)
ところが3月の震災で、エンタメ業界は数カ月ほど停滞状態が続くことに。
その前後に日本デビューを果たしたK-POPアーティストや、バラエティに登場した韓流タレントも少なからず存在したが、テレビ出演者が大幅に入れ替わるといった事態に至ることはなかった。
「紳助は引退してしまったし、高岡蒼佑のフジテレビ韓流傾倒批判など想定外の事態はいくつも発生しました。
特にネット上でのフジテレビ批判は見過ごせるレベルの話ではなく、連日の抗議デモやスポンサー企業の不買運動など、韓流に対する不安要素ばかりが高まっていきました」(同)
そして今回の竹島問題で、韓流コンテンツへの傾倒に関して沈黙を貫いてきたテレビ各局も、方針を表明。
フジテレビは当面韓流ドラマの放送予定はないとし、またBS日テレの定例会見では赤座弘一社長が「韓国ドラマが多すぎるのではという声もある。
少なすぎるという声はないので、今後、(韓流ドラマを)少なくしていく方向になると思う」と発言したことも話題になった。
0410デフォルトの名無しさん
2012/09/18(火) 09:13:02.51ResourceHandle resourceHandle = spManager->GetResource("a.bin");
std::shared_ptr<???> spResourceHandle(resourceHandle, [spManager](resourceHandle) { spManager->ReleaseResource(resourceHandle); });
上のように生ポインタではなくポインタライクなインターフェースを持ったハンドルクラスをshared_ptrに渡したいのですが
shared_ptr<ResourceHandle> spResourceHandle(new ResourceHandle(spManager->GetResource("a.bin")),
[spManager](pResourceHandle) { spManager->ReleaseResource(*pResourceHandle); delete pResourceHandle; });
このように書くとnew/delete一回分増えるのが無駄になります
shared_ptrにResourceHandleをそのまま、あたかもポインタのように持たせるにはどのように記述すればいいんでしょうか
0411デフォルトの名無しさん
2012/09/18(火) 09:30:40.07GetResourceがshared_ptr<ResourceHandle>を返すようにしろよ
0412デフォルトの名無しさん
2012/09/18(火) 11:33:03.030413デフォルトの名無しさん
2012/09/18(火) 11:40:05.860414デフォルトの名無しさん
2012/09/18(火) 11:48:12.72operator でない << も、シフト命令をマイクロプログラムのループで実装している CPU では n が大きいほど時間がかかる
シフト命令をバレルシフタで実装している CPU では n の値と処理時間は無関係
いずれにせよ n の値と処理時間が反比例したり負の比例定数を持つことはない
0415デフォルトの名無しさん
2012/09/18(火) 11:51:49.970416デフォルトの名無しさん
2012/09/18(火) 11:56:36.030417デフォルトの名無しさん
2012/09/18(火) 13:07:22.43C++の場合、その演算の対象となる型によって答えが変わる。
対象が整数型の場合、>414の後半の通り。
今時のCPUなら、大抵同じ時間で処理できる。詳しいことは、該当CPUスレなどで。。
>>414
operator<<()が表示を担っているという前提はおかしい。std::ostream以外の可能性も考慮すべき。
0418デフォルトの名無しさん
2012/09/18(火) 13:21:01.30あるのだろうか
0419デフォルトの名無しさん
2012/09/18(火) 13:55:18.69たとえばつったじゃん
負数を考え落としたのはアフォだったけどw
0420デフォルトの名無しさん
2012/09/18(火) 23:17:49.72XMLパーサとか普段の仕事で使える実用的で黒魔術的じゃないライブラリの充実を目指したほうがいい
boostは終わったコンテンツ
C#ライブラリのような方向を目指さないと未来がない
0421デフォルトの名無しさん
2012/09/18(火) 23:27:57.880422デフォルトの名無しさん
2012/09/18(火) 23:36:25.820423デフォルトの名無しさん
2012/09/18(火) 23:41:52.90http://toro.2ch.net/test/read.cgi/tech/1347611669/
0424デフォルトの名無しさん
2012/09/19(水) 00:21:08.660425デフォルトの名無しさん
2012/09/19(水) 00:45:02.300426デフォルトの名無しさん
2012/09/19(水) 01:14:53.51全然足りない、というか不備だらけ
あの大風呂敷の範囲内でだけど
concept さんには退学とまでの苛烈な仕打ちをしながら
不審者 GC には甘い顔というのは、原理主義者に言わせると唾棄すべきだし
テンプレートテンプレート引数君に気高く見守られているもう終わった老人
禿自身が atomic に及び腰で超問題児 volatile をどうにもできないし
社歌に起立しない者にもナメられっぱなし
0427デフォルトの名無しさん
2012/09/19(水) 01:21:00.82∧_,,∧ ♪マンドクセ ∧_,,∧ ♪
o(・ω・ `)o o(´ ・ω・ )o
(( / ( )) (( ) ヽ )) シャカシャカ
し――J し――J
0428デフォルトの名無しさん
2012/09/19(水) 10:10:06.24おいやめろ
0429デフォルトの名無しさん
2012/09/19(水) 15:56:20.350430デフォルトの名無しさん
2012/09/19(水) 16:21:54.31python使ってCのプログラムを自動生成したほうがよくないか
0431デフォルトの名無しさん
2012/09/19(水) 19:10:37.01std::string s;
s.resize(10);
char *p = const_cast<char *>(s.data());
for ( i = 0 ; i < s.size() ; ++i ) p[i] = 'a';
こういうことやりたいんだけど
0432デフォルトの名無しさん
2012/09/19(水) 19:42:47.75デバッガのステップ実行ができん
(python のコードがステップ実行されないと意味ないからな)
まぁテンプレート駆使されると似たような状況かも知れんが、まだまし
0433デフォルトの名無しさん
2012/09/19(水) 19:52:31.60ついでに reinterpret_cast も使ってヒャッハー
0434デフォルトの名無しさん
2012/09/19(水) 19:56:46.31自己責任なら何でもあり。
それがC++
0435431
2012/09/19(水) 21:09:04.89よく調べてみたらdata()には書き込めないらしい
stringをchar *のように扱えたらいいのに
0436デフォルトの名無しさん
2012/09/19(水) 21:21:46.03operator[]
を使えと。
あれ?
でも、メモリの連続性に vector と同じ保証ってあったっけ?
0437デフォルトの名無しさん
2012/09/19(水) 21:26:16.950438デフォルトの名無しさん
2012/09/19(水) 21:41:31.55わざわざconst修飾子を外して書き込むとは・・・
0439デフォルトの名無しさん
2012/09/19(水) 22:22:26.270440デフォルトの名無しさん
2012/09/19(水) 22:34:47.29C++11から保証された
0441デフォルトの名無しさん
2012/09/19(水) 22:38:46.420442431
2012/09/19(水) 22:56:20.89char *の引数にstringを渡したいってことなんだよ
逆ならできるけど
イテレータ→ポインタは無理か
0443デフォルトの名無しさん
2012/09/19(水) 23:00:15.04ありがと。
と、言う事は単純に >>439 の方法でも良いし、
char* p = s[0];
でも良いわけだにゃ。
0444433
2012/09/19(水) 23:02:05.00char* p = &s[0];
だ。
0445デフォルトの名無しさん
2012/09/19(水) 23:05:08.95で良くないの?
0447デフォルトの名無しさん
2012/09/19(水) 23:18:14.91すみません。
これは by>>433 ではなく by>>443 でした。
orz...
0448デフォルトの名無しさん
2012/09/19(水) 23:21:13.892003 規格では const charT* です。
0449デフォルトの名無しさん
2012/09/19(水) 23:23:29.540450デフォルトの名無しさん
2012/09/19(水) 23:30:28.100451デフォルトの名無しさん
2012/09/19(水) 23:32:39.950452デフォルトの名無しさん
2012/09/19(水) 23:38:55.39いやそれではstring特有の豊富なメンバ関数が使えない
アルゴリズムを使って何とかしろというのか
0454デフォルトの名無しさん
2012/09/19(水) 23:47:47.94三時間もあれば十分だろ
0455デフォルトの名無しさん
2012/09/20(木) 00:23:52.01でも新しい文字列クラスを作る必要があるのだろうか?
エンバカみたいなUnicodeStringみたいなクラスなら意味はあるかもしれんけど
0456デフォルトの名無しさん
2012/09/20(木) 07:36:53.68実際連続じゃない実装なんて存在しないから
気にしなくてもいいと思うぞー
まあ、自己責任だけどな
0457デフォルトの名無しさん
2012/09/20(木) 15:41:14.86動的にインスタンス生成することの
メリットが分かりません
教えて下さい
0458デフォルトの名無しさん
2012/09/20(木) 15:52:20.39new(malloc)が無いとああいったものの実装もままなりません
0459デフォルトの名無しさん
2012/09/20(木) 16:03:18.06焦んなくていい
むしろ必要性を感じるまで使ってはならないものだ
0460デフォルトの名無しさん
2012/09/20(木) 16:25:44.410461デフォルトの名無しさん
2012/09/20(木) 17:33:54.600462デフォルトの名無しさん
2012/09/20(木) 17:39:44.61そうとも限らない
const付けても強制的に型キャストすればいくらでも変更可能だから内部表現は環境依存
ただし文中では意味が異なる
配列数に使えたり
0463デフォルトの名無しさん
2012/09/20(木) 17:40:26.460464デフォルトの名無しさん
2012/09/20(木) 18:06:54.23定数かconst変数かで異なる
http://ideone.com/2lAdl
前者の「定数にconst外し」はそもそも未定義だけど
0465デフォルトの名無しさん
2012/09/20(木) 20:20:53.70サンクス
こういう辺りが何か気持ち悪いんだよなあ
0466デフォルトの名無しさん
2012/09/20(木) 22:04:21.18な、なにが、ど、どうなんているの、ですか?
0467デフォルトの名無しさん
2012/09/20(木) 22:37:43.510468デフォルトの名無しさん
2012/09/20(木) 23:49:37.14c99
0469デフォルトの名無しさん
2012/09/21(金) 00:30:16.55C99でconstは定数にならないから前者のサンプルもおかしくなるな
0470デフォルトの名無しさん
2012/09/21(金) 07:44:24.10gccとms、Intelのコンパイラくらいしか使ったことないのかもしらんが
0471デフォルトの名無しさん
2012/09/21(金) 07:48:23.510472デフォルトの名無しさん
2012/09/21(金) 08:04:24.730473デフォルトの名無しさん
2012/09/21(金) 19:24:40.060474デフォルトの名無しさん
2012/09/21(金) 22:47:01.73for(int j = 0; i != fuga; ++j){
...
}
}
iとjを間違えているバグ(i != fuga)を突き止めるのに小一時間かかった。
こういうミスを防ぐ、あるいは発見するコツってありますか?
0475デフォルトの名無しさん
2012/09/21(金) 22:49:07.900476デフォルトの名無しさん
2012/09/21(金) 22:52:23.54hogeキチガイはプログラムなんか組まなくていいから回線切って引きこもってろよ
0477デフォルトの名無しさん
2012/09/21(金) 22:55:27.21お前ゴミだな。
hogeは覚える暇があってもコーディングスキルを身に付ける暇はないんだな。
マジでゴミ。
0478デフォルトの名無しさん
2012/09/21(金) 22:56:12.400479デフォルトの名無しさん
2012/09/21(金) 23:03:27.60とてもシンプルですね。
確かにiとjが似ているせいで発見されにくかったと言えます。
>>476-477
hogeへの拘りにワラタ。
0480デフォルトの名無しさん
2012/09/21(金) 23:07:34.06低レベルな内容で詰まる癖にhogeとか使う余裕ないだろ
生活が苦しいのパチ屋につぎ込んで生活破綻するDQNと同じ思考回路
0481デフォルトの名無しさん
2012/09/21(金) 23:09:01.41まあ視認性悪くなって効率悪くなりそうだけど
0482デフォルトの名無しさん
2012/09/21(金) 23:09:44.71ゴミと同じくらいな価値しかないもん。
0483デフォルトの名無しさん
2012/09/21(金) 23:12:50.54まともに教育できない癖にガキ生んだのがこの結果
何を優先すべきかという判断力が全くない
だからつまらないミスで引っ掛かって赤の他人にきいてるんでしょ
親がクズだから>>479に罪はない
>>479も自覚はなさそうだし
0484デフォルトの名無しさん
2012/09/21(金) 23:16:02.870485デフォルトの名無しさん
2012/09/21(金) 23:27:35.20だから、全員とは言わないけど、よく思考回路の狂ったガキが輩出される。
コーディングもままならないのにhogeとか使ってる頭のおかしな>>479もその可能性が高い。
誰にも望まれずに、親にすら望まれずに生まれてきたガキ。
当然社会にもいらない。
0486デフォルトの名無しさん
2012/09/21(金) 23:31:24.59お前らだって小さい頃にチンゲン菜の「チンゲ」とかに反応したことあるだろ?
子供のうちはそういうものに反応するんだよw
>>479も中学校に進学する頃にはまともになってるさ
0487デフォルトの名無しさん
2012/09/21(金) 23:36:27.24変数はbokuhagomidesuのほうがいいんじゃね?
そのほうがお似合いだぞ
0488デフォルトの名無しさん
2012/09/21(金) 23:38:14.96そういう糞みたいな間違いを防ぐ方法を教えてやる
「無能なPGは即クビ」
ソフトの品質保つにはこれが一番効く
0489デフォルトの名無しさん
2012/09/21(金) 23:43:17.000490デフォルトの名無しさん
2012/09/21(金) 23:43:24.93hogeを使ってるかどうかでまともかどうかある程度ざっくり判別できる。
hoge使ってるような奴はまともじゃないから当たり障りのないように適当に相手をしておけばよい。
0491デフォルトの名無しさん
2012/09/21(金) 23:46:45.42そうやって当たり障りなく相手にするから>>479みたいなキチガイがまともに相手してもらえてると思って調子に乗るんだろ
0492デフォルトの名無しさん
2012/09/21(金) 23:49:23.88for(int fuga = 0; fuga < hoge; ++fuga)
凄い!iとjを使う1024倍見やすい!hoge&fugaってすばらしい!
0493デフォルトの名無しさん
2012/09/21(金) 23:58:37.240494デフォルトの名無しさん
2012/09/22(土) 00:10:44.66ようゴミ野郎
0495デフォルトの名無しさん
2012/09/22(土) 00:14:29.260496デフォルトの名無しさん
2012/09/22(土) 00:21:24.31マジモンの池沼か?
0498デフォルトの名無しさん
2012/09/22(土) 00:24:07.44みんなマジで迷惑してんだけどなんで気付かないの?
0499デフォルトの名無しさん
2012/09/22(土) 00:25:10.01意味の無いアルファベットの並びなんか何だっていい
なぜそんなものに不快感を示すのか分からない
0500デフォルトの名無しさん
2012/09/22(土) 00:26:58.07基地害>>479の自業自得w
0501デフォルトの名無しさん
2012/09/22(土) 00:32:25.73そうか?
お前クレジットカード申し込み書の記入例の名前欄にに「スーパーおまんこ天国 放射能ひろしDX」とか書いてあったら、この会社頭おかしいなって思わない?
記入例だから何でもいいけど、普通は「山田 太郎」とかにするだろ。
何でもいいとはいえ時と場合で限度がある。
「スーパーおまんこ天国 ひろしDX」に疑問を感じない>>499の神経にはびっくり。
0502デフォルトの名無しさん
2012/09/22(土) 00:36:06.39亞汰魔がおかしい
927 名前: デフォルトの名無しさん [sage] 投稿日: 2012/09/20(木) 02:48:04.54
"亞汰魔"の検索結果、7件
どこぞのゲーマーのブログに引っかかる訳だが、恥かしくねーのかな?
本人か、影響されたバカか、それとも晒すためのワザと書いてるのか、
知らんけどさー
928 名前: デフォルトの名無しさん [sage] 投稿日: 2012/09/20(木) 02:58:47.68
亞太魔wwwwwwwww
hogeと同じレベルwwwwwwwwwwwwwwwwwwwwwwww
0503デフォルトの名無しさん
2012/09/22(土) 00:38:48.70「意味の無い」 「アルファベットの並び」 と言ったはずだ
0504デフォルトの名無しさん
2012/09/22(土) 00:46:09.97例だろ
そんなことも分からないの?
じゃぁスーパーおまんこなんたらやめて
「じゃびみょぱひるるきいぱ かぴよだばままさろゅぴ郎」に読み替えろ
hoge擁護派にもまともな香具師がいないなぁ
0505デフォルトの名無しさん
2012/09/22(土) 00:47:16.69この会社頭おかしいと思っても、
>>476 の様にその会社に暴言を吐くことは普通しないよな。
子どもじゃないんだから。
黙って、そのまま記入するか、作るカードの会社を変える。
あと、例があまりに非現実的だし、下品で笑えない。
もう少し現実にありそうな事を考えてくれよ。
0506デフォルトの名無しさん
2012/09/22(土) 00:47:20.07こうなることは目に見えてるから荒らすためにわざとhoge使ってるんだろ。
0507デフォルトの名無しさん
2012/09/22(土) 00:49:11.64まずhogeってのが非現実的で下品だから釣り合いは取れてんじゃね?
0508デフォルトの名無しさん
2012/09/22(土) 00:56:08.32無視して大丈夫なレベル
0509デフォルトの名無しさん
2012/09/22(土) 01:00:44.192chだからいいだろ。
現実ではググレカスも言わないし、初対面の相手にタメ口をきくこともない。
0510デフォルトの名無しさん
2012/09/22(土) 01:02:02.84意味あるなら意味ある名前付けると思うけど
0511デフォルトの名無しさん
2012/09/22(土) 01:06:14.26例えば一時的なカウンタとして使用する i j k などは、
その「使われ方」からカウンタという意味を読み取るが、
「名前自体」からは意味を読み取ることはできない。
0512デフォルトの名無しさん
2012/09/22(土) 01:07:29.240513デフォルトの名無しさん
2012/09/22(土) 01:08:20.310514デフォルトの名無しさん
2012/09/22(土) 01:08:30.52良い悪いじゃなくて、単純にウザい
0515デフォルトの名無しさん
2012/09/22(土) 01:09:56.860516デフォルトの名無しさん
2012/09/22(土) 01:10:39.330517デフォルトの名無しさん
2012/09/22(土) 01:11:31.50馬鹿じゃねwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
0518デフォルトの名無しさん
2012/09/22(土) 01:16:23.220519デフォルトの名無しさん
2012/09/22(土) 01:18:37.330520デフォルトの名無しさん
2012/09/22(土) 01:23:53.09何でもいいなら短いほうがいい
しかし短すぎるとすぐに枯渇するし打ち間違えしやすい
つまり4文字程度がベスト
4文字で無意味な文字列といったら誰もが思い浮かべるのがhoge
つまりhogeがすべてを兼ね備えたもっとも美しい識別子なんだよ
0521デフォルトの名無しさん
2012/09/22(土) 01:33:02.07枯渇しねーしfoo打ち間違えるならIT機器に触るのはやめろ
0522デフォルトの名無しさん
2012/09/22(土) 01:37:59.62そうやって何でもかんでもガラパゴス化を推し進める愚図が多いから
日本のITは世界に遅れをとってるんだろうな。
システム自体に顕著にガラパゴス化は現れてなくとも
そういう精神の愚図が作ったものはやっぱりそういう性質になるんだと思うよ。
0523デフォルトの名無しさん
2012/09/22(土) 01:40:34.81bar bazとつなげた時も韻がなってないからごろがわるい
一方でhogeならその辺はすべて安心して使える
0524デフォルトの名無しさん
2012/09/22(土) 01:45:56.32一人ならいいけど大勢いるとなると日本のIT産業は衰退していくだろうね。
0525デフォルトの名無しさん
2012/09/22(土) 02:02:14.22たまにDQN親のイミフな主張をきくけどあれと一緒
0526デフォルトの名無しさん
2012/09/22(土) 03:39:16.72残業がどうとかじゃなくて普通に神経を疑われるようなことをさも当然のように行っている様は、
明らかにおかしいhogeをさも当たり前のように使っている様子にそっくり。
以下コピペ↓
2年前にはいってきた新人
うちは少なくとも週に2〜3回は残業が当たり前っていうのは言ってたのに
1ヶ月ほどで母親が電話してきた。
「うちの息子は何も悪くないのになんで残業させられるんですか?」
残業って別に悪いことしたお仕置きでやってるわけじゃねーよって思ったけど
この新人が社長の知り合いの紹介で入ってきたって言うこともあって
当時の上司が少し様子見ってことで新人だけ残業なしにしてやった。
当然、みんなで残業した次の日には新人君は話に入れない。
みんなでメシ食った話や○○さんのがんばりのおかげで10時に終わった〜とか・・・
そしたら今度は母親が怒鳴り込んできた。
うちの息子ちゃんをみんなでいじめてる。息子ちゃんのわからない話で盛り上がらないで!
残業のときの話は禁止にしてちょうだい!って社長に直談判したらしい。
さすがに社長も「特別扱いはできない。もとより残業免除って言うすごい特別扱いしてるのに
それでも耐えられないんだったらうちの会社があわないのですかね〜?
では次からは特別扱いなしで残業もしてもらいますよ。」って言ってやめてもらった。
ほんと神経わからん親子だった。
0527デフォルトの名無しさん
2012/09/22(土) 07:47:46.20明解C言語入門編LVのC言語は理解できるのですが
独習C++か標準講座C++のどちらを買おうか迷っています。
ネット上にて独習C++はCの知識がある人向けと書いてあったのですが、どのくらい必要なのかわからないので質問しました。
0528デフォルトの名無しさん
2012/09/22(土) 07:54:11.90独習でいいよhoge
0529デフォルトの名無しさん
2012/09/22(土) 08:19:33.30hoger
hogest
0530デフォルトの名無しさん
2012/09/22(土) 08:49:13.97ロベール買っとけ
0531デフォルトの名無しさん
2012/09/22(土) 12:31:36.46ストロストラップ本買え
理解できないならC++を使うのは諦めろ
0532デフォルトの名無しさん
2012/09/22(土) 12:32:45.28hige
huge
hege
hoge
0533デフォルトの名無しさん
2012/09/22(土) 12:52:36.740534デフォルトの名無しさん
2012/09/22(土) 13:04:13.50ハードル高いなおい
0535デフォルトの名無しさん
2012/09/22(土) 14:59:35.27むしろ割引きなくらい
0536デフォルトの名無しさん
2012/09/22(土) 16:28:05.77effective c++
0537デフォルトの名無しさん
2012/09/22(土) 16:31:50.83そのレベルの書籍から学べることは何もない。まったく何もない。本当に何もない
0538デフォルトの名無しさん
2012/09/22(土) 16:38:29.830539デフォルトの名無しさん
2012/09/22(土) 16:46:31.47書籍の購入なんて初学者が嵌る罠だから
>>538
おまえがそう思うなら、既に罠に嵌っている
0540デフォルトの名無しさん
2012/09/22(土) 17:01:45.070541デフォルトの名無しさん
2012/09/22(土) 17:08:10.65一度だけ東京の書店に行ったけれど、品揃えの豊富さには感動したもの
0542デフォルトの名無しさん
2012/09/22(土) 17:51:11.300543デフォルトの名無しさん
2012/09/22(土) 18:22:03.83余程の天才じゃない限り無理だろ
まぁ媒体は本でもWebでもいいけど脱初心者向けのガイドは必要だろ
0544デフォルトの名無しさん
2012/09/22(土) 18:26:18.78九州の南の方ですが何か
>>543
それって本当に必要な機能か?
本質的な問題を解決するために、ソフトウェアを書くために絶対的に必要な機能か?
0545デフォルトの名無しさん
2012/09/22(土) 18:28:24.62あると便利なのがプリンタとkindle
0546デフォルトの名無しさん
2012/09/22(土) 19:40:15.180547デフォルトの名無しさん
2012/09/22(土) 19:51:04.06神戸なら、三宮のジュンク堂でいいじゃん。
都内の三省堂、紀伊国屋、八重洲ブックセンターとかには敵わないけど、
C++ 程度ならそれなりに揃っていたと思うが。
0548デフォルトの名無しさん
2012/09/22(土) 20:01:41.610549デフォルトの名無しさん
2012/09/22(土) 23:47:56.16ゆとりたちは完全に老害の被害者だよ
0550デフォルトの名無しさん
2012/09/23(日) 01:33:51.180551デフォルトの名無しさん
2012/09/23(日) 12:40:49.340552デフォルトの名無しさん
2012/09/23(日) 15:12:55.93>文法おぼえたら、後は設計だけだよ
えっC++の場合文法知識だけでいきなり書き始めたらいろいろ罠に嵌るんでないの
メモリポインタとか
0553デフォルトの名無しさん
2012/09/23(日) 15:25:30.26はげどう
・まずストロストラップ本を読みます
・ストロストラップが積極的に言いたがらない暗黒面を『Effective C++』で補完します
…
まあハードルが高いのも理由があるということで
0554デフォルトの名無しさん
2012/09/23(日) 17:40:53.10「禿」が統一見解
0555デフォルトの名無しさん
2012/09/23(日) 18:18:10.33そうなんだろうけどこの頃は自重すべきだと思うの……
某メタ変数に噛み付くキ……暇人もいるし
0556デフォルトの名無しさん
2012/09/23(日) 20:05:06.050557デフォルトの名無しさん
2012/09/23(日) 20:09:33.17質問です。
下のような感じで、変数の値が変わったら一瞬だけtrueが返ってくるような関数ってありませんか。
if(changed(Var)){
}
0558デフォルトの名無しさん
2012/09/23(日) 20:22:23.75それに合わせたフラグを変数毎にグローバル変数で宣言して、
変化を検知したらtrueを返す……てな感じでいいんじゃね
0559デフォルトの名無しさん
2012/09/23(日) 20:29:15.87class C {
private:
int x;
bool isChanged;
public:
C(): isChanged(false) {}
int get() { return x; }
void set(int x_) { x = x_; Changed = true; }
bool changed() { bool t = isChanged; isChanged = false; return t; }
};
C X;
X.set(1);
if(X.changed()){ ... }
とかでどうよ。
0560デフォルトの名無しさん
2012/09/23(日) 20:30:47.30< void set(int x_) { x = x_; Changed = true; }
> void set(int x_) { x = x_; isChanged = true; }
0561デフォルトの名無しさん
2012/09/23(日) 20:49:15.14フラグ用に一々変数を設けるのが面倒だし、その分ソースコードの量が多くなって大変なんで、良い感じの関数が標準で無いのかな〜と思ったんですけど
残念ながら標準のライブラリでは無いみたいですね。
数日前にC++を始めたばかりでまともな関数を作る事が中々できないミジンコなんです・・・・
>>559
こんなミジンコな私の為にわざわざ作って頂いてありがとうございます!!
私にとってはかなり重宝なので今後ありがたく使わせて頂きます。
これを機にクラス定義のノウハウの方も勉強します。
お二方ありがとうございました。
0562デフォルトの名無しさん
2012/09/23(日) 20:49:48.200563デフォルトの名無しさん
2012/09/23(日) 21:31:44.130564デフォルトの名無しさん
2012/09/23(日) 21:32:05.220565デフォルトの名無しさん
2012/09/23(日) 22:21:41.970566デフォルトの名無しさん
2012/09/24(月) 00:50:01.090567デフォルトの名無しさん
2012/09/24(月) 07:06:26.40他の構造体などは問題なく書き込めるんですが
DWORD magic='DDS '; //0x44445320
FILE* fp;
fp = fopen(filename, "wb" );
fclose(fp);
出来上がったバイナリを覗くと中身は' SDD'(0x20534444)
0568デフォルトの名無しさん
2012/09/24(月) 07:11:56.22リトルエンディアンでググってみてくれ
0569デフォルトの名無しさん
2012/09/24(月) 07:24:40.07ググった
なにこれ面倒くさい
0570デフォルトの名無しさん
2012/09/24(月) 07:50:33.740571デフォルトの名無しさん
2012/09/24(月) 08:41:42.08fwriteが見当たらんね
0572デフォルトの名無しさん
2012/09/24(月) 08:42:10.19例えば WinMerge における unicode の BOM の取り扱いは
if (m_unicoding == ucr::UCS2LE)
{
unsigned char bom[] = "\xFF\xFE";
fseek(m_fp, 0, SEEK_SET);
fwrite(bom, 1, 2, m_fp);
m_data = 2;
}
else if (m_unicoding == ucr::UCS2BE)
{
unsigned char bom[] = "\xFE\xFF";
fseek(m_fp, 0, SEEK_SET);
fwrite(bom, 1, 2, m_fp);
m_data = 2;
}
else if (m_unicoding == ucr::UTF8 && m_bom)
{
unsigned char bom[] = "\xEF\xBB\xBF";
fseek(m_fp, 0, SEEK_SET);
fwrite(bom, 1, 3, m_fp);
m_data = 3;
}
0573デフォルトの名無しさん
2012/09/24(月) 13:22:27.130574デフォルトの名無しさん
2012/09/24(月) 13:59:16.680575デフォルトの名無しさん
2012/09/24(月) 16:06:49.05B
C
D
C
B
D
E
A
E
のように「同じ文字列が2つずつ存在しそれぞれ組みを作ってる」ようなファイルを
A
B
C
D
E
となるように整理するプログラムを作りしたいのですが、どなたか助言いただけないでしょうか
0576デフォルトの名無しさん
2012/09/24(月) 16:08:03.32抽出ミスです…
普通に作るにあたって、文字列はちゃんと文字列として扱えば、
数値データなどはリトルエンディアンで書きだしてあっても普通に読めるってことでいいんですよね
0577デフォルトの名無しさん
2012/09/24(月) 16:13:56.91std::vector<std::string>に読み込んで
std::sort()→std::unique()じゃだめなん
メモリに収まり切らないなら他の方法もあるけど
0578デフォルトの名無しさん
2012/09/24(月) 17:34:34.99移植性がないことに注意。同じ端末で同じ環境で処理するなら、大抵問題ない。
0579デフォルトの名無しさん
2012/09/24(月) 17:36:54.44WindowsPCならおkってことですかね?
ゲームのセーブデータなんかも気になるんですが
0580デフォルトの名無しさん
2012/09/24(月) 17:38:29.670581デフォルトの名無しさん
2012/09/24(月) 17:41:50.71longが32ビットのバージョンで書いたデータを、
longが64ビットのバージョンで読んだらおかしくなるね。
その場合は、int32_tで書いておけって話にはなる。
0582デフォルトの名無しさん
2012/09/24(月) 17:45:12.170583デフォルトの名無しさん
2012/09/24(月) 17:46:33.47異なる場合はテキストやCSV形式でやり取りするのが常識
0584デフォルトの名無しさん
2012/09/24(月) 18:02:45.48JpegやPNGのフォーマット、TCP/IPヘッダなどは
ネットワークバイトオーダーであるビッグエンディアン
0585デフォルトの名無しさん
2012/09/24(月) 18:19:31.870586デフォルトの名無しさん
2012/09/24(月) 18:26:25.69手で書き換えたり出来るし
0587デフォルトの名無しさん
2012/09/24(月) 18:30:56.00で、移植性を重視したいなら、>>583の言うとおりテキストベースで。
達人プログラマにも書いてあったよね。バイナリはうんこって。
0588デフォルトの名無しさん
2012/09/24(月) 18:35:37.430589デフォルトの名無しさん
2012/09/24(月) 18:41:29.100590デフォルトの名無しさん
2012/09/24(月) 18:51:42.650591デフォルトの名無しさん
2012/09/24(月) 19:01:44.19処がどっこい、pnmもバイナリバージョンもあるし、depthが8ビットを越えたときの
エンディアンの規定がないな。
>>584
TIFFはBEもLEもあるな。
0592デフォルトの名無しさん
2012/09/24(月) 19:05:17.140593デフォルトの名無しさん
2012/09/24(月) 19:28:09.350594デフォルトの名無しさん
2012/09/24(月) 19:44:15.870595デフォルトの名無しさん
2012/09/24(月) 19:47:05.10「11 22 33 44」を64ビットで表す時、
リトルエンディアンだと
44 33 22 11 00 00 00 00
でいいから、11 22 33 44 + 予備領域00 00 00 00 を確保すれば読むとき一緒になるのか
そういうことか
0596デフォルトの名無しさん
2012/09/24(月) 20:11:02.04UTF-8の解釈が全くの間違い。スレ違いだから詳細は省略するが、Wikipediaででも調べてみなよ。
0597デフォルトの名無しさん
2012/09/24(月) 20:12:54.29いやそれとは関係なく、ただリトルエンディアンの有用性に関する個人的解釈
0598デフォルトの名無しさん
2012/09/24(月) 21:16:57.01x86で書き出してarmで読み出したときマズイ
0599デフォルトの名無しさん
2012/09/24(月) 21:22:31.75嘘だろ?
0600デフォルトの名無しさん
2012/09/24(月) 21:24:49.84C/C++には標準でXMLを扱うライブラリが付属してないので
いろいろフリーのパーサーがある
0601デフォルトの名無しさん
2012/09/24(月) 21:27:18.030602デフォルトの名無しさん
2012/09/24(月) 21:32:57.74赤紫蘇2
http://akaxiso.sourceforge.jp/
tinyXML
http://www.grinninglizard.com/tinyxml/
MiX
http://mix.sourceforge.jp/
当たりが有名
0603デフォルトの名無しさん
2012/09/24(月) 21:56:24.000604デフォルトの名無しさん
2012/09/24(月) 22:01:28.440605デフォルトの名無しさん
2012/09/24(月) 22:48:54.02Javaも
0606デフォルトの名無しさん
2012/09/25(火) 07:16:54.770607デフォルトの名無しさん
2012/09/25(火) 07:26:08.48くれる機能に物足りなさを感じて消してしまった
0608デフォルトの名無しさん
2012/09/25(火) 08:47:42.11だから、LEの有用性とUTF-8は全く関係ないんだってば。データ値をみないとサイズが判らないんだから。
0609デフォルトの名無しさん
2012/09/25(火) 11:08:52.63C++だと正常に動作するのですが、Cだと例外が出てしまいます。
どうしたらよいでしょうか。
0610デフォルトの名無しさん
2012/09/25(火) 11:12:38.78にしろ
0611デフォルトの名無しさん
2012/09/25(火) 11:22:34.86>C++だと正常に動作するのですが、
この根拠が分からない
C++でもまずいだろ
ヌルポインタの位置にどんなデータが入っているかは分からないのだから
しかもヌルポインタを差すポインタはどこも指してない事になっている
0612デフォルトの名無しさん
2012/09/25(火) 13:13:03.25なければならない」とあるのでナルポインタを渡してはいけない
文字列の先頭要素を指しているポインタを渡してください
0613デフォルトの名無しさん
2012/09/25(火) 14:24:29.64これはprintfの仕様です。あまり知られてませんが。
%sにNULLが渡されたときは(null)に変換されるんです。
あと%pにNULL渡すと(nil)になります。
0614609
2012/09/25(火) 14:34:26.56gccが最適化によりprintfをputsに置き換えているのが原因でした。
なので、たとえば printf("a=%s\n",NULL); などであれば最適化されず
a=(null) と出力されることが確認できました。
とりあえず、ビルトイン関数のうちprintfだけを抑止できればいいので
-fno-builtin-printf を指定してなんとかなりました。
0615デフォルトの名無しさん
2012/09/25(火) 14:38:34.90結局Cのそれもアーキテクチャ固有の現象だったので
ごめんなさい
0616デフォルトの名無しさん
2012/09/25(火) 14:49:18.71規格と実装の区別ぐらいつけろボケ
0617デフォルトの名無しさん
2012/09/25(火) 15:03:30.32規格でなく仕様です
0618デフォルトの名無しさん
2012/09/25(火) 15:37:35.970619デフォルトの名無しさん
2012/09/25(火) 16:55:57.790620デフォルトの名無しさん
2012/09/25(火) 19:04:24.30# どこの馬の骨か知らんが勝手に恥かいてろ
0621デフォルトの名無しさん
2012/09/25(火) 21:55:10.40newされたものはnewされた物によってdeleteされるべきって設計思想はアリですかね?
そうでない場合が要求される場合か利点て何かありますか?
0622デフォルトの名無しさん
2012/09/25(火) 21:58:54.35逆に生成破棄をクラス側で制限するとアロケーターが使えないので不便なときもある
0623デフォルトの名無しさん
2012/09/26(水) 06:38:36.260624デフォルトの名無しさん
2012/09/26(水) 06:54:27.100625デフォルトの名無しさん
2012/09/26(水) 18:12:22.700626デフォルトの名無しさん
2012/09/26(水) 19:03:20.650627デフォルトの名無しさん
2012/09/26(水) 21:44:49.25class myclass{...}
みたいなテンプレートクラスがあったとして、std::map<int,T>とすることは出来ますか?
0628デフォルトの名無しさん
2012/09/26(水) 21:53:53.77myclassの中でって事ならyesだがそのくらい試せばいいだろう
0629デフォルトの名無しさん
2012/09/26(水) 21:55:15.520630デフォルトの名無しさん
2012/09/28(金) 13:52:19.73boostとOpenCVに依存したプログラムが多いのですが
0631デフォルトの名無しさん
2012/09/28(金) 17:00:45.44その説明はワケが分からない
0632デフォルトの名無しさん
2012/09/28(金) 19:38:44.34環境変数変わってるとか?
0633デフォルトの名無しさん
2012/09/28(金) 21:23:09.35ライブラリ側と開発環境のバージョンを合わせないとだめとかないか
0634デフォルトの名無しさん
2012/09/29(土) 10:50:56.620635デフォルトの名無しさん
2012/09/29(土) 11:04:11.560636634
2012/09/29(土) 11:09:04.85なんの困難もなかったです
0637デフォルトの名無しさん
2012/09/29(土) 12:23:16.65スコープの外で使う方法ってありますか?
class A
{
public:
class B hoge;
}
class C
{
public
Cのメンバ関数内で
hogeのメンバ変数の値を変えたり、メンバ関数を実行したいです
}
0638デフォルトの名無しさん
2012/09/29(土) 12:32:21.600639デフォルトの名無しさん
2012/09/29(土) 12:34:36.36hogeとか使ってる基地害には無理
0640デフォルトの名無しさん
2012/09/29(土) 12:36:13.75{
public:
static B hoge;
}
0641デフォルトの名無しさん
2012/09/29(土) 12:40:17.51そんな奴がプログラムやってんの?w
精神構造がマジで腐ってんじゃねーのw
遊ぶ暇はあっても働く暇はないとか言って借金しまくった挙げ句に吊る奴と同じ。
社会に必要ないね。
0642デフォルトの名無しさん
2012/09/29(土) 12:43:44.960643デフォルトの名無しさん
2012/09/29(土) 12:46:33.27friend class X;
private:
void Fuck();
};
class Alice {
Bob<Alice> bob;
public:
void DoSomething() { bob.Fuck(); }
};
こういうふうにfriendに出来る対象をテンプレートで指定したいんですができません
どうすればうまくいきますか?
0644デフォルトの名無しさん
2012/09/29(土) 12:53:39.78AのインスタンスかhogeをCのメンバ関数の引数で受け取ればいいだけだろ
0645デフォルトの名無しさん
2012/09/29(土) 12:58:04.30そもそもhoge使ってる奴の質問って糞みたいな内容ばっかなんだよな
全く調べてないのが丸分かりの糞質問
>>641
hoge厨は無自覚だから吊るなんてことはない
0646デフォルトの名無しさん
2012/09/29(土) 12:59:24.55お前はプログラム組むより回線切って引き込もってたほうが社会のため。
0647デフォルトの名無しさん
2012/09/29(土) 13:02:38.17DQN「パチンコや競馬に行く暇はあっても働く暇なんてないんです><生活保護ください><」
同じwwwwwwwwwwwwwwwwwwwwwww
根性腐ってるwwwwwwwwwwwwwwwwwwwwwwww
0648デフォルトの名無しさん
2012/09/29(土) 13:15:36.660649デフォルトの名無しさん
2012/09/29(土) 13:17:45.190650デフォルトの名無しさん
2012/09/29(土) 13:17:47.770651デフォルトの名無しさん
2012/09/29(土) 13:22:03.93そうだな
お前には無理だな
0652デフォルトの名無しさん
2012/09/29(土) 13:23:30.52元凶は>>637みたいなガキを育てた
>>637の親.
>>637の親はマジモンの屑.
近所からは歩く恥さらしって
呼ばれてるよ.
0653デフォルトの名無しさん
2012/09/29(土) 13:32:08.680654デフォルトの名無しさん
2012/09/29(土) 13:38:25.010655デフォルトの名無しさん
2012/09/29(土) 13:53:04.31ポインタとか、staticってやつを使えばいいんですねサンクス
0656uy
2012/09/29(土) 14:55:58.070657デフォルトの名無しさん
2012/09/29(土) 17:12:12.700658デフォルトの名無しさん
2012/09/29(土) 17:41:00.800659デフォルトの名無しさん
2012/09/29(土) 19:52:41.650660デフォルトの名無しさん
2012/09/29(土) 19:53:16.64マルチコアCPUに買い換えたのを機にこれを見直そうと思いました。
が、面倒で身につきません。
明確に指針を立ててヘッダーファイルと実装ファイルに分けている、
もしくは分けていないという人はいますか?
いたらその理由を教えてください。
0661デフォルトの名無しさん
2012/09/29(土) 19:55:38.460662デフォルトの名無しさん
2012/09/29(土) 19:55:47.890663デフォルトの名無しさん
2012/09/29(土) 20:02:38.670664デフォルトの名無しさん
2012/09/29(土) 21:32:11.470665デフォルトの名無しさん
2012/09/29(土) 21:51:03.51>>637
愚図がキメェんだよ
hogeとか意味不明
落書きはブログにでも書いてろ
0666デフォルトの名無しさん
2012/09/29(土) 21:51:54.40hoge();
return 0;
}
コンパイルできませんなにがおかしいんでしょうか?
0667─☆─ [ X | I.I.T. ] COURANT DE CONSOLE ◆TXFAX7cidQpG
2012/09/29(土) 21:52:38.79ダミアン乙w”
0668デフォルトの名無しさん
2012/09/29(土) 21:53:09.390669─☆─ [ X | I.I.T. ] COURANT DE CONSOLE ◆TXFAX7cidQpG
2012/09/29(土) 21:54:20.540670デフォルトの名無しさん
2012/09/29(土) 22:10:53.08>>662
・クラステンプレートなどヘッダーファイルに書かざるを得ないケースがある
・分けるとファイル数と記述が増えてめんどくさい
これらの理由でhppファイルに全てまとめていました
0671デフォルトの名無しさん
2012/09/29(土) 22:24:20.390672デフォルトの名無しさん
2012/09/29(土) 22:29:57.590673デフォルトの名無しさん
2012/09/29(土) 22:40:18.560674デフォルトの名無しさん
2012/09/30(日) 00:36:36.00一般論としてはそんなのは保守フェーズに入るときにやればいいんジャネ
外部インターフェースがきっちり決まっていて、きちんと動くならそれでおk
ただ>670は目的と手段がちぐはぐに見受けられ、理解してやってるのか不安になるというのはある
プログラマごと取り替えたほうが良いのではないか
0675デフォルトの名無しさん
2012/09/30(日) 01:00:43.09インターフェースと実装は分離するのが基本
そうすると、実装の取り替えがオブジェクトモジュール単位で実施できて、
当のオブジェクトモジュールのビルドとリンクし直しだけで済むので
C++の場合もちろんインターフェースをヘッダファイルに、実装を.cppの方に書く
そうしておいて、とりあえず普通に書いて動作するレベルにした後、
プロファイラで調べて、何と何の実装をヘッダファイルに移すか白黒つければいいんジャネ
0676デフォルトの名無しさん
2012/09/30(日) 08:00:45.270677デフォルトの名無しさん
2012/09/30(日) 08:21:25.47>一般論としてはそんなのは保守フェーズに入るときにやればいいんジャネ
お前の変な考えを、 一般論と言うなよ。
0678デフォルトの名無しさん
2012/09/30(日) 08:23:44.000679デフォルトの名無しさん
2012/09/30(日) 09:22:16.47動的にインスタンス生成することの
メリットが分かりません
教えて下さい
0680デフォルトの名無しさん
2012/09/30(日) 09:24:37.700681デフォルトの名無しさん
2012/09/30(日) 09:24:40.110682デフォルトの名無しさん
2012/09/30(日) 09:26:10.08然るに動的な生成破棄を使いこなせばより柔軟性の高い便利なアプリケーションが作れることももはや自明の論理だろう
0683デフォルトの名無しさん
2012/09/30(日) 09:26:38.630684デフォルトの名無しさん
2012/09/30(日) 09:36:21.59徹夜でにちゃん? (w
0685デフォルトの名無しさん
2012/09/30(日) 10:10:36.29死ね。
0686デフォルトの名無しさん
2012/09/30(日) 12:30:01.73ネタじゃなく、こういう馬鹿がリアルでいるから困る
必要なメモリは最初から配列で静的に確保しておけとか言うんだぜ
0687デフォルトの名無しさん
2012/09/30(日) 12:40:31.09実行環境がわかってるコンシューマゲームとかなら普通に有効な選択肢だが?
もちろんアロケーター通して使うから、そのままstaticなオブジェクト配列ってことにはならんが
0688デフォルトの名無しさん
2012/09/30(日) 12:44:40.03違うよ。staticなオブジェクト配列ってことを言ってるんだよ
0689デフォルトの名無しさん
2012/09/30(日) 13:02:48.16文脈読めよ
アロケータとか言いたいだけの厨房か?
0690デフォルトの名無しさん
2012/09/30(日) 13:08:40.85きみアロケーターをなにか高尚なものと勘違いしてないか?
0691デフォルトの名無しさん
2012/09/30(日) 13:17:14.80もういいって
そういう話じゃないってわかれよ
0692デフォルトの名無しさん
2012/09/30(日) 13:17:38.880693デフォルトの名無しさん
2012/09/30(日) 13:17:39.55あ、お逃げになられるわけですね
わかりました
0694デフォルトの名無しさん
2012/09/30(日) 13:18:29.08理解できてないのは君なんだが
0695デフォルトの名無しさん
2012/09/30(日) 13:24:15.97>必要なメモリは最初から配列で静的に確保しておけとか言うんだぜ
ここではstaticにメモリを何らかの型の配列で確保すると言っている
つまりstaticに必要な型のオブジェクト配列としてそのままとれと言っているのではなく
なんらかの管理手段を通じてそのメモリ領域を利用することを示唆している
もしオブジェクト配列をそのまま使うという意図で言うなら「必要なオブジェクトは最初から配列で〜」と書くはずだ
したがってアロケーターの話が浮上しても流れとしてなんらおかしくはない
0696デフォルトの名無しさん
2012/09/30(日) 13:37:29.00>つまりstaticに必要な型のオブジェクト配列としてそのままとれと言っているのではなく
>なんらかの管理手段を通じてそのメモリ領域を利用することを示唆している
その解釈の可能性は否定しないが、その解釈であると断定するのは無理がありすぎ。
0697デフォルトの名無しさん
2012/09/30(日) 13:38:51.36断定してないけど?
0699デフォルトの名無しさん
2012/09/30(日) 13:40:27.86それをアホ扱いするのは無理がある
0700デフォルトの名無しさん
2012/09/30(日) 14:46:45.200701デフォルトの名無しさん
2012/09/30(日) 14:48:41.000702デフォルトの名無しさん
2012/09/30(日) 15:12:22.43あばばばばばばばばばばばばばばばばばばばばばばばばばばばばばばばばwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
0703デフォルトの名無しさん
2012/09/30(日) 16:11:12.170704デフォルトの名無しさん
2012/09/30(日) 16:22:27.67#include <mmsystem.h>
とtimeBeginPeriod(1) を使わずに1msのタイマ分解能を得たいのですが、
他にどういった方法がありますでしょうか。
C++のSTL等では不可能でしょうか。
timeBeginePeriodを使いたくない理由は、
windowsにしか対応できないからです。
できれば同じコードでマルチプラットフォーム対応できればと考えています。
教えていただけますと嬉しいです。
0705デフォルトの名無しさん
2012/09/30(日) 16:25:51.220706デフォルトの名無しさん
2012/09/30(日) 16:26:13.710707デフォルトの名無しさん
2012/09/30(日) 16:33:43.21もしくはラッパー作るとか。
0708デフォルトの名無しさん
2012/09/30(日) 16:34:55.68http://blog.wonderrabbitproject.net/post.aspx-id=99100bb5-d47e-4683-afc5-65e15d17a26d
ここ見てみたのですがやはりifdefする方がよいのですかね・・
ありがとうございましたm(_ _)m
0709デフォルトの名無しさん
2012/09/30(日) 21:09:34.77おい、static使っても出来なかったぞカス
0710デフォルトの名無しさん
2012/09/30(日) 21:47:00.72日曜日だな
0711デフォルトの名無しさん
2012/09/30(日) 21:52:04.44余所で聞けよ
0712デフォルトの名無しさん
2012/09/30(日) 22:23:53.85これからはRubyだと学校で言われて超簡単言語Rubyを覚え、社会じゃ役に立たないと知り、
業務は生産性の高いJavaだと言われてちょっと簡単言語Javaを覚えて仕事し続け、
結局世の中C/C++で動いてると知って
簡単な言語ばかり覚えてきた自分に落胆してるような人間向けの解説を探してます。
C言語は業務で使っているので扱えます。
0713デフォルトの名無しさん
2012/09/30(日) 22:33:02.69普通にC++の参考書じゃダメなん?
0714デフォルトの名無しさん
2012/09/30(日) 22:35:59.95JavaでいうこれはC++ではこうやるんだよ!っていう比較ありきの解説ないかなと思いまして。
0715デフォルトの名無しさん
2012/09/30(日) 22:36:33.14腐るほどあるのに
おまえの探し方が甘すぎるだけ
要するに Java わかる人が C++ 教えりゃいいんだろ
神からご託宣をいただけるのか、
等身大の傭兵から何か盗めればいいのか
そこにナーバス過ぎちゃ無理だよ無理すぎ
0716デフォルトの名無しさん
2012/09/30(日) 22:38:45.48文系脳死ね
0717デフォルトの名無しさん
2012/09/30(日) 22:54:51.19まあMSDNでも漁りますノシ
0718デフォルトの名無しさん
2012/10/01(月) 00:12:50.70>C言語は業務で使っているので扱えます
この時点で「初心者じゃないから自分で調べることぐらい出来るよね?」
って思われてるんじゃね
0719デフォルトの名無しさん
2012/10/01(月) 01:47:29.04李明博大統領の竹島上陸から勃発した韓国のすさまじい反日行為。対する日本も“嫌韓”感情に火がついている。
“韓流”ブームも息を潜め、韓国ドラマや韓流スターにうつつを抜かしていた女性たちの中にも、韓国と距離を置く人が増えている。
だが、“嫌韓”感情は隣国・日本だけではない。アジア各地にも広がっている。
中でも根深いのはベトナム。ベトナムは昨年、「満50歳以上、または年齢差が16歳以上」の韓国人男性とベトナム人女性との
国際結婚を禁止する厳しい規定を設けた。
ベトナム戦争時 韓国人兵士のレイプで産まれた混血児
グローバル化の時代に国際結婚を法律で禁止するという強行策。背景には「ライダイハン」問題がある。
ベトナム戦争時、ベトナムに派兵した一部の韓国人兵士が現地の女性を強姦したり、暴行を振るっていた。
その結果「ライダイハン」と呼ばれる混血児が多数産まれたのだ。韓国人兵士はそのまま帰国し、母子が残され差別に苦しみながら生きてきた。
さらに、最近は韓国人夫のDV(家庭内暴力)などの事例も増えているという。
従軍慰安婦問題といいライダイハン問題といい、その傷跡は深い。“反日”や“嫌韓”の背景にある歴史問題にも目を向けるべきである。
http://www.kon-katsu-news.com/news_a4sj0mIlnO.html
0720デフォルトの名無しさん
2012/10/01(月) 02:18:30.57};
class B:A{
};
class C:A{
};
main{
int size;
cin>>size;
A* a= new A[size];
C c;
a[2]=c;
}
と基底クラスAに派生クラスであるCを代入しようとすると、
アクセスできない基本クラスAへの変換は許されていませんとでてきます。
なにが原因なのでしょう?
http://ideone.com/nOlqV
かりにこうだったら、sizeof(A) < sizeof(C) だから、a[] に c は収まりそうもない。
0722デフォルトの名無しさん
2012/10/01(月) 04:52:20.02A::operator=(A const&) は書いてるの?
0723デフォルトの名無しさん
2012/10/01(月) 05:02:47.99http://ideone.com/wWanT
0725デフォルトの名無しさん
2012/10/01(月) 07:48:55.57スラッシングも知らないのか
0726デフォルトの名無しさん
2012/10/01(月) 07:53:04.32とかは?
0727デフォルトの名無しさん
2012/10/01(月) 07:55:39.860728デフォルトの名無しさん
2012/10/01(月) 07:57:46.61それコンパイル通るかやってみたのか
0729デフォルトの名無しさん
2012/10/01(月) 07:59:19.14すまん、盛大に勘違いした
半年ROMるわ・・・
0730デフォルトの名無しさん
2012/10/01(月) 08:01:17.77ごみんなさ〜い
0731デフォルトの名無しさん
2012/10/01(月) 08:02:44.29当たり前だが
0732デフォルトの名無しさん
2012/10/01(月) 15:44:12.90だいなみっく☆キャスト しろよ
0733デフォルトの名無しさん
2012/10/01(月) 20:23:04.29えっ?
0734デフォルトの名無しさん
2012/10/01(月) 21:57:25.41あのさあクラスCで拡張された部分がスライシングでなくなってるから
ダウンキャストするとあぼ〜んするんだけど
意味わかってる?
0735デフォルトの名無しさん
2012/10/01(月) 22:16:09.97しょせんカタカナ英語だけど「〜ingで」はこの場合おかしいだろ
0736デフォルトの名無しさん
2012/10/01(月) 22:33:52.600737デフォルトの名無しさん
2012/10/01(月) 23:04:49.300738デフォルトの名無しさん
2012/10/01(月) 23:44:03.76class A {
public:
virtual void print() const {
std::cout << "A!!" << std::endl;
}
};
class B : public A {
public:
void print() const {
std::cout << "B!!" << std::endl;
}
};
int main()
{
A a[1];
a[0] = B();
B* bp = dynamic_cast<B*>(&a[0]);
std::cout << bp << std::endl; // スライシングされているのでダウンキャスト出来ない
B* bp2 = reinterpret_cast<B*>(&a[0]);
bp2->print(); // vtableまで削られているので A の関数が実行される
}
0739デフォルトの名無しさん
2012/10/01(月) 23:55:23.56virtual無しの話だろ
0740デフォルトの名無しさん
2012/10/02(火) 00:02:23.15無理矢理reinterpret_castするのかな
0741デフォルトの名無しさん
2012/10/02(火) 00:05:39.34代入や初期化の際にコピーされないだけ
0742デフォルトの名無しさん
2012/10/02(火) 01:15:42.28そもそもdynamic_castするという話ではないぞ
0743デフォルトの名無しさん
2012/10/02(火) 07:06:54.87単にBのA部分をAにコピーしてるだけと言えばすぐ解るだろうに。
0744デフォルトの名無しさん
2012/10/02(火) 07:32:37.94代入の場合は代入演算子 operator=(const A&) が動いてるだけだな
0745デフォルトの名無しさん
2012/10/02(火) 09:18:49.06Nの最大値を教えてください。
0746デフォルトの名無しさん
2012/10/02(火) 09:33:21.620747デフォルトの名無しさん
2012/10/02(火) 09:37:59.00ただし物理的・環境依存限界はある
auto variable ならスタックサイズ
global/static ならヒープサイズ
dynamic ならOSのメモリ割り当て限界
0748デフォルトの名無しさん
2012/10/02(火) 10:01:28.280749デフォルトの名無しさん
2012/10/02(火) 10:11:16.72int b[20*20*20*20*20]
int a[11]
public:
A(){
for{int i=0;i<11;++i}
std::cout<<a[i]<<std':endl;
}
};
がTDM-GCC 4.7.1 64bit
でこのクラスを実行するとエラーになるのは
なぜですか?
0750デフォルトの名無しさん
2012/10/02(火) 10:16:15.10そんなわけなさそうに見えるが
0751デフォルトの名無しさん
2012/10/02(火) 10:19:32.620752デフォルトの名無しさん
2012/10/02(火) 10:23:35.340753デフォルトの名無しさん
2012/10/02(火) 10:32:32.690754デフォルトの名無しさん
2012/10/02(火) 10:55:12.77と
abc& Func();
ってどう違うの?
0755デフォルトの名無しさん
2012/10/02(火) 10:56:47.500756デフォルトの名無しさん
2012/10/02(火) 11:07:30.95class A {
int i;
public:
A(int j = 0) : i(j) {}
void print() const {
std::cout << i << std::endl;
}
};
class B : public A {
int ii;
public:
B(int j = 0, int jj = 0) : A(j), ii(jj) {}
void print2() const {
std::cout << ii << std::endl;
}
};
int main()
{
A a[1];
a[0] = B(1, 2);
B* bp2 = reinterpret_cast<B*>(&a[0]);
bp2->print();
bp2->print2(); // さすがに未定義
}
0757デフォルトの名無しさん
2012/10/02(火) 11:31:11.44代入まで1セットにするから妙なことになる
見るのはこれだけでいいだろう
A a[1];
B* bp2 = reinterpret_cast<B*>(&a[0]);
0758デフォルトの名無しさん
2012/10/02(火) 11:39:33.660759デフォルトの名無しさん
2012/10/02(火) 11:50:09.32クラスのデータはスタックに保存されるんですか?
スタックを大きくするあるいは動的に作成すれば解決ですか?
スタックを大きくすること出来ますか?
0760デフォルトの名無しさん
2012/10/02(火) 11:51:35.75綺麗な表を作る方法とか載ってるホームページとかないですか?
0761デフォルトの名無しさん
2012/10/02(火) 11:54:49.020762デフォルトの名無しさん
2012/10/02(火) 11:56:55.46同じ
http://ideone.com/i3EAt
>>759
void f(){ A a; }ならスタックから確保
void f(){ A* a = new A(); delete a; }ならヒープから確保
大きいクラスはヒープから確保すればOK
まだスタックを大きくすることは考えない方がいい
0763デフォルトの名無しさん
2012/10/02(火) 11:59:47.26ありがとうございます。
0764デフォルトの名無しさん
2012/10/02(火) 13:08:25.99AA関連のサイトには特定の環境の特定のフォントの幅についての言及はあるが、
標準出力だとフォントは指定できないから表示される環境に依存する。
まぁ、等幅フォント前提なら難しくないだろ。
プロポーショナルフォントで憑依される可能性があるなら、諦めろ。
つーか、環境に依存する話はスレ違い。
0765デフォルトの名無しさん
2012/10/02(火) 13:27:57.46template<int *pa>
struct AA{};
template<int *pa>
struct BB{
enum{ bb = (int)pa }; //�B
};
AA<&a> aaa; //�@
BB<&a> bbb; //�A
�@でaのアドレスをテンプレート引数に渡せたので
aのアドレスはコンパイル時定数かと思っていたのですが
�Aをインスタンス化するときに�Bで「定数式が必用です」と
なりました。
グローバル変数のアドレスはコンパイル時定数ではないのですか?
Visual C++ 2010です。
0766デフォルトの名無しさん
2012/10/02(火) 13:31:44.840767デフォルトの名無しさん
2012/10/02(火) 16:26:28.390768デフォルトの名無しさん
2012/10/02(火) 16:27:51.660769デフォルトの名無しさん
2012/10/02(火) 20:00:00.400770デフォルトの名無しさん
2012/10/02(火) 20:01:36.43ブーストとかいうのがあった
0771デフォルトの名無しさん
2012/10/02(火) 20:08:39.900772デフォルトの名無しさん
2012/10/02(火) 20:29:03.13#include <algorithm>
#include <vector>
template <class C, typename T = typename C::value_type>
std::vector<T> copy_to_vec(const C& from) {
std::vector<T> res(from.begin(),from.end());
std::sort(res.begin(),res.end());
return res;
}
int main()
{
std::unordered_map<int,int> from;
from.insert(std::make_pair(1,2));
auto to = copy_to_vec(from);
}
このコードなんですが、unordered_map::value_typeはpair<const key_type,mapped_type>
と勝手にconstが入ってしまうので、sort(...)が使えません。-fpermissibleを入れろと言ってきます。
テンプレート引数でT=...となっている部分を変えて何とかなりませんか?
0773デフォルトの名無しさん
2012/10/02(火) 20:31:18.82テンプレート引数で何とか処理したいという質問です。
0774デフォルトの名無しさん
2012/10/02(火) 22:19:08.18等幅フォントならそんなに難しくない。自分でCSVを表に直すソフト自作したことあるから分かる
1. 表の縦横のセル数、横一つ一つのセルの横幅最大値を取得
2. セルの横幅最大値を偶数にして(半角3つ分なら4つになるように修正)
3. 「┌と─と┬と┐でできた行」「├と─と┼と┤でできた行」「└と─と┴と┘でできた行」
「│とセル内容でできた行」の4種類を生成して、前3つと後1つを交互にくっつけて表を作成
こんなんでおk
>>771
こんなにカオスな言語を宇宙最強と誇れないんだが
0775デフォルトの名無しさん
2012/10/02(火) 23:50:19.05中のconstを外したpairを返すtraitsを作って使え
template<class T>
struct pair_remove_const
{
typedef typename std::remove_const<T>::type type;
};
template<class T1, class T2>
struct pair_remove_const<std::pair<T1, T2>>
{
typedef std::pair<typename std::remove_const<T1>::type, typename std::remove_const<T2>::type> type;
};
template <class C, typename T = typename pair_remove_const<typename C::value_type>::type>
0776デフォルトの名無しさん
2012/10/02(火) 23:55:34.28unordered_mapだと勝手にKeyでソートされるでしょ
それをvectorに入れてソート?
目的が分からない
初めからvectorに入れてからsort()を呼び出せばいいような
0777デフォルトの名無しさん
2012/10/03(水) 00:15:52.290778デフォルトの名無しさん
2012/10/03(水) 00:41:54.32std::remove_constを使うと簡単に変換出来ますね
逆はどうなるのかな
やはり一個一個insertするしかないかな
そうすれば勝手にまたconstになるから
0779デフォルトの名無しさん
2012/10/03(水) 00:45:07.77map<k, v> m2(m1.begin(), m1.end());
vector<pair<k, v>> v(m2.begin(), m2.end());
0780デフォルトの名無しさん
2012/10/03(水) 04:36:14.09やっぱ力技でconst外すしかないですか。
>unordered_mapだと勝手にKeyでソートされるでしょ
されないのが特徴ですが、mapに一回突っ込むのが妥当な感じですね。
にしてもvector<P<const T>>的なものがソートできないって・・・
中身を書き換えるわけじゃないのにな。
0781デフォルトの名無しさん
2012/10/03(水) 04:41:44.29STLはそういうことが日常だな。
0782デフォルトの名無しさん
2012/10/03(水) 10:53:51.43ありがとうございます。
0783デフォルトの名無しさん
2012/10/03(水) 22:13:36.170784デフォルトの名無しさん
2012/10/04(木) 20:29:02.29http://www.c-tipsref.com/reference/stdio/snprintf.html
で
#define N 256
としつつ
char s[N] = {'\0'};
と割り当てて
snprintf(s, N, "%sさんは%d歳の%sです.", name, age, sex);
ってやってますけど、snprintf の3項目目が256文字ちょうどだったとき、もれなくヤバいことおきませんか?
snprintf(s, N-1, "%sさんは%d歳の%sです.", name, age, sex);
な機がするんですけど、いかがでしょ?
0785デフォルトの名無しさん
2012/10/04(木) 20:29:48.84にするか
char s[N+1] = {'\0'};
にするかってことで
0786デフォルトの名無しさん
2012/10/04(木) 20:36:47.89って書いてるじゃない
0787デフォルトの名無しさん
2012/10/04(木) 20:38:55.140788デフォルトの名無しさん
2012/10/04(木) 22:24:50.04特定のメンバ関数を持っているといった制約はテンプレートで十分ですよね
0789デフォルトの名無しさん
2012/10/04(木) 22:30:13.180790デフォルトの名無しさん
2012/10/04(木) 23:27:20.72つ 多態性
0791デフォルトの名無しさん
2012/10/04(木) 23:42:32.21それはテンプレートで十分だと思うのですが・・・
0792デフォルトの名無しさん
2012/10/05(金) 00:02:05.73ポインタ使ったことないの?
0793デフォルトの名無しさん
2012/10/05(金) 00:09:28.05動的な多態性を実現するには、テンプレートでは無理
テンプレートで実現できるのは、コンパイルタイムで確定する静的構造のみなので、一般的に言う自由度の高い多態性は実現できないよ
0794デフォルトの名無しさん
2012/10/05(金) 00:21:26.06virtual void Method() const = 0; };
template <class X> struct Sub : IBase {
X const & x;
Sub(X const & x) : x(x) {}
void Method() const { x.Method(); } };
void Func(IBase const & x) { x.Method(); }
template <class X> void Func(X const & x) { Func(Sub<X>(x)); }
このようにXが直接interfaceを継承する必要はない
XをFunc以外で利用する際にオーバーヘッドとならないようにXが直接interfaceを継承することは避けるべきである
0795デフォルトの名無しさん
2012/10/05(金) 00:27:17.610796デフォルトの名無しさん
2012/10/05(金) 00:31:00.80柔軟性のある表現を勝手気ままに絶対的な法則であるかのように解釈することは愚か者によく見られる行動の1つである
0797デフォルトの名無しさん
2012/10/05(金) 00:43:22.39アダプタパターンをどや顔で主張されてもな
0798デフォルトの名無しさん
2012/10/05(金) 00:45:26.11完全抽象化classをinterface呼ばわりすんなよJava公
0799デフォルトの名無しさん
2012/10/05(金) 00:49:14.47オーバーヘッドってなんだよ
クラス単位のインライン展開もしらないとか?
0800デフォルトの名無しさん
2012/10/05(金) 00:50:09.75他クラスとの連携の仕方を、連携するクラスに押し付けるのではなく
連携を管理するクラスを一つつくり分離できる機能を分離するほうがきれい
0801デフォルトの名無しさん
2012/10/05(金) 00:56:24.850802デフォルトの名無しさん
2012/10/05(金) 01:07:05.66Rootを始めとするC++ interpreterを使えば実行時にtemplateが動くけど。
C++はCompile方式じゃないとダメって制限はない。
0803デフォルトの名無しさん
2012/10/05(金) 01:35:25.79お前本当にそれ使ってるのか?
皆が皆使うと思ってるのか?
0804デフォルトの名無しさん
2012/10/05(金) 01:36:47.760805デフォルトの名無しさん
2012/10/05(金) 01:42:32.380806デフォルトの名無しさん
2012/10/05(金) 01:50:19.01ちょとずれてるなあ。
これ理解できる?
ttp://codepad.org/WnSwQWG1
動的ポリモーフィズムってのはこう言う事なんだけど。
これはテンプレートだけでは実現できないよね?
0807デフォルトの名無しさん
2012/10/05(金) 01:59:06.05Value( argv > 0 ? A(): B() );
Interpreterだとこれが動くんだから便利なもんだよ。
だからプログラミングはどうでもよくて、とりあえず手っ取り早く、
速いプログラムが欲しい研究屋に重宝される
0808デフォルトの名無しさん
2012/10/05(金) 02:17:26.81まあなに使うにしてもshared_ptrないと話にならんわ。
0809デフォルトの名無しさん
2012/10/05(金) 02:25:48.18それは多態性と関係ない。
しかも、普通にコンパイルできる。
0810デフォルトの名無しさん
2012/10/05(金) 02:35:28.28codepadは無理だったけどマジで?
http://codepad.org/7yJ13usy
0811デフォルトの名無しさん
2012/10/05(金) 02:48:35.520812デフォルトの名無しさん
2012/10/05(金) 03:14:23.17普通にif分にしたら当然とおった。
http://codepad.org/FKHFhlWI
0813デフォルトの名無しさん
2012/10/05(金) 03:18:47.33その変え方なら三項演算子のままでいいじゃないか
0814デフォルトの名無しさん
2012/10/05(金) 03:35:44.000815デフォルトの名無しさん
2012/10/05(金) 07:07:25.19で、一般論を否定するレベルで皆が常用してるの?ってところがポイントなんだと思うが
0816デフォルトの名無しさん
2012/10/05(金) 07:39:15.51main()は別にテンプレートとは関係ないからコンパイル通ったんだろ
コンパイル時に変数の値を定数化したいならC++11のcontexprが必要だろ
0817デフォルトの名無しさん
2012/10/05(金) 07:39:36.240818デフォルトの名無しさん
2012/10/05(金) 12:33:00.06高IQの人はみんな使うよね
0819デフォルトの名無しさん
2012/10/05(金) 12:35:25.48便利すぎてわろた次期C++に採用しよう
0820デフォルトの名無しさん
2012/10/05(金) 12:50:58.850821デフォルトの名無しさん
2012/10/05(金) 13:00:42.100822デフォルトの名無しさん
2012/10/05(金) 13:04:57.780823デフォルトの名無しさん
2012/10/05(金) 14:49:16.88struct IHello {
virtual ~IHello(void) {}
template <class Allocator> virtual std::shared_ptr<IWorld> CreateWorld(Allocator allocator) const = 0; // ジーザス!コンパイルデキナイ
};
0824片山博文MZボット ◆0lBZNi.Q7evd
2012/10/05(金) 14:54:42.75struct IHello {
virtual ~IHello(void) {}
virtual std::shared_ptr<IWorld> CreateWorld(Allocator allocator) const = 0;
};
0825デフォルトの名無しさん
2012/10/05(金) 15:30:27.30A*operator new(size_t)=delete;
みないな事出来ますか?
0826デフォルトの名無しさん
2012/10/05(金) 15:34:10.81なにやってんの?
0827デフォルトの名無しさん
2012/10/05(金) 15:52:58.71仮にそれが出来たとしても↓は止められないけどいいの?
struct B{
A a;
};
new B();
0828デフォルトの名無しさん
2012/10/05(金) 21:40:19.350829デフォルトの名無しさん
2012/10/05(金) 21:56:39.62class B{
void create(int val){
【あ】
};
private:
A *a;
};
int main(void){
B b;
b.create(10);
}
【あ】の箇所でAのインスタンスをval個作成するにはどうすれば良いですか?
0830デフォルトの名無しさん
2012/10/05(金) 21:59:06.71宿題?
0831デフォルトの名無しさん
2012/10/05(金) 22:03:19.360832デフォルトの名無しさん
2012/10/05(金) 22:07:25.28class A{};
class B{
void create(int val){
a.resize(val);
};
private:
std::vector<A> a;
};
0833デフォルトの名無しさん
2012/10/06(土) 12:57:52.870834デフォルトの名無しさん
2012/10/06(土) 13:26:38.600835デフォルトの名無しさん
2012/10/06(土) 13:33:25.18どっちもC++関係無いな。
その定義次第としか答えられない。
0836デフォルトの名無しさん
2012/10/06(土) 13:35:21.86charが2バイトとか1バイトが8ビットじゃないみたいな環境のこと考えて普段からプログラム書いてますか
0837デフォルトの名無しさん
2012/10/06(土) 13:49:48.411byteが何bitかは決まってませんが
0838デフォルトの名無しさん
2012/10/06(土) 14:43:21.75本来は最低でも32ビットくらいないとおかしいよな
0839デフォルトの名無しさん
2012/10/06(土) 15:25:00.350840デフォルトの名無しさん
2012/10/06(土) 18:41:54.62class I {
int n;
public:
I(int n=0): n(n) {}
operator int() const {
return n+1;
}
};
I i(10);
printf("%d",int(i)); //OK
printf("%d",i); //コンパイルエラー
どうすればいいですか?
0841デフォルトの名無しさん
2012/10/06(土) 18:45:18.360842デフォルトの名無しさん
2012/10/06(土) 18:46:58.920843デフォルトの名無しさん
2012/10/06(土) 18:48:29.130844デフォルトの名無しさん
2012/10/06(土) 19:58:41.24そもそも、C++で型保証ができない可変個数引数を使うのがわるい。
つまり、お前は死ぬべきだ。
0845デフォルトの名無しさん
2012/10/06(土) 20:02:02.80素直にstd::cout使うか、printf風に書きたかったらboost::format使うべき。
0846デフォルトの名無しさん
2012/10/06(土) 20:21:55.03C++11を知らないお前が死ぬべきだ()
printfは型安全に実装できるはずだろ。
0847デフォルトの名無しさん
2012/10/06(土) 20:22:28.38printfではできないことは分かった。
0848デフォルトの名無しさん
2012/10/06(土) 20:48:22.33実装と型保証の区別ぐらいできるようになろうよ…
0849デフォルトの名無しさん
2012/10/06(土) 22:21:27.750850デフォルトの名無しさん
2012/10/06(土) 22:26:22.810851デフォルトの名無しさん
2012/10/06(土) 22:31:15.07そのクラスの変数宣言したとき
メモリに領域確保されるらしい
どれくらい、そしてなにが確保されるの?
0852デフォルトの名無しさん
2012/10/06(土) 22:35:25.750853デフォルトの名無しさん
2012/10/06(土) 22:37:24.980854デフォルトの名無しさん
2012/10/06(土) 22:54:35.70あと
データメンバ、メンバ関数のあるクラス作って
その変数宣言したとき
それ用にメモリに領域確保されるはず。
データ用の確保はわかるけど(intなら4バイトとか)
メンバ関数用の確保は何?
関数コードのあるアドレスが確保されるの?
0855デフォルトの名無しさん
2012/10/06(土) 22:56:08.910856デフォルトの名無しさん
2012/10/06(土) 22:58:54.17指定の関数命令コードの
先頭のアドレスへのポインタってこと?
0857デフォルトの名無しさん
2012/10/06(土) 23:00:04.630858デフォルトの名無しさん
2012/10/06(土) 23:00:54.180859デフォルトの名無しさん
2012/10/06(土) 23:04:11.95おかしくない?
じゃあどうやってオブジェクトのメンバ関数を
認識できてるの?
0860デフォルトの名無しさん
2012/10/06(土) 23:06:40.51普通の関数と同じだよ
0861デフォルトの名無しさん
2012/10/06(土) 23:12:36.35なにかが確保されてるはずなんだけど
0862デフォルトの名無しさん
2012/10/06(土) 23:14:27.56コンパイル時に確定、それが非仮想関数
0863デフォルトの名無しさん
2012/10/06(土) 23:16:16.59されない
隠しthisを受けとるだけの、普通の関数だよ
クラス自体には何の情報も持ってないよ
0864デフォルトの名無しさん
2012/10/06(土) 23:17:15.860865デフォルトの名無しさん
2012/10/06(土) 23:18:55.700866デフォルトの名無しさん
2012/10/06(土) 23:20:32.53っていうか少し考えればわかることだし
0867デフォルトの名無しさん
2012/10/06(土) 23:21:19.70書いていない入門書が存在することに驚いた
0868デフォルトの名無しさん
2012/10/06(土) 23:24:36.74それ分かる奴は入門者ではないだろう
boost::bindやら使わんと、そも明示的にthis渡す機会とかないし
0869デフォルトの名無しさん
2012/10/06(土) 23:29:27.94静的ならば静的メンバ関数と同じになるじゃないか
0870デフォルトの名無しさん
2012/10/06(土) 23:32:09.48だから基本的に同じなの
暗黙にthisを受けとる事だけが違うの
0871デフォルトの名無しさん
2012/10/06(土) 23:38:11.330872デフォルトの名無しさん
2012/10/06(土) 23:46:01.11class Hoge0{
void func(){;};
};
class Hoge1{
void func(){;};
};
int main(){
Hoge0 m;
m.func();
}
こんなとき静的には解決できないはず(どちらかわからないから)
mになんらかの情報(例えば関数コードがあるアドレス)
が格納されていなければならないはず
0873デフォルトの名無しさん
2012/10/06(土) 23:50:37.23めんどくせーなー
自分で型を宣言してるだろーが
あと、そのクラス名を使うとヤツが来るぞ
0874デフォルトの名無しさん
2012/10/06(土) 23:53:02.16m.func()と言う呼び出しは、mに対して何らかの処理を加えるということなので、
例えばvoid sfunc(Hoge0* p)という静的関数で
sfunc(&m);
と書くやり方でも実現できる
コンパイラ的には m.func() に行き当たったら、
機械的に sfunc(&m)に置き換えれば良いから静的関数だけで事足りる
sfunc()の中身は、もちろんHoge0::func()の定義から、これまた機械的に生成できる
何も問題は生じない
0875デフォルトの名無しさん
2012/10/06(土) 23:58:55.84その場合、
Hoge0_func()
Hoge1_func()
と言う二つの関数が定義される
で回答になるかな?
0876デフォルトの名無しさん
2012/10/07(日) 00:00:11.60お客さん引数を忘れてますよ
0877デフォルトの名無しさん
2012/10/07(日) 00:03:45.10オット失礼
Hoge0_func(Hoge0* this)
Hoge1_func(Hoge1* this)
だな
0878デフォルトの名無しさん
2012/10/07(日) 00:13:04.64はげ使うな氏礻
0879デフォルトの名無しさん
2012/10/07(日) 00:15:12.57Hoge1::func()
そもそもこう記述できる意味を考えろよ
0880デフォルトの名無しさん
2012/10/07(日) 00:42:02.99class Hoge0 m;
void (Hoge0::* fp)() ;
fp = &Hoge0::func;
(m.(*fp))()
}
上記コードで
上のfpはメンバポインタでこれはアドレスではなくオフセット値だと本ではあった
要するに(m.(*fp))のアドレスは
(&m)+fpとなるんだろう
これはつまりmの中に関数に関するなにかの情報があるということでは
ないでしょうか?
そうするとmの中には何も情報がなく静的に解決されるという
話はおかしくなると思うんだけど。
0881デフォルトの名無しさん
2012/10/07(日) 00:42:41.75class Hoge0 m;
void (Hoge0::* fp)() ;
fp = &Hoge0::func;
(m.(*fp))()
}
上記コードで
上のfpはメンバポインタでこれはアドレスではなくオフセット値だと本ではあった
要するに(m.(*fp))のアドレスは
(&m)+fpとなるんだろう
これはつまりmの中に関数に関するなにかの情報があるということでは
ないでしょうか?
そうするとmの中には何も情報がなく静的に解決されるという
話はおかしくなると思うんだけど。
0882デフォルトの名無しさん
2012/10/07(日) 00:46:15.42どの本読んだ?
完全に間違いなので、参考までに教えてくれ
0883デフォルトの名無しさん
2012/10/07(日) 00:47:35.53再度確認するが、仮想関数ではないんだよな?
0884デフォルトの名無しさん
2012/10/07(日) 00:52:10.51間違ってはないと思うけど
あと仮想関数のことじゃないですよ
0885デフォルトの名無しさん
2012/10/07(日) 01:02:13.19thisポインタを暗黙に引数に取るただの関数だと何度(ry
クラス内関数内でthis->って出来るのは、thisが引数として渡ってきてるからだよ
0886デフォルトの名無しさん
2012/10/07(日) 01:05:54.70VC++のコンパイラだと this ポインタは ecx レジスタで渡されてくる
0887デフォルトの名無しさん
2012/10/07(日) 01:15:57.97情報ありがとう
話は元に戻るけど、間違ってるものは間違っているんだよ
君も言っているように、説明がつかないだろ?
でも、静的解決理論に何の矛盾もないんだよ?
0888デフォルトの名無しさん
2012/10/07(日) 01:29:48.83関数の情報はどこかにはあるが仮想関数でないならmの中にはない
class Hoge0{
void func(){};
};
struct memfunc_info
{
int signature_id;
void (*pointer)(void);
};
memfunc_info *memfunc_table[NUM_OF_CLASS];
int main(){
Hoge0 m;
void (Hoge0::* fp)();
fp = &Hoge0::func;
//(m.*fp)();
memfunc_info info = memfunc_table[get_classid(m)][(int)fp];
switch (info.signature_id) {
case VOID_VOID:
((void(*)(Hoge0 *))info.pointer)(&m);
}
}
0889デフォルトの名無しさん
2012/10/07(日) 01:31:35.13CFrontのソースリストが今ならタダ!
http://sourceforge.jp/projects/sfnet_cfront/
0890889
2012/10/07(日) 07:24:05.60Cfrontのソースは、正しくはこっちらしい↓
http://www.softwarepreservation.org/projects/c_plus_plus/cfront/release_1.0/src/cfront.tar.gz
(via http://www.softwarepreservation.org/projects/c_plus_plus/index.html#cfront
0891デフォルトの名無しさん
2012/10/07(日) 07:25:38.59間違ってると言われて間違ってないと思える根拠は何なの
全知全能の神ですか
0892デフォルトの名無しさん
2012/10/07(日) 10:07:39.40質問なんですが
C標準ライブラリのstdin, stdout, stderrと、C++標準ライブラリのcin, cout, cerrってどんな関係にあるの?
例えば、coutなら、それは中でstdoutを使っているの?
それとも共通のシステムコールを使っているだけで、coutとstdoutの間に平には依存関係は無いの?
coutのstreambufを自作のに差し替えて、cout << "Hello World!" << endl; と書かれたときに全部大文字に変換して標準出力に出す、
(つまり標準出力→加工→標準出力という処理)をやるとき、streambufの中でstdoutを使っていいのかどうか迷い中
0893デフォルトの名無しさん
2012/10/07(日) 10:13:52.86std::syncwithstdio()なんてメンバ関数がわざわざあるんだから内部的には
異なるバッファを持っていると考えた方が正しいと思う
それにC++のストリームは継承が効いてるからね
いろいろと内部が違うぞ
0894デフォルトの名無しさん
2012/10/07(日) 10:27:10.57std::ios::sync_with_stdio()だわ
試してもらうとわかるけどこれをfalseにすると読み書き速度は上がるが
stdxx系と一緒に使用した場合順番通りに行われる保証が無くなる
デフォルト引数はtrueなんで読み書き速度は下がるが順番通りが保証される
0895デフォルトの名無しさん
2012/10/07(日) 10:33:41.61デフォルトでtrueになってるからiostream、fstreamは遅いのだと考えられる
falseにしてstdxx系を一切使わないようにすれば結構速い
0896892
2012/10/07(日) 10:59:36.46・バッファは別
・std::ios::sync_with_stdio(true)のとき、endl毎にまずfflush(stdout)してからC++側のflush()する(多分)
という関係であるっぽい了解
つまりcoutから使う前提の自作streambuf内では、std::ios::sync_with_stdio()は無関係で
かつstdoutを使いまくって無問題、
みたいな
0897デフォルトの名無しさん
2012/10/07(日) 11:05:16.21std::coutが実際はどこに向けられているか分からないんだぞ
stdoutは常に標準出力だろ
やってみおかしくなるから
0898デフォルトの名無しさん
2012/10/07(日) 11:11:29.58?むしろcoutがどこに向かっているかは結びついているstreambufが決めるのでは
streambufの差し替えでcoutに書かれた内容をファイルに落とすことはできているわけだが
(ちなみにこのときはstreambufからfstreamに落とす形がとれたのでC++の世界だけで話が済んだ
fstreamがstdoutに置き換わるだけなんジャネーノ
0899デフォルトの名無しさん
2012/10/07(日) 11:33:08.90std::coutも標準出力だね
次のような場合がおかしくなる
int main()
{
std::ofstream fs("test.txt");
std::streambuf* osbuf = fs.rdbuf();
std::ostreambuf_iterator<char> oic(osbuf);
oic = 'a';
std::putchar('b');
}
0900デフォルトの名無しさん
2012/10/07(日) 11:33:21.20それで理解できないならC++なんか使うな
ゴミクズプログラマが糞みたいなコードを世に出すな
0901デフォルトの名無しさん
2012/10/07(日) 12:09:45.04んーまあ参考にします
cout経由とそれ以外経由の出力先相違(といっても>892はどっちも標準出力だが)は問題視しませんので
(主眼はcoutに対するマニピュレータ使用を捨てずにリダイレクトとか文字列内容の加工を実現することにある
0902デフォルトの名無しさん
2012/10/07(日) 13:22:25.03ログ出力位ならいいけど実際使えなくね?
0903デフォルトの名無しさん
2012/10/07(日) 14:15:13.140904デフォルトの名無しさん
2012/10/07(日) 14:59:26.740905デフォルトの名無しさん
2012/10/07(日) 15:12:58.09自作クラスFooに対して
std::ostream& operator<<(std::ostream& stream, const Foo& obj)
を定義するだけで、どんなクラスも統一的にダンプできてマニピュレータも効く
(上記関数内で複数要素をstream <<するとき、setw()系マニピュレータの効きを正しくするには一工夫要るが
さらにその際ストリームに出力するフォーマットをうまく考えておけばシリアライザも兼用できる
つまり
std::istream& operator>>(std::istream& stream, Foo& obj)
を定義してデシリアライズすると良い
0906デフォルトの名無しさん
2012/10/07(日) 16:04:41.52ひとつの Nasubi へのポインタを Retasu と Qri が共有して持ってる場合、
>>905 のような方法でちゃんとシリアライズ、デシリアライズできるの?
ダンプはできるだろうけど
0908デフォルトの名無しさん
2012/10/07(日) 16:16:49.36xをintに変換したものが呼び出されているようです。
この初期化の仕方を禁止する(明示的なものだけ残す)か、正しい定義をするか・・・
C++11でも可能です。よろしくお願いします。
#include <iostream>
struct A {
int n;
A(int i): n(i+1) {
std::cout << "value init" << std::endl;
}
explicit A(const A& rhs): n(rhs.n) {
std::cout << "copy init" << std::endl;
}
operator int() const { return n; }
};
int main()
{
A x(0);
A y=x;
A z(x);
std::cout << x.n << std::endl;
std::cout << y.n << std::endl;
std::cout << z.n << std::endl;
}
0909デフォルトの名無しさん
2012/10/07(日) 16:20:12.370910デフォルトの名無しさん
2012/10/07(日) 16:25:20.39いや、それは必要なんです・・・
それを生かしておく方法はありませんか?
0911デフォルトの名無しさん
2012/10/07(日) 16:29:49.880912デフォルトの名無しさん
2012/10/07(日) 16:34:22.29A& operator=(const A& rhs) {
std::cout << "operator= called" << std::endl;
n = rhs.n;
return *this;
}
0913デフォルトの名無しさん
2012/10/07(日) 16:52:22.730914デフォルトの名無しさん
2012/10/07(日) 16:55:48.96ちょっと意図が分からないので説明してもらえませんか?
近いところまでは行ってると思うんだけど・・・
#include <iostream>
struct A {
int n;
explicit A(int i): n(i+1) {
std::cout << "value init" << std::endl;
}
explicit A(const A& rhs): n(rhs.n) {
std::cout << "const copy init" << std::endl;
}
explicit A(A& rhs): n(rhs.n) {
std::cout << "copy init" << std::endl;
}
operator int() const { return n; }
};
int main()
{
A x(0);
A y=x;
A z(x);
std::cout << x.n << std::endl;
std::cout << y.n << std::endl;
std::cout << z.n << std::endl;
}
0915デフォルトの名無しさん
2012/10/07(日) 17:00:06.06問題ないように見える
0916デフォルトの名無しさん
2012/10/07(日) 17:05:54.98A(const A&)が呼ばれなくなりましたね。
explicitをつけると失敗するというのは気持ち悪い・・・何が起こっているのか?
0917デフォルトの名無しさん
2012/10/07(日) 17:07:35.23const A x(0);
で破綻する・・・。
0918デフォルトの名無しさん
2012/10/07(日) 17:14:47.32のままだとconst A x(0);もOKなんですね。
わけが分からなくなってきた。
0919デフォルトの名無しさん
2012/10/07(日) 19:47:06.94http://ideone.com/WHanG
0920デフォルトの名無しさん
2012/10/07(日) 22:56:48.57{
#define USE_SPACE_VIDEOS Extender::Multimedia::Videos
struct FirstOuterDependent
{
int Something( USE_SPACE_VIDEOS::Fillter &filter );
};
struct SecondOuterDependent
{
int Something( USE_SPACE_VIDEOS::Fillter &filter );
};
#undef USE_SPACE_VIDEOS
}
namespace Videos = Extender::Multimedia::Videos;で定義したVideos消せないから
結局プリプロセッサ使うしか無い。エイリアス系の名前ってどうにか消せないのか?
0921デフォルトの名無しさん
2012/10/07(日) 23:02:35.910922デフォルトの名無しさん
2012/10/07(日) 23:06:28.010923デフォルトの名無しさん
2012/10/07(日) 23:08:30.21#undefのような事ができないって事。
0924デフォルトの名無しさん
2012/10/08(月) 00:03:17.61スコープ出れば消えたも同じだしエイリアス使う以外のやり方もあるでしょ
ttp://codepad.org/KwxPx2fQ
0925デフォルトの名無しさん
2012/10/08(月) 00:22:17.891つの名前空間を複数に別けるってのはちょっとねぇ。
0926デフォルトの名無しさん
2012/10/08(月) 00:31:10.38{
namespace Videos = Extender::Multimedia::Videos;
public:
int Something( Video::Fillter &filter );
};
こうできりゃ最高なんだけどねぇ。
0927デフォルトの名無しさん
2012/10/08(月) 00:33:41.200928デフォルトの名無しさん
2012/10/08(月) 01:44:12.76> 1つの名前空間を複数に別けるってのはちょっとねぇ。
そんな個人の感覚を優先してマクロ使うほうがいいなんてC++使うのは向いてなさそうだな
ttp://codepad.org/BZYexHQN
0929デフォルトの名無しさん
2012/10/08(月) 10:32:53.76ナショナリズムは小児病
リベラルは厨二病
社会に出れば人間誰しもコンサバティブ(真の保守)な考え方を持つに至るものだ
もっともそれはその者が人間であるに足る知能を持つ場合に限られるのではあるが
0930デフォルトの名無しさん
2012/10/08(月) 15:45:07.86大規模開発してるとマクロでもいいから既存のシンボル名を消したいってのが解るようになるよ。
マルチメディア向け仮想層を構築すると、依存するライブラリに同じような名前がかなり登場する。
.cppに関してはどうでもいいけど、.hだと安易な名前空間の省略ができない。なんとか、
名前空間の汚染を少なくしようとすると汚い方法しか思いつかない。
読みづらくなるから嫌だけどusing namespaceもありっちゃありかなぁ。
こいつなら上書き可能だし。
0931デフォルトの名無しさん
2012/10/08(月) 15:56:40.760932デフォルトの名無しさん
2012/10/08(月) 16:02:06.840933デフォルトの名無しさん
2012/10/08(月) 16:04:47.74こんかいの場合でdefineが問題になる点は何?
まさかgotoは絶対悪。gotoを書かなければ似たような事をしていいとかそんな思考?
0934デフォルトの名無しさん
2012/10/08(月) 16:08:53.86・無名名前空間はヘッダーで書いても意味がない
・N1とN2をNにまとめてるが、N1とN2が干渉したら完全名じゃないとアクセスできない
・NN内でNと同じ名前を定義したい場合衝突する
0935デフォルトの名無しさん
2012/10/08(月) 16:16:45.59なんてしなきゃいいだけだろ。
本当に大規模開発してるのか?
大規模開発で安易な名前の省略とかしてたら、マジで死ねるぞ。
0936デフォルトの名無しさん
2012/10/08(月) 16:25:44.71楽に出来ることは楽にできたほうがいいだろうに。
あと、これはどういうケース?
>マジで死ねるぞ。
defineとundefで狭い範囲だけ有効な名前つける場合問題になったことはないけど。
ただ個人的にはキモいんで完全に同等機能をもった代替案がほしい。
0937デフォルトの名無しさん
2012/10/08(月) 16:40:57.58> 楽に出来ることは楽にできたほうがいいだろうに。
小規模なら小手先テクニックでいいかもしれないが、大規模 (=多人数) だとみんなが
ちゃんと理解できる方法でやらないとダメだろ。
> defineとundefで狭い範囲だけ有効な名前つける場合問題になったことはないけど。
たとえば関連する修正箇所探すだけでも、小手先でそんな変なことしてるとえらく面倒
になるぞ。
まあ、最近のツールは結構賢いからあまり気にすることはないのかもしれないが。
0938デフォルトの名無しさん
2012/10/08(月) 16:51:57.98つかうっていってもヘッダーの限られた範囲だけで、ヘッダーまたいだりすることは無いからねぇ。
まぁ、オムニ補完に頼りっきりの開発者だと辛いだろうね。
で、いい代替案は無いかねぇ。
0939デフォルトの名無しさん
2012/10/08(月) 16:57:23.540940デフォルトの名無しさん
2012/10/08(月) 17:06:00.980941デフォルトの名無しさん
2012/10/08(月) 17:16:29.630942デフォルトの名無しさん
2012/10/08(月) 17:20:29.07名前の衝突を防ぐための要求。undefが存在するのと同じ理由だよ。
0943デフォルトの名無しさん
2012/10/08(月) 17:21:14.72お利行さんはどうすんの?
0944939
2012/10/08(月) 17:30:08.15>>940 でいちおー納得したつもりでいたけど
やっぱビンゴだったの??
0945デフォルトの名無しさん
2012/10/08(月) 18:40:12.51何が?実体じゃなくエイリアスを前提に言ってることは変わらないけど?
0946デフォルトの名無しさん
2012/10/08(月) 19:05:18.72>>920のケースなら
> 1つの同じ名前空間内で、別々の名前空間に対し、同じ名前を付けたいんだ。
> 1つの名前空間を複数に別けるってのはちょっとねぇ。
に対して
> そんな個人の感覚を優先してマクロ使うほうがいいなんてC++使うのは向いてなさそうだな
のとおりでC++的でない設計を要求するような感覚は無視して素直に
namespace Extender { namespace Multimedia { namespace Videos {
struct FirstOuterDependent
{
int Something( Fillter &filter );
};
struct SecondOuterDependent
{
int Something( Fillter &filter );
};
}}}
namespace Example {
using Extender::Multimedia::Videos::FirstOuterDependent;
using Extender::Multimedia::Videos::SecondOuterDependent;
}
0947デフォルトの名無しさん
2012/10/08(月) 19:40:08.83外部ライブラリに似たような名前のクラスや関数できたらどうすんの?
0948デフォルトの名無しさん
2012/10/08(月) 19:48:46.72これが取り憑かれたって事か
0949デフォルトの名無しさん
2012/10/08(月) 19:50:32.07そもそもマクロは何がダメなのか分かってるのか?
0950デフォルトの名無しさん
2012/10/08(月) 19:51:40.18タイプ減らす以外にマクロならではってのあんの?
0951デフォルトの名無しさん
2012/10/08(月) 19:53:54.810952デフォルトの名無しさん
2012/10/08(月) 19:55:06.09割り込まれるようになってるのが名前空間で
それがいやならクラスを使うべき
>>950
__cplusplus や assert も否定されますか?
0953デフォルトの名無しさん
2012/10/08(月) 19:57:24.35マクロに限らず演算子や型定義、関数定義を覗いたら言語機能の殆どがタイプ量減らすための構文だろ。
タイプ量気にしないならC使ってりゃいい。
0954デフォルトの名無しさん
2012/10/08(月) 19:57:41.32俺も困ったことは全くないが、一応
処理速度を落とさずにコピペを防ぐというメリットがあることは知ってる。
あと、ライブラリなんか作ってると、一つのソースで、
マクロで VC++用、GCC用(いわば Win用、Linux用)と分けることはよくある。
デバッグ用、リリース用をマクロで分けることもよくある。
0955デフォルトの名無しさん
2012/10/08(月) 19:59:17.00できると、していいじゃ違うでしょ。
そもそも理想論は置いといて実質の話だし。
0956デフォルトの名無しさん
2012/10/08(月) 20:00:55.72そもそも当初の目的を見失ってるだろ
0957デフォルトの名無しさん
2012/10/08(月) 20:05:35.53VectorとかListとかありきたりな名前つけたらすぐ衝突するじゃねぇか。
0958デフォルトの名無しさん
2012/10/08(月) 20:06:34.930959デフォルトの名無しさん
2012/10/08(月) 20:09:28.88vlcやmplayerの様にアーキティクチャー依存部は、win32とかlinuxとか
ソース単位でディレクトリーに切り分けりゃいいものを、混在ソースを書きたがる奴は
何がしたいんだろうね。
0960デフォルトの名無しさん
2012/10/08(月) 20:11:17.84それも目的を見失った欠点だらけの方法以外で。
0961デフォルトの名無しさん
2012/10/08(月) 20:31:46.57なんでたったこれだけのことがわからないかね
0962デフォルトの名無しさん
2012/10/08(月) 20:42:02.28別々のまま扱えば問題がなかったところにわざわざ問題を発生させる方法こそが目的を見失った欠点だらけの方法じゃないか
0963デフォルトの名無しさん
2012/10/08(月) 20:48:49.92ローカル変数と同じ話で一時的に省略名が欲しいだけ。
undefで実現できるようなことなんだから大した話じゃないでしょ。
あと、いちいち個別に名前つけたって結局ぶつかるんだから意味無いでしょ。
いずれにせよ一時的につけた名前は不要になったら消さないと衝突を起こす。
尤も、ヘッダーに書くなら完全名を常につけるって手もあるが、冗長な上に読みづらすぎる。
0964デフォルトの名無しさん
2012/10/08(月) 20:49:44.270965デフォルトの名無しさん
2012/10/08(月) 20:50:34.76もうマクロでいいだろって気になる
0966デフォルトの名無しさん
2012/10/08(月) 21:10:50.43>>962
そもそも、大規模開発した事なくて困った経験無いだろ。
複数の外部ライブラリを使い、複数の兄弟関係のヘッダーファイルが現れる状態だと
兄弟関係のヘッダーで名前がぶつかるってのは遅かれ早かれ必ずぶち当たる問題だぞ。
0967デフォルトの名無しさん
2012/10/08(月) 21:15:09.74エイリアスを使った上で衝突を回避したいのが目的。
エイリアスを使わないんなら、問題回避の目的すら存在してないんで、
そもそも目的からずれてる。というか目的から逃げてる。
0968デフォルトの名無しさん
2012/10/08(月) 21:28:45.230969デフォルトの名無しさん
2012/10/08(月) 21:29:21.24現在のプロジェクトで 600Ks × 4 システム程度の開発してるけど、
そんなことで困ったことはない。
>>967
そもそも楽するためか何か知らないけど、エイリアス使うと問題が
発生するんだから、使わないと言う選択しろよと思う。
0970デフォルトの名無しさん
2012/10/08(月) 21:37:53.210971デフォルトの名無しさん
2012/10/08(月) 21:47:36.27少なくともundefを使った場合見た目が悪いだけで問題は起きてない。
代替手段があるなら変えたいけど、現状で問題はない。
問題がないなら楽してもいいでしょ。
もし問題があるというならどういう問題がある?
マクロ使ってることが問題だなんて話はいいから、名前空間を汚染するとか
実際に困る具体的な問題点を指摘して。
0972デフォルトの名無しさん
2012/10/08(月) 21:51:53.34あなたのプロジェクトじゃどういうふうに名前管理してらっしゃるんですか?
0973デフォルトの名無しさん
2012/10/08(月) 22:28:38.03問題ないと思ってるなら、そのまま使ってりゃいいじゃん。
自分から >>920 書いといて、
> もし問題があるというならどういう問題がある?
って、頭沸いてるとかしか思えない。
>>972
普通に、モジュールごとに名前空間分けて管理しているだけですよ。
0974デフォルトの名無しさん
2012/10/08(月) 22:35:44.81>自分から >>920 書いといて、
>> もし問題があるというならどういう問題がある?
>って、頭沸いてるとかしか思えない。
文脈がつながってなくて意味がわからない
0975デフォルトの名無しさん
2012/10/08(月) 22:36:22.260976デフォルトの名無しさん
2012/10/08(月) 22:38:10.970977デフォルトの名無しさん
2012/10/08(月) 22:41:20.67名前空間を作る場合の話じゃなくて参照する場合の話なんですが・・・
A::B::E X(A::B::C::D n, N::L::O k); こういう書き方してるとか
0978デフォルトの名無しさん
2012/10/08(月) 22:42:36.94こちらへ
Win32API質問箱 Build112
http://toro.2ch.net/test/read.cgi/tech/1349330864/
0979デフォルトの名無しさん
2012/10/08(月) 22:49:22.06>エイリアス系の名前ってどうにか消せないのか?
なんだから、「C++じゃ無理じゃね」
で解決なんでないの…
0980デフォルトの名無しさん
2012/10/08(月) 22:52:19.91なんとなく>>973の意図を読み取って答えると、
問題ないって言ったのは一時的なエイリアスを使った事に対して。
当初の問題になってるのは、マクロを代替する手段がないかという話で問題点が違う。
0981デフォルトの名無しさん
2012/10/08(月) 22:53:48.92×当初の問題になってるのは、マクロを代替する手段がないかという話で問題点が違う。
○当初の問題になってるのは、エイリアスを削除するのにマクロを代替する手段がないかという話で問題点が違う。
0982デフォルトの名無しさん
2012/10/08(月) 22:58:56.57了解。
0983デフォルトの名無しさん
2012/10/08(月) 23:01:33.510984デフォルトの名無しさん
2012/10/08(月) 23:05:58.58ごめん、俺には君に (君のバカさを) 説明する能力がないみたいだ。
まあ、一行目だけ理解してくれればいいよ。
>>977
> A::B::E X(A::B::C::D n, N::L::O k); こういう書き方してるとか
他のモジュールを参照する場合は基本その形。
共有ライブラリと自モジュールは適宜省略するけど。
0985デフォルトの名無しさん
2012/10/08(月) 23:12:32.960986デフォルトの名無しさん
2012/10/08(月) 23:18:05.70>まあ、一行目だけ理解してくれればいいよ。
その一行目で言ってる問題ないことと問題点が違うんだよ。
0987デフォルトの名無しさん
2012/10/08(月) 23:27:44.32それ以外になんか問題あるのか?
0988デフォルトの名無しさん
2012/10/08(月) 23:30:33.87ないよ。
あるとすれば、>>984がズレた話題振った挙句、有用な答えもなしにバカ呼ばわりして逃げていったことぐらい。
0989デフォルトの名無しさん
2012/10/08(月) 23:38:05.83>>920 のこと?
いじめたら、かわいそうだよ (w
0990デフォルトの名無しさん
2012/10/09(火) 06:26:20.370991デフォルトの名無しさん
2012/10/09(火) 09:03:17.980992デフォルトの名無しさん
2012/10/09(火) 11:01:12.23バグが発見しにくいのですけど
なんで0になっているんですか?
どうしたらランダムっぽくなるんでしょうか?
0993デフォルトの名無しさん
2012/10/09(火) 11:06:03.43そもそもそんなデバッグに頼るのが間違い。
どうしてもランダムにしたいなら、そういう処理つきのnewを作ってそれを使え。
0994デフォルトの名無しさん
2012/10/09(火) 11:10:25.320995デフォルトの名無しさん
2012/10/09(火) 11:38:30.39仕様だから仕方ない
0996デフォルトの名無しさん
2012/10/09(火) 11:42:36.750のものを0で初期化することは
なんか無駄なことしてるようにしかおもえないんですが・・・
0997デフォルトの名無しさん
2012/10/09(火) 11:47:29.07確保した中身がどうなってるかは知らんがな
0998デフォルトの名無しさん
2012/10/09(火) 12:34:51.000999デフォルトの名無しさん
2012/10/09(火) 12:35:53.23ゼロになっているか、それとも適当な数値が入ってるかで調べてるのに、
勝手にゼロが入ってて俺のデバッグ法が使えないじゃん、どうしてよ。
という質問?
1000デフォルトの名無しさん
2012/10/09(火) 12:37:52.1110011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。