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


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

C++上級者が集まるスレ



1 名前:デフォルトの名無しさん [04/09/14 07:16:41]
ここでは他のC++スレよりもより一層と高いレベルでの情報交換・体験談などを行うスレです。
我こそはC++プロフェッショナルだという方の書き込みをお待ちしております。


684 名前:・∀・)っ-○◎● mailto:sage [2007/03/27(火) 05:05:29 ]
ダウンキャストっていうのかそれ
VC++の最近の実装(っていうかただのtypedef)ではBOOL=charだったような

685 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 05:06:51 ]
>>683
今VC++でsizeof(bool)の値を見たら1だった。

俺はbool型変数はクラスメンバぐらいでしか使わないから、
たとえ1ビットだとしてもアラインメントの影響で恩恵にあずかれないな。

686 名前:・∀・)っ-○◎● mailto:sage [2007/03/27(火) 05:18:54 ]
vector<bool>とか使うと恩恵があるかも

687 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 06:31:31 ]
boolをvectorなんかに入れて一体何に使えというんだ

688 名前:・∀・)っ-○◎● mailto:sage [2007/03/27(火) 06:34:33 ]
何だ知らないのか

www.scl.kyoto-u.ac.jp/scl/appli/appli_manual/SUNWspro/WS6U2/ja/manuals/stdlib/user_guide/general/5_3.htm

689 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 06:50:59 ]
>>688
そういえばそんなもんもあったな。

690 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 07:13:24 ]
>684のすべてが意味不明

691 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 22:04:00 ]
>>683
速度・効率だけでなく、ビット単位ではポインタとしてメモリアドレスが使えない。

ワードマシンでのchar*みたいにコンパイラが頑張る手もあるが、
bool*だけでなく必然的にvoid*もbool*に合わせなければならず、
void*とbool*だけ他のポインタと異なる大きさになってしまう。
無論規格上は問題ないが、実際問題void*の大きさがほかと異なるなんてやっていられないだろ。

692 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 23:05:56 ]
関数へのポインタとデータへのポインタの大きさが違うなんて
昔は当たり前だったから、なんてことない。



693 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 23:14:25 ]
>691
boolを1bitにするなら、sizeof(bool)をどうする気?

694 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 23:18:46 ]
>>693
1/8

usodakara

695 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 23:21:03 ]
>>693
それ忘れていたorz

>>684
Windows APIでは、typedef int BOOL; typedef char BOOLEAN;
しかしboolとは関係ない。

696 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 23:33:40 ]
> typedef int BOOL; typedef char BOOLEAN;

わけわからん >>MS

ATL::CComPtr::operator&()もわけわからんかった。
凶悪。

697 名前:・∀・)っ-○◎● mailto:sage [2007/03/28(水) 01:08:39 ]
>>695
そこは固定じゃない。
なんのtypedefかはSDKのバージョンによってもしょっちゅう変わる。

まあ固定長ビット配列ならstd::bitsetなんかが一番効率いいかな。
1ワードの中に複数要素が詰め込めると何かと便利。

698 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 01:20:35 ]
msdn2.microsoft.com/en-us/library/aa383751.aspx
実際にヘッダでどうなっているかはともかく、文書化されていることは当てにしていいと思う。

ところでBOOLEANはBYTEだったね、すまん。

699 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 02:12:43 ]
>>691
void* と char* は同じ内部表現である必要がある。 (ISO C++ 3.9.2.4)
そのほかメモリモデルやオブジェクトモデルの定義からも char より
小さい型は存在し得ないと言える。

700 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 02:12:52 ]
BOOL
Boolean variable (should be TRUE or FALSE).

shouldって便利な言葉だな

701 名前:・∀・)っ-○◎● mailto:sage [2007/03/28(水) 02:30:37 ]
>>698
msdn2〜はVS2005のドキュメント

702 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 02:38:09 ]
>>701
団子ちゃん、流れとは全然関係ない質問があるんじゃが、
団子ちゃんがC++上級者だと家庭して、団子ちゃんは Boost を
1. あー、ごっつい靴だろ?
2. たまに使う。
3. よく使う。
4. もうあなたなしじゃ生きられないの!
5. あー、アレのほげほげは俺がコントリビュートしてんだよ。
の、どれ?



703 名前:702 mailto:sage [2007/03/28(水) 02:39:35 ]
ちなみに俺は、1 だが、それでも自分を C++ 上級者だと思ってる。

704 名前:・∀・)っ-○◎● mailto:sage [2007/03/28(水) 02:44:25 ]
2かな
ふだんはATL/WTL+STLあと.NET

regexとrandom::mt19937rは便利だね
あとsandboxにあがってたfixed_arrayが便利だから改造して使ってる

705 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 03:06:41 ]
.NEET 使ってんだ。

706 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 07:26:32 ]
>697
おいおい。BOOLの実体がint以外だったことがあるってーの?
WIN16の頃の話じゃねーだろーな。

707 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 09:17:07 ]
>>701
msdn.microsoft.comの時代から698の文書は存在した。
今は英語版のMSDNライブラリオンラインはあちこちmsdn2への転送になっている。

708 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 15:45:05 ]
bool型はC++仕様書ではintと同じバイト数。
でも大手の実装するコンパイラは大抵1バイトしか割り当てないのが普通。
さて、酒飲んで寝るか。もう目が覚めませんように。

709 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 16:11:38 ]
>>708
そんな規定はどこにも無い。

710 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 16:50:25 ]
>>708
嘘吐きはそのまま永眠してなさい。

711 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 18:29:02 ]
1に書いてある内容とまるで裏腹なスレの内容
なんて皮肉だ

712 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 23:37:58 ]
> 我こそはC++プロフェッショナルだという方の書き込みをお待ちしております。

こんなこと書くから、自分でプロだと「思い込んでる奴」ばっかりになるんだよ。



713 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 23:42:49 ]
>>711-712
ここはネタスレなのにお前らときたら…

714 名前:デフォルトの名無しさん mailto:sage [2007/03/29(木) 16:37:54 ]
>>711-712のような人たちのためのホイホイスレでもあるからいいじゃないか。

715 名前:デフォルトの名無しさん mailto:sage [2007/03/29(木) 18:52:05 ]
>>711-712は本気で自分がC++上級者だと思って
このスレに降臨なされたのですか

716 名前:デフォルトの名無しさん mailto:sage [2007/03/30(金) 11:42:32 ]
スレタイに騙されて覗いてみたら期待してたのと違ったんで
怒りに任せて書き込んでみたんでしょう。

スレ勃てから2年半もたってノコノコやってきて今更な事を書く人ってのは
そういうもんです。

717 名前:デフォルトの名無しさん mailto:sage [2007/03/30(金) 14:17:33 ]
>>714-716
ここはネタスレなのにお前らときたら…

718 名前:デフォルトの名無しさん mailto:sage [2007/03/30(金) 14:26:29 ]
もうちょっとためてから反復しないとネタとして面白くないです。

719 名前:デフォルトの名無しさん mailto:sage [2007/03/30(金) 21:56:50 ]
団子ちゃん以外の人は >>702 で言うと何番?

720 名前:デフォルトの名無しさん mailto:sage [2007/03/30(金) 22:02:40 ]
特定の部分なら3だが全般的には2だな

721 名前:・∀・)っ-○◎● mailto:sage [2007/03/31(土) 00:22:23 ]
全部使ってる奴がいたらそれはそれで気持ち悪いぞ

MPLとかSpiritとか、いいかげんにしる

722 名前:デフォルトの名無しさん mailto:sage [2007/03/31(土) 06:16:03 ]
俺4。上級者じゃないけど。MPLとかは流石に可読性的に使えないがな。



723 名前:デフォルトの名無しさん mailto:sage [2007/03/31(土) 17:01:03 ]
MPLとPreprocessorとSpiritとPhoenixとXpressiveと
LambdaとuBLASとgraphとfilesystemを全部使うアプリを
testでテストするやつこそが4だな。

724 名前:デフォルトの名無しさん mailto:sage [2007/03/31(土) 22:33:03 ]
どういう処理をしようとして全部必要になるんだろうか……

725 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 13:19:51 ]
環境非依存で、ミリ秒単位でsleepさせる方法はありませんか?

726 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 14:16:24 ]
>>726
ない。

特定のCPU等に依存していいならなんらかの方法があるだろうが、
どのみちほとんどマシン語のコードになる。

727 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 14:49:56 ]
>>727
ですよね。

728 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 19:01:43 ]
>>727
大丈夫か

729 名前:デフォルトの名無しさん [2007/04/04(水) 20:00:16 ]
>>729
注:私の有意義な発言に対し自分の理解不足を棚に上げ煽り、1行レス
で返す方が多いようですが、そのような方はスレの皆様を混乱させるだけでなく
スレの雰囲気を崩しかねないのでお黙り下さい
また質問者は回答者に知識を披露する場を与える貴重な存在なので、
質問者を見下した回答、あまりにも儀礼を欠いた回答も厳重に禁止いたします。
忙しい中、少ない時間の合間を縫って質問しに来てるわけですので、
その辺ご承知下さい。なお、当方が質問に対して有意義な答えであると
判断した方には評価いたしますので各自よく調べ、よく考え正確な回答をするように。

730 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 23:31:15 ]
まずい餌だな。3点

731 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 08:44:22 ]
>>731
死ねよクズが

732 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 16:54:40 ]
>>733
死ねカス



733 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 16:55:12 ]
>>732
お前が死ねカス

734 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 17:02:47 ]
729 名前:あぼ〜ん[あぼ〜ん] 投稿日:あぼ〜ん

735 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 18:59:56 ]
>>731-733
ありきたりのパターン。2点

736 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 22:37:50 ]
かといってこんなことに新鮮味を追求されるのもアレだな

737 名前:デフォルトの名無しさん [2007/04/10(火) 18:46:19 ]
絶対値を求める関数が他の言語では一つしかないのにCではabsとfabsの二つが存在する理由を教えてください。

738 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 19:16:00 ]
その質問をこのスレでする理由を教えてください。

739 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 22:43:33 ]
>>737
> 絶対値を求める関数が他の言語では一つしかない

Fortran なんか4個もあるぞ。(w

iabs(整数) => 整数
abs(実数) => 実数
dabs(倍精度) => 倍精度,
cabs(複素数) => 実数

740 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 22:56:30 ]
CだってC89の時点でabs(int), labs(long), fabs(double)と3個。
後(C95か?)にfabsf(float), fabsl(long double)が加わり5個。
C99ではllabs(long long), imaxabs(intmax_t),
cabs(double complex), cabsf(float complex), cabsl(long double complex)と10個。

勿論C++では、(C++にある型なら)absで多重定義がなされている。

741 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 00:27:51 ]
ここまでの話を総合すると、rubyが一番スマートだな。

742 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 21:36:45 ]
>>741
というと ruby は絶対値をマイナス値で返す nabs 一個のみとかそんな感じ?



743 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 23:27:22 ]
オーバーロードしてるから見た目上一個やん

744 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 04:39:04 ]
>>743
マイナスの最大値でオーバーフローするものしかないってこと?

# 戻り値が unsigned なら大丈夫だけど。

745 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 11:07:54 ]
>>737
実行速度を上げるため

746 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 22:35:50 ]
>>744-745
釣りですか、ご苦労様です。

747 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 22:59:30 ]
直観が「突っ込み所だ」と告げたはいいが、スレタイがスレタイだけに
具体的に突っ込んでボロ出す羽目になったらどうしようってのがちょっぴり不安で、
結果こんな感じに落ち着きました、という感じのレスだな。

748 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 23:38:12 ]
>>747
>>747

749 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 02:31:47 ]
たとえば負数が1の補数な処理系では、
INT_MINを放り込んでも、オーバーフローしないよ。

750 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 04:29:20 ]
そうだね。帰っていいよ。

751 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 09:06:05 ]
馬鹿じゃないの?

752 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 09:08:20 ]
泣くなよ



753 名前:デフォルトの名無しさん mailto:sage [2007/04/22(日) 08:47:09 ]
>>688
1998年w

754 名前:デフォルトの名無しさん [2007/05/18(金) 18:12:10 ]
float x=10.0;

exp(x)
とすると、expはfloat型に対応した関数が呼び出されますが、
exp(10.0)
とした場合、double型に対応した関数が呼び出されると考えてよいのでしょうか?

755 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 20:30:24 ]
ワラタ

756 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 21:39:41 ]
>>754
そうだよ
ちなみにexp(10.0f)とすればfloat版を選べる

757 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 02:39:50 ]
まさかとは思ったが

ここも隔離スレだったか


758 名前:デフォルトの名無しさん mailto:sage [2007/05/21(月) 02:45:16 ]
>>757
全然そんなことないから、ここから出て行かないでね♪

759 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 03:24:06 ]
>>21
いまさらながら
const string 上級者="俺";
のが上級者っぽいな。

760 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 15:07:07 ]
class 上級者;
typedef 俺 上級者;

761 名前:デフォルトの名無しさん mailto:sage [2007/07/01(日) 16:31:11 ]
>>760
#define 上級者 ナルシスト
をお忘れですよ。

762 名前:デフォルトの名無しさん [2007/07/05(木) 17:48:21 ]
大抵のコンパイラでC99はスイッチをつけないとコンパイルできないのは何故?




763 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 18:45:42 ]
C++のコンパイラ?
C99がC++に取り込まれるのはC++0x(たぶん09)からだよ。

764 名前:デフォルトの名無しさん [2007/07/05(木) 20:03:32 ]
C++かアセンブリ言語どっちが難しいですか?

765 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 20:43:18 ]
C++

766 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 21:05:20 ]
アセンブリは面倒なだけで難しいのとはまた違う
技術書を読む大変さはあるけどなー

767 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 21:10:24 ]
マクロアセンブラならまあいける

本当にただのニーモニック→機械語変換だとアドレスの管理を全部自分でやらないといけないから死ねる

768 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 00:21:56 ]
それアセンブラって言わないと思うが...

769 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 00:56:53 ]
DEBUG.EXEだな
あれのアセンブラ機能は貧弱だったな
それでもcom形式ぐらいならなんとか書けちゃったりするが

770 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 12:02:34 ]
FEDCBA98

771 名前:デフォルトの名無しさん [2007/07/11(水) 12:32:08 ]
何の16進かと思ってググったらゲーム改造かよ。
何にしろバイナリ書き換えは趣味の域でなきゃやりたくないな。

772 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 20:44:27 ]
C++上級者(笑)



773 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 20:52:46 ]
三(笑)

                ( *´ω`)ムシャムシャ
                つi'"':
                 `、:_i'
| ┌┐
│ ││             ││   若干食べられてしまったが
| ││             ││   >>772はC++より安く見えることがわかる
| ││             ││
└────────────
 C++上級者(笑)      >>772

774 名前:デフォルトの名無しさん [2007/09/24(月) 07:47:59 ]
defineの代わりにconstを使うよう推奨されているのに、コンパイラのソースを見ると
大量にdefineが使われているのはなぜ???

775 名前:デフォルトの名無しさん mailto:sage [2007/09/24(月) 09:54:14 ]
もともとCで書かれていたか、
実はCとしてコンパイルするようになっているか、
書いた人間がconst推奨を知らなかったか。

776 名前:デフォルトの名無しさん mailto:sage [2007/09/24(月) 12:36:23 ]
Cと共用なんだろ。
何を悩む必要がある

777 名前:デフォルトの名無しさん mailto:sage [2007/09/24(月) 19:44:30 ]
>>774
錯覚が目

778 名前:デフォルトの名無しさん mailto:sage [2007/09/28(金) 00:10:08 ]
>>774
システムのベンダとユーザは事情も、従うべきルールも違う。
システムヘッダの真似してアンダースコアで始まる名前を使うような人大杉。

引数に渡す定数を参照させるだけのために、
オブジェクトのリンクを強要するDLLなんかありえないし、
他の言語とリンクさせるときや、バイナリ互換性が問題なら、
定数の具体的な値をはっきり公開するしかない。

それに、Cでは配列サイズにconst整数を使えない。


779 名前:デフォルトの名無しさん mailto:sage [2007/09/28(金) 01:31:32 ]
constって言ったって、ヘッダで初期化子付きの定義を与えるんだから、
DLLなんて関係ないけど、ほかは合っているや。

780 名前:デフォルトの名無しさん mailto:sage [2007/09/28(金) 03:04:35 ]
>>constって言ったって、ヘッダで初期化子付きの定義を与えるんだから、
プレーンCモードでコンパイルされたときに実体が増殖し放題で
リンクエラーになるからDLLベンダがそれをやったら配慮不足だ。
よく分かってないハード屋寄りのユーザとかが目を回すからな。

このスレ的にはC++コンパイラだとそれができるっていうのは大事だけどな。


781 名前:デフォルトの名無しさん mailto:sage [2007/09/28(金) 10:10:17 ]


782 名前:デフォルトの名無しさん mailto:sage [2007/10/11(木) 01:31:51 ]
const だと余計にメモリ消費するからヤなんじゃないの?



783 名前:デフォルトの名無しさん mailto:sage [2007/10/12(金) 23:21:57 ]
staticにすらば、アドレス参照とかしなければ実体は取り除かれるんじゃないの?
コンパイラの能力にによるだろうけど

784 名前:デフォルトの名無しさん mailto:sage [2007/10/13(土) 01:50:27 ]
>>783
C++ では const つけた名前空間スコープのオブジェクトはデフォルトで
内部リンケージになる。 static は要らない。






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

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

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