【初心者歓迎】C/C++室 Ver.88【環境依存OK】

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
エスケープシーケンスやWin32APIなどの環境依存なものでもOK。
ただしその場合、質問者は必ず環境を書きましょう。
※sage禁止です(と代々スレに書いてありますが自己判断で)。

【前スレ】
【初心者歓迎】C/C++室 Ver.87【環境依存OK】
http://toro.2ch.net/test/read.cgi/tech/1382185936/
◆ソースのインデントについて
半角空白やTABでのインデントはスレに貼ると無くなります。
そのため、アップローダーに上げるのも手ですが直接貼る場合は、
全角空白か に置換すると見栄えだけはよくなります。

【アップローダー】(質問が長い時はココ使うと便利)
http://codepad.org/ (コンパイルもできるし出力結果も得られる[]privateをチェック)
http://ideone.com/ (時間帯によってはcodepadが重い事があるのでここも利用)

【重要】
hogeは禁止します、使用しないでください。
万が一hogeが書き込まれても、スルーしてください。
相手にするとあなたも荒らしと同じ扱いになります。
なお、hogeはNGワードに追加しておくことが強く推奨されています。
2デフォルトの名無しさん:2013/11/10(日) 14:37:50.32
>>1
3デフォルトの名無しさん:2013/11/10(日) 14:43:16.36
>>1
4デフォルトの名無しさん:2013/11/10(日) 14:49:32.45
もう88スレ目か
5デフォルトの名無しさん:2013/11/10(日) 19:59:42.71
hoge
6デフォルトの名無しさん:2013/11/10(日) 20:22:38.46
hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge hoge
7デフォルトの名無しさん:2013/11/10(日) 20:25:08.59
hage hage hage hage hage hage hage hage hage hage hage hage hage
hage hage hage hage hage hage hage hage hage hage hage hage hage
ここはhageOKスレ
8デフォルトの名無しさん:2013/11/10(日) 20:26:49.27
C++ってCを混在させて書けるからついつい混在させてしまうんだけど
混在させないほうがいいのかね?
9デフォルトの名無しさん:2013/11/10(日) 20:54:45.28
>>8
元々Cで書かれてるとかCで書かなきゃいけないコードのテストとかなら混在するのは分かるが、
それ以外で混在さす意味が分からない
単に拡張子を.cppに変えればいいんでないの
10デフォルトの名無しさん:2013/11/10(日) 21:09:05.86
>>9
CだとmallocだけどC++だとnewじゃん
11デフォルトの名無しさん:2013/11/10(日) 21:13:18.73
キャストが必須か否かとか色々ある ってのを何処かで書いたなー
12デフォルトの名無しさん:2013/11/10(日) 21:47:45.84
>>10
C++でもmalloc使えるし
http://ideone.com/4ZY6we
13デフォルトの名無しさん:2013/11/10(日) 21:50:07.88
>>1
hogeおつ
14デフォルトの名無しさん:2013/11/10(日) 21:50:57.76
mallocしたのをdeleteしたりとかしなきゃなんでもいい
15デフォルトの名無しさん:2013/11/10(日) 22:14:25.31
個人的な思い込みに基づいて"hoge"の使用に過剰な反応をする人がこのスレに住み着いていて、
最近は「hoge禁止」がスレ住人の総意であるかのように見せる工作を繰り返しているようです。
あまり気にしないでやってください。
16デフォルトの名無しさん:2013/11/10(日) 23:44:46.44
char *foo,*bar,*baz;

foo = (char*)malloc( 1024 );
bar = new char[ 1024 ];
baz = foo;
foo = bar;
bar = baz;

って入れ替えとかできるのかね
この場合ってfooはどっちで解放するんだ?
free?delete?
17デフォルトの名無しさん:2013/11/10(日) 23:51:28.26
ポインタはアドレスの値でしかない
したがって入れ替えたなら、freeおよびdeleteするポインタも入れ替わる
18デフォルトの名無しさん:2013/11/11(月) 00:46:23.37
>>1
前スレの時は一人で一日に100レスぐらい自演して
949で次スレ立てた粘着がいたから
よくやった
19デフォルトの名無しさん:2013/11/11(月) 01:04:41.87
http://stackoverflow.com/questions/2067955/fast-bitmap-blur-for-android-sdk
の上から3つ目(評価が24)の投稿にあるソースについてですが
その下のコメントにメモリを多く使うから
r[wh]とg[wh]とb[wh]をuint8_tにした方がいいとあります
型がintだったのでintVint8_tにしましたがコンパイルエラーになってしまいます
uint8_tにするにはどうしたらいいのでしょうか?
20デフォルトの名無しさん:2013/11/11(月) 01:12:57.10
そりゃintVint8_tなんて存在しないからな
21デフォルトの名無しさん:2013/11/11(月) 01:14:37.75
#include <stdint.h>

uint8_t 〜
22デフォルトの名無しさん:2013/11/11(月) 05:35:35.14
  ┃│衛││自│ ||          ┃ >>1と自衛隊乙
  ┃│隊││衛│ ||          ┃
  ┃└─┘│隊│ ||    │    ┃
  ┃┌─┐└─┘ ||    │    ┃
  ┃├─┤┌─┐ ||          ┃
  ┃│自│├─┤ ||          ┃
  ┃│衛││自│ ||          ┃
  ┃│隊││衛│ ||    │    ┃
  ┃└─┘│隊│ ||    │    ┃
  ┃  /\└─┘ ||          ┃
..━┛/俺/┌─┐ ||          ┃
    \/  ├─┤ ||          ┃
..━┓┌─┐│自│ ||    │    ┃
  ┃├─┤│衛│ ||    │    ┃
  ┃│自││隊│ ||          ┃
  ┃│衛│└─┘ ||          ┃
  ┃│隊│┌─┐ ||          ┃
  ┃└─┘├─┤ ||    │    ┃
  ┃┌─┐│自│ ||    │    ┃
  ┃├─┤│衛│ ||          ┃
  ┃│自││隊│ ||          ┃
  ┃│衛│└─┘ ||          ┃
  ┃│隊│┌─┐ ||    │    ┃
  ┃└─┘├─┤ ||    │    ┃
23デフォルトの名無しさん:2013/11/11(月) 05:37:59.99
>>22
何かあっても無敵だな
24デフォルトの名無しさん:2013/11/11(月) 09:17:59.47
陸にしろ空にしろ、公道運行で右側埋めることしないハズだけど。。。
25デフォルトの名無しさん:2013/11/11(月) 09:44:26.14
>>22 の逃亡を防ぐのが目的だから仕方ない
26デフォルトの名無しさん:2013/11/11(月) 12:42:50.70
すみません。色々とプログラムをしてきたんですが、JavaGUI、Qt、WindowsAPIとやってきましたが、
JavaGUIは面白みがない。Qtはバージョン毎にソースを改変する必要がかなりある。
と嫌な部分がけっこうあるので、やはりWindowsAPIがいいなぁと思っているんですが、
GUIコンポーネントの少なさはなんとかなりませんか?COMとかActiveXとか良く知らないのですが
そういうのなら、たくさんGUIコンポーネントがあるんでしょうか?それともどこかのWebにGUI部品を載せているところがあるのでしょうか?

.NETは嫌です。
27デフォルトの名無しさん:2013/11/11(月) 12:59:01.28
>>26
C++Builderやれば。
28デフォルトの名無しさん:2013/11/11(月) 14:05:20.93
GUIコンポーネントの種類なんてどれもそう変わらないと思うけどなあ
29デフォルトの名無しさん:2013/11/11(月) 14:10:06.09
無かったら自分で作ってる
30デフォルトの名無しさん:2013/11/11(月) 14:31:11.61
あれば使う
なければ作る

それがプログラマ


何も作らない
ブログに短いコードを書いて自己満足

それがブログラマ
31デフォルトの名無しさん:2013/11/11(月) 16:36:55.31
>>1
> ※sage禁止です(と代々スレに書いてありますが自己判断で)。
代々? Ver.88という事だが、いつから代々なんだ? ねつ造すんな。

精神異常者のアンチhoge厨は死ね。
32デフォルトの名無しさん:2013/11/11(月) 16:42:06.58
質問では sageずに質問する。 回答者側は随意に。
こういうのあったよ
33デフォルトの名無しさん:2013/11/11(月) 18:41:15.40
>>26
今はOpenGLが主流だよ
34デフォルトの名無しさん:2013/11/11(月) 21:05:17.00
WindowsAPIなんて、碌なテーブルもない。
35デフォルトの名無しさん:2013/11/11(月) 22:16:07.06
c++の文法学べるサイト、どこかオススメあったら教えて下さい(>_<)
36デフォルトの名無しさん:2013/11/11(月) 22:18:32.96
無限ループの関数を別スレッドにしてミューテックスで同期しようとしたけど、
デッドロックになったとか例外が出る
何とかならんでしょうか

#include <thread>
#include <mutex>
#include <iostream>
#include <windows.h>

std::mutex mutex;

void func()
{
for (;;) {
mutex.lock();
std::cout << "func." << std::endl;
}
}

int main()
{
mutex.lock();
std::thread thread(func);
std::cout << "mutex unlock." << std::endl;
mutex.unlock();
Sleep(1);
thread.detach();
std::cout << "detached." <<std::endl;
}
37デフォルトの名無しさん:2013/11/11(月) 22:20:36.04
自分用にローカルプロキシ作りたいんですがサーバーソフトとしてポートを利用(接続待ち待機、受信等)する方法を教えてください
VC++2005の製品版使ってますがExpressで可能ならそれ以降のバージョンでも
.netのマネージコードではなくネイティブコードでお願いします
38デフォルトの名無しさん:2013/11/11(月) 22:26:34.95
>>36
中身は読んでないがとりあえずrecursive_mutex使え。
あと自分でlock/unlockを呼び出すな。lock_guard使え。
39デフォルトの名無しさん:2013/11/11(月) 22:30:28.94
>>36
for (;;) {
mutex.lock();
std::cout << "func." << std::endl;
}
なんだこのKUSOコードは死ね
40デフォルトの名無しさん:2013/11/11(月) 22:51:33.85
>>37
WSAStartupしておいて、あとは普通のBSD形式のソケットAPIで終わり。
socket、bind、listen、accept、recv、send、closesocket。
あとselectとかshutdownとかsetsockoptとか。

WSAなんちゃらって高機能なAPIもあるけど、最低限BSD形式ので十分。
41デフォルトの名無しさん:2013/11/11(月) 22:55:18.53
>40
ありがとうございます
それらを取っ掛かりに調べてみます
42デフォルトの名無しさん:2013/11/11(月) 23:47:22.87
>>39
ワラタw

>>36
もうちょっとマルチスレッドとミューテクスについて勉強したほうがいいと思う
43デフォルトの名無しさん:2013/11/12(火) 00:25:10.23
>>36
hoge本で勉強したって感じだな
44デフォルトの名無しさん:2013/11/12(火) 00:40:43.10
>>40
チャットみたいに文字列を送受信したい場合もそれでいける?
他に適した方法あるならキーワードだけでも教えて欲しい
45デフォルトの名無しさん:2013/11/12(火) 00:50:58.94
async()使った方が楽じゃん
46デフォルトの名無しさん:2013/11/12(火) 01:14:53.46
>>44
いける。けどクライアントはconnectやIPアドレスの解決でgethostbynameとかも使う。
selectに含まれる話だけど、ブロッキングモードと非ブロッキングモード、スレッドセーフについて調べとくと良い。
マルチスレッドを積極的に使えば非ブロッキングモードもselectは不要だがスレッドセーフを意識する必要が増える。
selectを積極的に使えば非ブロッキングモードもマルチスレッドは不要…なのが理想だがWindowsの場合は難しい。
ウィンドウメッセージと、各種同期オブジェクトと、ソケット同期関連が混在してしまっている。

ソケットを直接触らない方法は色々あるけどお勧めとかは知らんので他の人頼んだ。
47デフォルトの名無しさん:2013/11/12(火) 02:12:15.70
つ boost.asio
48デフォルトの名無しさん:2013/11/12(火) 02:38:13.68
asioはWindowsではうまく動くんだけど、Linuxではうまく動かないから
ダメだわ。
色々考えてみたんだけど、Linuxで非同期はかなり無理あるわ。
自分でasioっぽいものをつくろうとか思ってもasioの二の舞なるわ。
あと、一つのプロセスがあいてるコアをできるだけ使いたいとか無理っぽかった。
これは厳しいわ。
公平なスケジューリングと言えば聞こえがいいんだけど、これメニーコアとかなったら
どうするんだろね。
こういう部分はWindowsのほうが得意っぽかった。
だから何って話だけど。
49デフォルトの名無しさん:2013/11/12(火) 02:40:29.89
ああ、ちょっと誤解を招くな。
非同期が無理じゃなくて、非同期を抽象化するのが無理ぽかった。
50デフォルトの名無しさん:2013/11/12(火) 02:45:14.66
Windows限定だったらasioは超お勧めだよ。
IOCP使ってくれるんで良い感じ。
51デフォルトの名無しさん:2013/11/12(火) 12:47:45.58
Linuxでサーバーソフトを作るならinetd配下のプログラムにすると
標準入出力でソケット通信できて簡単
52デフォルトの名無しさん:2013/11/12(火) 13:27:21.23
>>51
2000年以前に雑誌で話題になってたような懐かしい話題だな
53デフォルトの名無しさん:2013/11/12(火) 18:07:44.43
>>51
15年くらい前にはやったね
そういうクソなサーバープログラムを作る奴は死んだ方がいい
54デフォルトの名無しさん:2013/11/13(水) 04:45:39.04
gethostnameのUNICODEバージョンって無いのですか?
55デフォルトの名無しさん:2013/11/13(水) 14:14:45.24
>>54
国際化ドメイン名はUnicode突っ込んでも動かないからな?
正規化したりPunycode使ったり色々処理しないとダメ。
56デフォルトの名無しさん:2013/11/13(水) 23:23:27.49
>>55
Visual C++でwchar_tをcharに変換することなく使いたい
ってだけでは?
57デフォルトの名無しさん:2013/11/13(水) 23:46:31.41
>>56
念のためだよ。
どうせWCHAR受け入れてたら(受け入れて無くても)、
そのまま放り込んで動かん言う奴はいるだろうし。
58デフォルトの名無しさん:2013/11/14(木) 01:54:40.98
>>55-57
gethostnameはただ単にローカルホスト名を得るだけだろ
突っ込む・wchar_tをcharに変換・放り込む
どれも的外れ
59デフォルトの名無しさん:2013/11/14(木) 02:23:50.88
>>58
!!bynameの方だとばっかり思ってたわ、すまんかった。
60デフォルトの名無しさん:2013/11/14(木) 02:55:27.06
>>59
そうだとしても
GetAddrInfo使えでいいんじゃね
61デフォルトの名無しさん:2013/11/14(木) 04:38:48.34
inet_addrのUnicode版ってありますか?
62デフォルトの名無しさん:2013/11/14(木) 04:56:02.60
inet_addrよりinet_atonを使った方がいい

inet_atonのUnicode版はWSAStringToAddress

msdnにはinet_atonが載ってないけど
inet_ntoaのUnicode版から推測できるよ
63デフォルトの名無しさん:2013/11/14(木) 09:21:50.31
getservbynameのUnicode版ってありますか?
64デフォルトの名無しさん:2013/11/14(木) 15:17:43.73
ntohsとhtonsってやってる事同じなのに2つもいらなくね?

01 02 03 04をntohsやってもhtonsやっても
結果は04 03 02 01になるんだから
65デフォルトの名無しさん:2013/11/14(木) 15:23:12.18
ネットワークでのバイトオーダー(決まってる)
  ↑              ↓
その環境でのバイトオーダー(環境依存)
66デフォルトの名無しさん:2013/11/14(木) 15:29:23.28
>>64
ばっかだなー
ソース見た瞬間に伝わるだろ
この処理でホストオーダーをネットオーダーに変えたんだと一目瞭然に
67デフォルトの名無しさん:2013/11/14(木) 18:15:40.97
仕様書通りにデータは流れなければなりません。
『あれ? 仕様書にこの並びで書いてありますよね?』
『・・・』
68デフォルトの名無しさん:2013/11/14(木) 19:38:54.16
>65
将来変換と逆変換が異なるCPUが現れるまさかの事態に備えて
2341とか
69デフォルトの名無しさん:2013/11/14(木) 21:04:19.95
>>66
関数名見ないと戻り値と引数の値が何を指しているのかわからないようなコード書いてんのか?
ばっかだなー
70デフォルトの名無しさん:2013/11/14(木) 21:22:33.62
>>69
君の場合はどう書くの?
71デフォルトの名無しさん:2013/11/14(木) 22:21:34.27
>68
ミドルエンディアンて既に有ったよ。
72デフォルトの名無しさん:2013/11/14(木) 23:10:44.11
ミドルエンディアンは2143と3412しか知らないが
元に戻らないやつもあったのか
73デフォルトの名無しさん:2013/11/15(金) 00:02:43.11
実在しねーよ
74デフォルトの名無しさん:2013/11/16(土) 18:02:12.34
>>40,46
ありがとう
gethostname, bind, listen以外はWSA系使って
_beginthreadex使わずにやる事ができた
75デフォルトの名無しさん:2013/11/16(土) 18:53:50.28
hogeが駄目になってhogerが去り過疎スレになったな
76デフォルトの名無しさん:2013/11/16(土) 22:09:47.30
>>75
自演で作り出した合意が合意じゃないって気が付いたらまた荒らすだろうから触れるんじゃねぇよ馬鹿。
77デフォルトの名無しさん:2013/11/16(土) 22:42:04.45
15日1レスしかないぞぉ↓
78デフォルトの名無しさん:2013/11/16(土) 23:13:13.84
今日は書き込み多くて盛況スレだね
79デフォルトの名無しさん:2013/11/17(日) 07:54:48.18
嵐が去って過疎ってるのは
もとから過疎ってるってことだよね
80デフォルトの名無しさん:2013/11/17(日) 18:53:18.39
ここもあるだけで機能しないapiスレと同じになったってこと
それがhoge基地の狙い
81デフォルトの名無しさん:2013/11/17(日) 23:59:52.06
自分のグローバルIPアドレスへテスト通信するにはどうすればいいですか?
socketでの家庭内PC同士の通信は成功しています
82デフォルトの名無しさん:2013/11/18(月) 00:08:11.58
ルーターによっては無理なのでプロクシを通す
83デフォルトの名無しさん:2013/11/18(月) 00:09:56.08
そのグローバルIPアドレスへテスト通信すればいい
84デフォルトの名無しさん:2013/11/18(月) 00:59:35.54
>>81
内部LANと自分のグローバルIPと通信って普通はしないだろ
プログラムじゃなくルーターにこれを実現する機能があるかになる
家庭用ルーターにも出来る奴あるのかな
まぁ、自分でLinuxルーター立てやれ
85デフォルトの名無しさん:2013/11/18(月) 03:44:53.82
ヤマハrtならできるよ家庭用つーより小規模事務所向けだが
86デフォルトの名無しさん:2013/11/18(月) 03:48:41.86
>>82-84
グローバルIPアドレスが表示されるHPで確認したら
自分のPCと同じホームネットワークのPCと同じグローバルIPアドレスだったから詰みました

A <--Home Net--> B <--WWW Net--> C
Aから見た場合とCから見た場合で
Bのグローバルアドレスを知る方法はどうしたらいいですか?
87デフォルトの名無しさん:2013/11/18(月) 06:31:06.55
ttp://www.kab-studio.biz/Programing/Codian/DLL_Hook_SClass/02.html
のソースをコピーしてsndPlaySoundを実行中リンクするのですが、wavファイルが鳴った後にエラーが出ます

The value of ESP was not properly saved across a function call.
This is usually a result of calling a function declared with one calling
convention with a function pointer declared with a different calling convention

そこで、typedef BOOL (sndPlaySound)( LPCSTR, UINT )の部分をMMSYSTEM.Hの宣言通りに、
typedef BOOL (WINAPI sndPlaySound)( LPCSTR, UINT )に変更したらエラーは出ませんが、
今度は音が鳴りません(戻り値は1)。原因と対処法を教えてください

OS - Windows Vista home edition
IDE - Visual Studio6 enterprise edition SP2
プロジェクト - Win32 Console Application

ちなみに実行時リンクでも同じくエラーもなく音が出ません。
88デフォルトの名無しさん:2013/11/18(月) 06:46:33.86
>>87
非同期再生してすぐに終了してるせいだろ。SND_SYNCを渡せ。
89デフォルトの名無しさん:2013/11/18(月) 07:25:52.88
>>88
できました。早速のご回答有難うございました!
90デフォルトの名無しさん:2013/11/18(月) 09:30:03.82
>>86
プライベートネットワーク上にあるPCは契約プロバイダから割り当てられたグローバルアドレスを
共有して外部にアクセスに行きます。その仕組みを実現しているのがルーターです。

グローバルアドレスを使ってプライベートネットワーク上の特定PCにアクセスしたい場合は、
ルーターに「フォワーディング」または「静的IPマスカレード」と呼ばれている設定をします。
このやり方は、ルーターの取り扱い説明書を読むか、契約プロバイダに聞いてください。
91デフォルトの名無しさん:2013/11/18(月) 09:50:32.96
>>90
調べてみます
ありがとうございました!
92デフォルトの名無しさん:2013/11/18(月) 10:49:16.14
VisualStudio2012にてC++で作成したスタティックライブラリを配布したいのですが、
利用者がVisualStudioの別バージョンや他のwin用コンパイラで利用できるように
することは可能でしょうか?
VS2012以外で利用すると、ランタイムライブラリのバージョン違いで
リンクエラーになる気がしてます。
93デフォルトの名無しさん:2013/11/18(月) 14:41:16.82
エラーになるような気がするけど、今までなった記憶がないな。
dumpbin /imports
でライブラリがCRTを参照していなければ(埋め込まれてれば)
いいんだよね。
ただ他のコンパイラとの互換性は保証されてないんでは
94デフォルトの名無しさん:2013/11/18(月) 17:03:57.96
>>93
なるほど、ライブラリで標準関数を使うなら無理という事ですね。
DLLにするのが良さそうです、ありがとうございました。
95デフォルトの名無しさん:2013/11/18(月) 17:41:55.26
/GL使わなければ後方互換だけ保障されていたはず
96デフォルトの名無しさん:2013/11/18(月) 19:28:58.85
そうなんですか! VS2012上でライブラリを/GLなしでビルドすれば、
VS2010以前でも使える、という事ですか? VSの古いバージョンを
もっておらず手元確認ができないのが辛いですが、VSのランタイムが
そういう仕様になっているのは助かります。

利用側のexeが/GLなし、ですと利用者が不便なので難しいですね…
情報ありがとうございました。
97デフォルトの名無しさん:2013/11/18(月) 19:32:27.28
それ前方
98デフォルトの名無しさん:2013/11/18(月) 19:34:28.32
COMにしよう
99デフォルトの名無しさん:2013/11/18(月) 19:36:44.02
>>96
VC2010の奴がVC2012でも使える
100デフォルトの名無しさん:2013/11/18(月) 21:42:16.60
そうでした、古いVSが新しいVSの出力物を知っている
はずがないのでそうなりますよね、勘違いしてました。
COM調べてみます、ありがとうございます!
101デフォルトの名無しさん:2013/11/18(月) 22:10:17.04
WSAAsyncSelectで設定されたFD_WRITEが飛んでくるのは最初の1回だけですか?
WindowProcで言う所のWM_CREATEですか?

初期化完了のメッセージをFD_ACCEPTで表示してるのですが
そうなるとFD_WRITEの使い道がわかりません

FD_ACCEPT(1度) -> FD_WRITE(1度) -> FD_READ(ループ) -> FD_CLOSE(1度)
という流れだったらsocketの初期化をFD_ACCEPT, 初期化完了表示をFD_WRITEにしてしまおうと思うのですが
FD_WRITEが他のタイミングでも呼ばれるのならまずいですよね
102デフォルトの名無しさん:2013/11/18(月) 22:33:39.32
>WSAAsyncSelec

そんなクソAPI使う奴の気が知れない
なんでselectとか世の中の標準を使わないかねえ
103デフォルトの名無しさん:2013/11/18(月) 23:07:18.00
>>102
Windows標準の同期オブジェクトをselectで同期できないからな。
逆にWindows標準のMsgWaitForMultipleObjects系APIでもソケットと直接同期できない。
WSAWaitForMultipleEventsはMsgWaitForMultipleObjects系と似てるが同期オブジェクトに互換性が無い。
WSA関連で使うイベントオブジェクトが標準のイベントオブジェクトだったらもう少しマシなんだが……

だからWindowsではマルチスレッドで回すか、WSA系の同期はウィンドウメッセージにしてMsgWaitForMultipleObjectsで待つかになるんだよ。
104デフォルトの名無しさん:2013/11/19(火) 00:11:23.14
いまはapiなんて使わないで、普通にboost aisoじゃないの
105デフォルトの名無しさん:2013/11/19(火) 00:36:33.25
WinAPI使ってるのにCreateFileじゃなくわざわざfopen使うようなのはちょっと
106デフォルトの名無しさん:2013/11/19(火) 00:50:45.06
>>102
そんなクソな思考する奴の気が知れない
なんでWindows以外対応しなくていいって考えが浮かばないかねえ
107デフォルトの名無しさん:2013/11/19(火) 00:52:59.51
>>105
テキストとして1行ずつの時はFILE使ってる
108デフォルトの名無しさん:2013/11/19(火) 11:11:27.89
CとC++がごっちゃでも使えるのがVCのいいところでして。
109デフォルトの名無しさん:2013/11/19(火) 12:09:06.34
リソースハンドルとC++のラッパオブジェクトが混在するのはうつくしくない
110デフォルトの名無しさん:2013/11/19(火) 17:20:33.35
Win32APIの質問です

ウィンドウが非アクティブ(他のウィンドウがアクティブ)なのを判定するにはどうすればいいですか?
GetWindowPosみたいなのがあればいいのですが見つかりません
111デフォルトの名無しさん:2013/11/19(火) 18:14:34.50
>>110
アクティブなウィンドウならキーボードフォーカス持ってるはずだから、GetFocusとかで
誰がキーボードフォーカス持ってるか調べれば分かるんじゃね?
112デフォルトの名無しさん:2013/11/19(火) 21:46:50.05
GetActiveWindow
113デフォルトの名無しさん:2013/11/19(火) 22:09:44.83
できました
ありがとうございます
114デフォルトの名無しさん:2013/11/20(水) 01:43:42.46
いえいえ
115デフォルトの名無しさん:2013/11/20(水) 17:09:14.37
>>134
君はどうしてそういうことしちゃうのかなぁ…
116デフォルトの名無しさん:2013/11/20(水) 17:21:50.26
134が一体何をした
117デフォルトの名無しさん:2013/11/20(水) 20:26:41.15
>>115
そういうこととはどういうこと?
118デフォルトの名無しさん:2013/11/21(木) 00:41:49.16
>>134
こいつhoge基地外
119デフォルトの名無しさん:2013/11/21(木) 01:59:57.08
ほんとに >>134 はひどい人だと思う。
120デフォルトの名無しさん:2013/11/21(木) 02:18:07.81
なんだか良く分からんが、きっと真っ赤だな
121デフォルトの名無しさん:2013/11/21(木) 18:29:07.13
>>134
よう、低脳
122134:2013/11/21(木) 19:46:51.06
何ですかみなさん、失礼ですね
123デフォルトの名無しさん:2013/11/21(木) 22:10:28.82
>>134
お前が無礼すぎるんだよ
124デフォルトの名無しさん:2013/11/21(木) 23:55:49.76
なんだかわからんが謝ったほうがいい>>134
125デフォルトの名無しさん:2013/11/22(金) 00:05:51.44
んだな、あの態度はちょっと許しがたい
126デフォルトの名無しさん:2013/11/22(金) 01:23:00.53
>>134
ずいぶん嫌われたな
127デフォルトの名無しさん:2013/11/22(金) 01:34:15.97
自演楽しいか?
128デフォルトの名無しさん:2013/11/22(金) 01:57:54.61
自治スレ荒らしてたのもこいつらだろ
129デフォルトの名無しさん:2013/11/22(金) 03:56:20.54
荒らしじゃないよ
面白いと思ってやてる餓鬼だよ
130デフォルトの名無しさん:2013/11/22(金) 12:08:58.29
>>134
無礼すぎワロタwwww
131デフォルトの名無しさん:2013/11/22(金) 12:32:39.02
くだらん
132デフォルトの名無しさん:2013/11/22(金) 12:51:03.70
どうしてそういうことしちゃうのかなぁ…
133デフォルトの名無しさん:2013/11/22(金) 12:54:35.59
いよいよ真打ちの登場です。
↓をとくとご覧あれ。
134デフォルトの名無しさん:2013/11/22(金) 12:54:38.76
…わかった。
この話はやめよ?
ハイちゅんちゅん
135デフォルトの名無しさん:2013/11/22(金) 19:25:06.08
>>134
そこはhogeだろ
アホか
136デフォルトの名無しさん:2013/11/22(金) 20:35:48.16
>>135
そうだね。
wktkしてたが、低脳過ぎの寒いレスででがっくり
137デフォルトの名無しさん:2013/11/22(金) 22:31:19.72
>>134 VIP で半年ROMってこい
138デフォルトの名無しさん:2013/11/23(土) 00:09:31.69
>>134には失望した
139デフォルトの名無しさん:2013/11/23(土) 00:24:11.86
>>134
無礼の方がマシだったな
140デフォルトの名無しさん:2013/11/23(土) 02:32:44.01
なんだかわからんがやっぱり謝ったほうがいい>>134
141デフォルトの名無しさん:2013/11/23(土) 10:18:04.41
今日の袋だたきスレ
142デフォルトの名無しさん:2013/11/23(土) 12:27:30.01
たかが3秒のズレで・・
143デフォルトの名無しさん:2013/11/23(土) 13:20:54.52
じえんのくせに
144デフォルトの名無しさん:2013/11/23(土) 14:11:09.53
>>134は泡吹いただろうなー
スレ開いたら133のはずが134になってるんだもんなー

みなさーん、最高ですかー?

サイコウでーっす!
145デフォルトの名無しさん:2013/11/23(土) 16:41:29.08
初心者歓迎と幼児歓迎はちがいまーす みなさんかえりますよー
146デフォルトの名無しさん:2013/11/23(土) 23:02:39.04
ここは朝鮮系歓迎スレで、非朝鮮系は来るなスレだよな
147デフォルトの名無しさん:2013/11/23(土) 23:08:58.29
        |ヽ、   | ヽ           /:::::::::::::::::::::::::::::::::::::/:::::ヽ
      /  ヽ─┘ ヽ        γ:::::::::::人::::人::人::::λ:::::::::ヽ
    / (;;゚\)ll(/゚;;)\      /:::::::/ (;;゚\)ll(/゚;;) \:::::::ヽ
   /   ⌒(__人__)⌒ .\  .    i::::::::|   ⌒(__人__)⌒  ,|:::::::ノ
  <  ノ(,   |r┬- | u    >    |::::::::l ノ(,  |r┬- |    |:::::::|
  \ ⌒  、,|r l -ソ    /     ヽ,,,ノ、 ⌒、,|r l -ソ u , 'ヽ,,,ノ
   ノ_ _(_)   `ー'    ヽ        ノ     `ー'   (_)-‐ 、
 /l_j_j_j⊂)         \     /          (つl_j_j_j
148デフォルトの名無しさん:2013/11/23(土) 23:44:45.57
まぁ連休ですしぃ
って普通土日休みじゃんねぇー
もったいなーい
149デフォルトの名無しさん:2013/11/26(火) 00:31:41.08
お前ら、ちょっと過ぎたけどメリークリスマス!
150デフォルトの名無しさん:2013/11/26(火) 00:43:36.84
あけおめ
151デフォルトの名無しさん:2013/11/26(火) 00:47:12.33
ゴールデンウィーク楽しかったわ
152デフォルトの名無しさん:2013/11/26(火) 01:04:33.80
ISO/IEC 14882:2003 の 12.2 Temporary objects によると、
下記のような一時変数の const 参照束縛のライフタイムって、
変数 a の存在できるスコープで保証されるじゃん?
class A;
A func() {return A();}
const A& a = func();

そこでふと疑問に思ったんだけど、
下記のようにクラスのメンバで const 参照を保持する場合も、
一時変数のライフタイムって b のスコープで保証されるのかな?
class B
{
pubic:
B(const A& a) : m_a(a) {};
const A& m_a;
};

B b(func());
153デフォルトの名無しさん:2013/11/26(火) 01:12:08.78
一瞬 日付を忘れる時ってあるよねw
154デフォルトの名無しさん:2013/11/26(火) 04:49:18.23
コンパイル時の処理とリンク時の可能性も有るメンバ初期化を同列に見るなんてセンス無いわ
155デフォルトの名無しさん:2013/11/26(火) 08:18:59.45
>>152
func() の戻り値である一時オブジェクトで参照を初期化しているわけじゃない(class Bを初期化している)から
12.2 にある延命される条件には該当しない。
156デフォルトの名無しさん:2013/11/26(火) 18:45:52.57
× 一時変数
○ 一時オブジェクト
157デフォルトの名無しさん:2013/11/27(水) 00:57:13.18
変数なんてない、あるのはオブジェクトだけ
豆ね
158デフォルトの名無しさん:2013/11/27(水) 04:30:25.35
ばーか
159デフォルトの名無しさん:2013/11/28(木) 22:56:30.93
class Model { std::vector<int> vi; }

とするとvectorがサポートするメソッドをすべて公開し
その中か呼び出すという七面倒なことになるのですがなにかいい案はありますか?

public:
push_back(int i){vi.push_back(i);}
....
160デフォルトの名無しさん:2013/11/29(金) 00:35:28.85
>>159
hoge君、何をするためのなにかいい案なんだhoge?
161デフォルトの名無しさん:2013/11/29(金) 01:13:14.99
>>159
public 継承する。
または private 継承して using を必要なだけ書く。
162デフォルトの名無しさん:2013/11/29(金) 01:14:14.23
>>159
自動委譲に関する話なら
http://toro.2ch.net/test/read.cgi/tech/1382889622/107
以降でやってたよ
もっとも「vectorがサポートするメソッドをすべて公開」しなきゃいけない様な
クラスなら俺なら普通にvectorを継承するけど
163デフォルトの名無しさん:2013/11/29(金) 08:14:14.08
>>159
何をしたいのかよくわからんが、いっそのこと vt 公開すれば?
164デフォルトの名無しさん:2013/11/29(金) 10:16:31.14
参照返すアクセサがあればいいだけのような。
165デフォルトの名無しさん:2013/11/29(金) 14:13:38.28
typedefでいいじゃん
166デフォルトの名無しさん:2013/11/29(金) 15:43:37.19
派生クラス側の仮想関数にも(それ以上継承されていなにも関わらず)virtualがついていたりいなかったりするんですが、
明示的に仮想関数ってことを表すためって解釈でいいんでしょうか?
167デフォルトの名無しさん:2013/11/29(金) 15:46:44.35
はい
168デフォルトの名無しさん:2013/11/29(金) 15:51:58.27
ありがとー
169デフォルトの名無しさん:2013/11/29(金) 17:29:26.94
>>159の質問はわざと低脳には理解できないようにした質問だろ
これは低脳排除するときにやる手だろ
でも、低脳は頓珍漢レスするからな
170デフォルトの名無しさん:2013/11/29(金) 19:10:49.50
↑頓珍漢の王様が降臨しました
171デフォルトの名無しさん:2013/11/29(金) 19:23:30.53
↑頓珍漢レスの最底辺民が降臨しました
172デフォルトの名無しさん:2013/11/29(金) 20:34:49.01
頓珍漢同士仲良くしてろよ
173デフォルトの名無しさん:2013/11/29(金) 21:29:28.51
頓珍漢の王様や最底辺民、さらにhoge、アンチhogeまでいる楽しいスレ

>>172
紹介するぐらい仲良しこよし
174デフォルトの名無しさん:2013/11/30(土) 18:04:19.37
日本語、abcなどのアルファベットを人間では読むことができないように、
暗号化したいのですが資料とかないですかね?
ついでに、暗号化したものの複合化など
175デフォルトの名無しさん:2013/11/30(土) 18:40:44.98
真面目な暗号は資料はあるが実装は手間だし、暗号化ライブラリを使え。
適当暗号は資料化する価値がないし、資料化されてるくらいだと定型文過ぎて意味が無い。

適当暗号は適当に逆算可能な数値計算で各文字の値を撹乱すればよい。
簡単なところでは適当な固定数値や数値列、nバイト前の平文を組み合わせてXORとかな。

暗号文を文字列表現するなら最後にBASE64なり16進数なりに戻せばOK。
176 ◆QZaw55cn4c :2013/11/30(土) 18:46:41.80
>>174
DES, AES, RSA, 暗号に近いところにある SHA あたりを
http://www.amazon.co.jp/dp/4627847610
177デフォルトの名無しさん:2013/11/30(土) 19:19:51.78
今時DESの名を挙げる人は死んだ方がいい
お願いだから、他人の迷惑だから死んでくれ
178 ◆QZaw55cn4c :2013/11/30(土) 19:31:20.85
>>177
歴史的事情というのは無しですかトリプルDESも死んじゃってRijndael 一色ですかそうですか
179デフォルトの名無しさん:2013/11/30(土) 20:37:59.37
ハッシュじゃないSHAとかあったっけ?
そこ無視しても本文の暗号化聞かれてRSA出すあたりもどうかと。
公開鍵暗号って普通は鍵の暗号化だけに使って、本文はその鍵使った共通鍵暗号だろ
180デフォルトの名無しさん:2013/11/30(土) 20:51:41.44
複合できず


DES, AES, RSA, 暗号に近いところにある SHA あたりを
181デフォルトの名無しさん:2013/12/01(日) 12:51:09.55
GnuPGってライブラリあったっけ?
あれば使うのが手だと思う。
182デフォルトの名無しさん:2013/12/01(日) 16:17:42.38
LibTomCryptって一部パブリックドメインのオープンソースな暗号ライブラリとかもあるな。
吉里吉里とかもコレの一部を組み込んでた筈。
ただ、既に更新停止してしまったらしい。残念・・・
ttp://tkyk.name/blog/2009/06/11/Programming-Encryption--libtomcrypt/
183 ◆QZaw55cn4c :2013/12/01(日) 16:37:38.04
>>179
>公開鍵暗号って普通は鍵の暗号化だけに使って
公開鍵暗号系はコストが高いから普通そうするが、テキスト全部を公開鍵暗号でおくったっていい
SHA を含めたのは、参考文献にあわせただけね、でもハッシュ関数も暗号関係のお話では重要だと思っているよ
184デフォルトの名無しさん:2013/12/03(火) 12:56:02.13
下記プログラムでビルドがうまくいきません。
二項演算子 '=' : 型 'A' の右オペランドを扱う演算子が見つかりません
とのことですが、定義しているのになぜでしょうか?

class A
{
int m_d;
public:
A(int data) :m_d(data){}
A& operator=(const A &obj){
m_d = obj.m_d;
return *this;
}
A operator*(const A& obj){
return A(m_d * obj.m_d);
}
int print(){return(m_d);}
};

class B : public A
{
public:
B(int d) : A(d){}
};

int main()
{
B t1(100),t2(2),t3(0);
t3 = t1 * t2;
return 0;
}
185デフォルトの名無しさん:2013/12/03(火) 13:02:55.95
初心者はただの関数つかっとけ。それで完全に補完できる。
186デフォルトの名無しさん:2013/12/03(火) 13:23:52.35
t3 が class B で
[class B] = [class A]
こうなってるからじゃね?
187デフォルトの名無しさん:2013/12/03(火) 13:27:48.91
class B の operator = に class Aを受けるのが無いYO っつーことでさー
188デフォルトの名無しさん:2013/12/03(火) 13:38:25.60
>>186
>>187
ありがとう、わかりました。
189デフォルトの名無しさん:2013/12/03(火) 17:35:36.36
CC++をwww上で解説してる人多いと思うけど
なぜに他と同じことしか書いてないの?
190デフォルトの名無しさん:2013/12/03(火) 17:41:18.64
知識がないから。
191デフォルトの名無しさん:2013/12/03(火) 17:43:50.86
Linuxでユニークなファイル名を生成しようと思いmkstemp()を使ったのはいいのだが、
iostreamでアクセスしているロジックがあって困っている。
CならファイルハンドルからFILE構造体の変換にfileno()があるが、iostreamの場合はどうしたらいいんだろう。
192デフォルトの名無しさん:2013/12/03(火) 17:45:50.25
どうでもいいけどfileno()は逆方向だった。fdopen()だね。
193デフォルトの名無しさん:2013/12/03(火) 17:46:20.78
>>190
じゃぁ、なぜ書くの?
194デフォルトの名無しさん:2013/12/03(火) 17:47:11.14
今でしょ
195デフォルトの名無しさん:2013/12/03(火) 17:49:21.55
class Foo{};
std::string classname = "Foo";

classname foo;

ってやれませんか?
196デフォルトの名無しさん:2013/12/03(火) 18:10:10.40
>>195
Foo foo;のFooを動的に変更したいということなら、諦めろ。
つーか、クラスの継承で事は足りないのか?
197デフォルトの名無しさん:2013/12/03(火) 20:38:10.20
#define DECLARE(C,name) C name

ていうのじゃダメなんだろうな、多分

DynamicClass* createClass(std::string){ ... }

という力技もあるけど、ダメなんだろうな、多分w
198デフォルトの名無しさん:2013/12/03(火) 20:40:30.25
>>193
本人たちに聞いてみたら?
199デフォルトの名無しさん:2013/12/03(火) 23:25:53.11
デリケートゾーンってどこ?
200デフォルトの名無しさん:2013/12/04(水) 01:03:47.75
禿げるところね
201デフォルトの名無しさん:2013/12/04(水) 01:12:51.87
ビラビラじゃないの?
202デフォルトの名無しさん:2013/12/04(水) 01:21:29.76
テカテカでもあるな
203デフォルトの名無しさん:2013/12/04(水) 23:02:50.25
>>195
C++という言語にはリフレクション機能がないので
>>197相当のことをするしかない
204デフォルトの名無しさん:2013/12/04(水) 23:14:11.00
そのためのテンプレート様ですよ
205デフォルトの名無しさん:2013/12/04(水) 23:15:05.60
実行時にやりたいんじゃないの
206デフォルトの名無しさん:2013/12/04(水) 23:23:05.59
素直にファクトリクラス用意すればいいんちゃう
207デフォルトの名無しさん:2013/12/05(木) 00:41:47.15
C++ってリフレクション機能ないのか。おいおい言語じゃないか
208デフォルトの名無しさん:2013/12/05(木) 01:27:14.00
そりゃ時代遅れのC++なんて絶滅寸前だからビャーネもやるきないだろ
209デフォルトの名無しさん:2013/12/05(木) 01:50:45.47
実行時にやるなんて甘えだからな
210デフォルトの名無しさん:2013/12/06(金) 03:16:39.91
リフレクション遅いからな
211デフォルトの名無しさん:2013/12/06(金) 07:58:46.82
コンパイラ実行時リフレクション
212デフォルトの名無しさん:2013/12/06(金) 10:20:50.82
リフレクションってなーに
213デフォルトの名無しさん:2013/12/06(金) 10:35:43.47
自己書き換えコード
214デフォルトの名無しさん:2013/12/06(金) 10:48:27.68
ク クラステンプレート じゃだめなのか?
215デフォルトの名無しさん:2013/12/06(金) 12:16:33.88
テンプレートは静的だから
216デフォルトの名無しさん:2013/12/06(金) 13:00:06.68
コンパイル時においては動的
217デフォルトの名無しさん:2013/12/06(金) 13:16:21.89
216は知覚障害車
218デフォルトの名無しさん:2013/12/06(金) 13:26:21.72
気ままだよな
219デフォルトの名無しさん:2013/12/06(金) 17:57:36.20
int c[10]={};
今日まで知らなかったw
220デフォルトの名無しさん:2013/12/06(金) 18:15:51.02
>>219
何それ?初期化しているの?
221デフォルトの名無しさん:2013/12/06(金) 18:19:59.09
書かなかったら0初期化されるんだよね
222219:2013/12/06(金) 19:15:55.60
い いつのまに? って感じでしょw
223デフォルトの名無しさん:2013/12/06(金) 20:57:28.83
10年前からじゃね?
224デフォルトの名無しさん:2013/12/06(金) 20:58:42.81
少なくともC++は最初(1998年)からだな
Cは知らん
225デフォルトの名無しさん:2013/12/06(金) 21:48:02.85
CはGNU拡張だった。
226デフォルトの名無しさん:2013/12/06(金) 23:21:22.04
>>219
すげー。こんなやり方あるのか。
今までC++での配列の初期化はゼロフィルしてたよ
そして、Cではforでくるくるしてた
227デフォルトの名無しさん:2013/12/06(金) 23:46:16.19
こういう事ってどうやったらできる?
式が必要ですってなってできない

#define funcval_samp1 2, 5
#define funcval_samp2 5, 5

#define macro_func(val1, val2)

macro_func(funcval_samp1); // macro_func(2, 5);
macro_func(funcval_samp2); // macro_func(5, 5);
228デフォルトの名無しさん:2013/12/07(土) 00:03:45.26
#defineを使ってです
229デフォルトの名無しさん:2013/12/07(土) 00:13:57.66
#define funcval_sample (2,5)
#degine _adv_macro_func(a) macro_func #a
_adv_macro_func(funcval_sample);
230デフォルトの名無しさん:2013/12/07(土) 00:36:13.45
配列じゃ無くて構造体だが、Win32APIでよく聞くTipsとして
STARTUPINFO si={sizeof(STARTUPINFO)};
でSDK/ターゲットOSバージョンごとのcbフィールドを適切にセットしつつ他を0フィル
ってのもあるな。
231デフォルトの名無しさん:2013/12/07(土) 00:41:46.68
>>230
それはただ単に構造体の第1メンバを初期化してそれ以外を0セットってだけなんじゃ
232デフォルトの名無しさん:2013/12/07(土) 00:53:09.25
>>231
似たような文法で似たような用途の小ネタってだけですし。
233デフォルトの名無しさん:2013/12/07(土) 01:14:22.13
>>226
C++ポケットリファレンスという本にぽろっと出てました。目うろこでした。
ttp://www.amazon.co.jp/gp/product/4774157155
まだ少ししか読んでませんが、評判通りだと思います。
234デフォルトの名無しさん:2013/12/07(土) 01:34:30.44
>>230
STARTUPINFO si={sizeof(STARTUPINFO)};
でcbフィールドを適切にセットしつつ他を0フィルってなるのか?
cb位置って決まっているのか?
235デフォルトの名無しさん:2013/12/07(土) 01:41:06.96
>>234
STARTUPINFOは第1メンバがcbだろ
236デフォルトの名無しさん:2013/12/07(土) 01:43:20.27
#define macro_func(val1, val2, val3, val4) func(val1, val2, val3, val4)
#define macro_val23 2, 3

macro_func(1, macro_val23, 4);

こんな使い方はどうやればできますか?
237デフォルトの名無しさん:2013/12/07(土) 02:00:23.20
mblen にイテレータを使うにはどうしますか?
const char* でなくて istreambuf_iterator 使ってファイルストリームバッファをmblenに直接読ませたいんです
238デフォルトの名無しさん:2013/12/07(土) 02:07:09.93
>>234
Win32APIでcb(構造体サイズ)メンバを持つ場合、ほぼ第一メンバに来てるからな。
例外ってあったっけ?
239デフォルトの名無しさん:2013/12/07(土) 02:58:36.34
>>236
#define macro_func(val1, val23, val4) macro_nothing(macro_func2(val1, val23, val4))
#define macro_func2(val1, val2, val3, val4) func(val1, val2, val3, val4)
#define macro_nothing(a) a

#define macro_val23 2, 3

macro_average(1, macro_val23, 4);

これで警告も無し(Level4)でいけたけど
macro_func -> macro_func2で怖い事してる気がする
240デフォルトの名無しさん:2013/12/07(土) 03:00:05.12
あぁごめん
macro_func(1, macro_val23, 4);ね
241デフォルトの名無しさん:2013/12/07(土) 03:35:56.91
msのコンパイラじゃそれはとおらない
#define hage(hige,huge)
#define hoge 1,2
hage(hoge)は
hage((1,2),)として展開される
242デフォルトの名無しさん:2013/12/07(土) 04:24:52.20
>>241は荒らしなのでスルーしてください
243デフォルトの名無しさん:2013/12/07(土) 05:09:26.06
244デフォルトの名無しさん:2013/12/07(土) 12:50:31.56
>>241
VC++ EEでは通ってるよ
245デフォルトの名無しさん:2013/12/07(土) 12:59:01.13
>>243
> #define macro_val23 2, 3
この前提が崩れてる

ttp://ideone.com/QBYnoi
246デフォルトの名無しさん:2013/12/07(土) 13:12:30.04
macroがmankoになっただけじゃね?
247デフォルトの名無しさん:2013/12/07(土) 13:58:59.40
>>234
何故サイズ値をもつ必要があるのかを考えれば自明
248デフォルトの名無しさん:2013/12/07(土) 14:00:03.87
必要などない
マイクロソフトのセンスを疑う
249デフォルトの名無しさん:2013/12/07(土) 14:08:55.54
と、何にも作り出すことが出来なくてケチをつけるだけの人間が申しております
250デフォルトの名無しさん:2013/12/07(土) 14:19:16.08
必要ないことは認めるんだ
251デフォルトの名無しさん:2013/12/07(土) 14:31:44.97
は?どうして「必要ないことは認めてる」ことになるの?(笑)
こんなのPOSIXのbind関数に第3引数が必要なのと同じようなもので
ケチつけてもしようもないこと
252デフォルトの名無しさん:2013/12/07(土) 14:32:38.65
OSによってサイズが変わる事があるだろ
そのためのサイズだろ
253デフォルトの名無しさん:2013/12/07(土) 14:35:01.82
252がバカ過ぎる件
254デフォルトの名無しさん:2013/12/07(土) 14:37:00.82
>>251
>ケチつけてもしようもないこと
やはり必要ないことを認めている様にしか読めないのだけれど
255デフォルトの名無しさん:2013/12/07(土) 14:53:53.46
必要性があろうとなかろうとそこに存在するのだから尊重すべきだ
最終的に必要だったかどうかを結果だけを見て判断するのなら小学生でもできる

それでもあえて否定するのなら
その前にオマエラの股間にぶら下がっている役に立たないものをちょ(文字数制限によりこれ以上書けません
256デフォルトの名無しさん:2013/12/07(土) 14:58:40.77
必要性はないのですね。
あまり突っ込むとハゲーりんになってしまうよ。
257デフォルトの名無しさん:2013/12/07(土) 14:59:37.93
>>255
>最終的に必要だったかどうかを結果だけを見て判断するのなら小学生でもできる

小学生ができようとできまいと
間違ったものを間違ったと認識することを否定しては
カイゼンはできません。
そういう人は組織にとって邪魔なので首つって死んで欲しいです
258デフォルトの名無しさん:2013/12/07(土) 15:09:43.14
#include <iostream>
#include <cstring>
using namespace std;
class person{
char name[32];
char sex; //男 M 女 F
int age;
public:
int show();
person(char * ,char , int);
};
inline int person::show()
{ cout << "氏名: " << name << endl;
cout << "年齢: " << age << "歳" <<endl;
cout << "性別: " << sex << endl;
return 0;
}
inline person::person(char *nm, char se ,int ag)
{ strcpy(name,nm);
sex = se;
age = ag;
}
int main (void)
{person Yamada("山田太郎",'M',26);
person Tanaka("田中花子",'F',24);
cout<<"---------"<<endl;
Yamada.show();
cout<<"---------"<<endl;
Tanaka.show();
cout<<"---------"<<endl;
return 0;
}
259デフォルトの名無しさん:2013/12/07(土) 15:10:45.37
クソコード
260デフォルトの名無しさん:2013/12/07(土) 15:45:00.33
>>244←ゴミの自己顕示欲入りました〜
261デフォルトの名無しさん:2013/12/07(土) 15:50:41.94
> char sex; //男 M 女 F
 →enum class使え
> person(char * ,char , int);
 →文字列はconstで受け取れ
>strcpy(name,nm);
 →長さチェックぐらいしろ
262デフォルトの名無しさん:2013/12/07(土) 16:15:55.84
>>260
Win32APIスレへ帰れ
263デフォルトの名無しさん:2013/12/07(土) 16:24:41.88
>>244とか荒らすのが目的で住み着いてるんだろ
何言っても無駄
264デフォルトの名無しさん:2013/12/07(土) 17:12:38.25
構造体サイズが必要ないとか言ってる奴はOSのバージョンアップでAPIのパラメーター増やしたかった時どうしたらよかったと思ってるの?
265デフォルトの名無しさん:2013/12/07(土) 17:13:39.19
APIを新設すればいいんじゃないの?
266デフォルトの名無しさん:2013/12/07(土) 17:17:35.28
その新設されたAPI使った場合古いOSで動かなくなるんだけど?
それともそのAPIを持ってるか事前に調べて使い分けるのか?C言語でそれかなりめんどくさいと思うんだけど
267デフォルトの名無しさん:2013/12/07(土) 17:30:40.87
増えたパラメーターを使うならどうせ旧OSじゃ使えないじゃん
268デフォルトの名無しさん:2013/12/07(土) 17:37:44.76
使えないなら無視していい程度のもんとかあるだろ
269デフォルトの名無しさん:2013/12/07(土) 17:51:17.25
旧OSをターゲットにしてるソフトが、そのままで動くようになってるか否か
270デフォルトの名無しさん:2013/12/07(土) 17:51:51.20
無視していい程度のパラメーターなんて増やす意味あんの?
271デフォルトの名無しさん:2013/12/07(土) 18:13:38.13
>>264
別のAPIを用意するか、バージョン番号を含めるに決まってるでしょ
どうしてサイズとバージョンがリンクしちゃってるの?
サイズ変更なしの仕様変更はどうするの?
ばかなの?
272デフォルトの名無しさん:2013/12/07(土) 18:39:18.66
動作や見栄えを細かく制御するとかいくらでもあるだろ
頭の悪い奴はこれだから使えねー
273デフォルトの名無しさん:2013/12/07(土) 18:42:20.11
動作や見栄え変えたら旧OSで動かないじゃん
バカじゃねーの
274デフォルトの名無しさん:2013/12/07(土) 18:49:54.26
↑↑↑↑↑↑↑↑
これだから頭の悪い奴は使えねー
本当にかわいそうになってくる
275デフォルトの名無しさん:2013/12/07(土) 19:36:26.03
言い返せないなら無理してレスしなくていいのよ
276デフォルトの名無しさん:2013/12/07(土) 20:17:55.33
struct temp{
DWORD cb;
/* 旧メンバ */
#ifdef NewVersion
/* 新メンバ */
#endif
}

こうしたら新旧対応できるだろ
というか定義されてるファイル見たりしないのか
277デフォルトの名無しさん:2013/12/07(土) 20:21:44.34
LinuxやMacって知らないが、これらでもcbフィールドみたいなのあるのか
278デフォルトの名無しさん:2013/12/07(土) 20:26:49.59
>>273のようなバカが実在するとはびっくりだぜ
279デフォルトの名無しさん:2013/12/07(土) 20:58:45.09
非実在青少年
280デフォルトの名無しさん:2013/12/07(土) 22:40:40.36
>>271
> サイズ変更なしの仕様変更はどうするの?
互換性に拘るWindowsがそんな事するわけないだろ。それが許されたら古いOSは新しいバージョンの構造体が渡されたら何も読めないからまったく動けなくなる
281デフォルトの名無しさん:2013/12/07(土) 22:44:17.49
>>277
無いLinuxの場合はカーネルのABIは変わらないようにかなり気を付けられてる。
そこはかなり限られた範囲で、Windowsでいうcb取る構造体を使うようなAPIは含まれていない。
そのあたりをカバーするGTKやらQtやらのUIツールキットは、それほど厳格にABIを守ろうとされてない。
オープンソースの世界だから、使ってる方を直せばいいって感じ。
282デフォルトの名無しさん:2013/12/07(土) 22:45:40.78
ABIはディストリビューションによっても変わるしね。
最近SteamとかでLinuxに参入してるプロプライエタリのゲームとかアプリは自分専用に使うライブラリ一式持って行ったりstaticリンクにしたりしてディストリビューション間の違いや付属ライブラリのバージョンの変更に対応してる。
WindowsでいうとUser32.dllをアプリ毎に持ってる感じ
283デフォルトの名無しさん:2013/12/07(土) 22:47:42.67
Macもカーネルに近い部分はLinuxと一緒
それ以外のUIとかのフレームワークはAPIを分けられてる
Objective-CだからサポートしてないAPIかどうかの判定はメソッド一つでわかるので楽だけど、無いAPIを呼ぶと例外発生する。
iOSでもバージョンが上がったらかなりのアプリが動かなくなってるのを見ればアップルがそれほど互換性を重視してないのがわかると思う
284デフォルトの名無しさん:2013/12/07(土) 23:14:17.11
>>236
変更可能ならこうすればマクロいらんぞ

#define macro_val23 2, 3
func(val1, val4, val2, val3)

func(1, 4, macro_val23)
285 ◆QZaw55cn4c :2013/12/08(日) 20:34:58.43
>>255
役に立っていなくて悪かったねぇ
286デフォルトの名無しさん:2013/12/09(月) 17:50:05.57
VisualC++2010なのですが、
_controlfp_sで割り込み例外マスクを解除した場合、
どうやって例外を補足するのがスマートなんでしょうか?
とりあえずC++例外として catch (...) で捕まえてますが、
例外の内容がわかりません。
287デフォルトの名無しさん:2013/12/09(月) 19:01:07.03
例外にはC++の例外と構造化例外の二種類ある。C++の例外はtry-catchで捕捉できる。
288デフォルトの名無しさん:2013/12/09(月) 19:07:36.09
それで説明したつもりか
289デフォルトの名無しさん:2013/12/09(月) 19:09:11.63
構造化例外は__try-__exceptか__try-__finallyで捕捉可能。
290デフォルトの名無しさん:2013/12/09(月) 19:15:26.24
それで説明したつもりか
291デフォルトの名無しさん:2013/12/09(月) 19:16:22.18
ググれ
292デフォルトの名無しさん:2013/12/09(月) 19:22:54.80
構文は
__try { ... } __except (式) { ... }
式の中にはGetExceptionCode()を含めることができる。
293デフォルトの名無しさん:2013/12/09(月) 19:26:33.40
それで説明したつもりか
294デフォルトの名無しさん:2013/12/09(月) 19:28:25.57
MSDNを参照されたし
295デフォルトの名無しさん:2013/12/09(月) 19:31:47.47
それで説明したつもりか
296デフォルトの名無しさん:2013/12/09(月) 19:32:55.55
SEH例外を使うのが普通ですか?
/EHaオプションでC++例外としてキャッチできているのですが、
それを生かす方法はありませんか
297デフォルトの名無しさん:2013/12/09(月) 19:40:18.64
1.VC++では構造化例外とC++例外の二つがある
2.前者は__try-exceptなどでキャッチする
3._controlfp_sに関係するのは前者
4.catch(...)でキャッチできたのは偶然じゃね?
298デフォルトの名無しさん:2013/12/09(月) 19:40:29.46
std::exception::what
299デフォルトの名無しさん:2013/12/09(月) 19:45:38.06
/EHaオプションはパフォーマンスに影響するし、他のコンパイラで使えない。避けるべし
300デフォルトの名無しさん:2013/12/09(月) 19:55:09.01
_set_se_translator
http://msdn.microsoft.com/en-us/library/5z4bw5h5.aspx
使ったことないから詳細不明
うまくいったらレポしてくれ
301デフォルトの名無しさん:2013/12/09(月) 20:19:39.87
VS2013が出てたの知らなかった。
2008STDからうpだてできるかなぁ。
302デフォルトの名無しさん:2013/12/10(火) 11:16:59.32
VC++使ってDLLを作る事になったのですが、今までVC++もDLLも触ったことないのでさっぱりです
DLLってしょせん関数の塊ですよね?

sub1という関数とsub2という関数を持つDLLを作ったとします
1.sub1で定義した変数をsub2で使うことは出来るのでしょうか?
2.例えばsub1が何回呼ばれたかをsub1内で覚えておくことは出来るのでしょうか?

関数って一度呼ばれて実行が終わると使われた変数とか全部開放されるような気がするのです
なので関数間の値の受け渡しとか、関数が終了しても覚えておきたい値とかどうするのかなって
こんな超初心者でバカな質問で申し訳ないがよろしくお願いします
303デフォルトの名無しさん:2013/12/10(火) 11:19:44.95
VC++もDLLも関係無い
static変数なりglobal変数なり調べれ
304デフォルトの名無しさん:2013/12/10(火) 11:25:18.79
>>302
基本、アクセス毎、初期化されデータは消えるはず。
DLLにマルチアクセスする場合、アクセスした情報を残したい時、特有の手法がある。
一度のアクセス内ではふつうのC/C++のプログラムと同じでデータは保持されている。
305デフォルトの名無しさん:2013/12/10(火) 11:50:19.71
>>303 >>304
なんらかの方法があるって事ですね
了解です。もっとググって勉強してきます
ありがとうございました
306デフォルトの名無しさん:2013/12/10(火) 12:21:35.82
>>305
そのDLLは複数のプロセスから呼ばれるのか
単一のプロセスから呼ばれるのかでも変わってくる
307デフォルトの名無しさん:2013/12/10(火) 14:35:50.94
>>302
VCのアプリケーションウィザードで DLL のプロジェクト一式をさくっと作れるから
最初はそれをいじって検証してみるといいんじゃないか
308デフォルトの名無しさん:2013/12/10(火) 21:26:31.90
そかリンクの後、他のAPからもリンクされることもあるわけね。
そんな事全然考えずに作ってたなぁ。
309デフォルトの名無しさん:2013/12/10(火) 21:45:51.59
>DLLってしょせん関数の塊

どうしてこう馬鹿が多いのか
310デフォルトの名無しさん:2013/12/10(火) 21:49:56.59
すいません、なにか間違ってますかね?
311デフォルトの名無しさん:2013/12/10(火) 21:53:02.52
リソースDLL
312デフォルトの名無しさん:2013/12/10(火) 21:55:21.22
そういうレベルの話?w
313デフォルトの名無しさん:2013/12/10(火) 22:07:01.69
うむ
314デフォルトの名無しさん:2013/12/10(火) 22:09:41.05
COM DLL
.NET Frameworkのライブラリ
関数をエクスポートするDLL
クラスをエクスポートするDLL
変数をエクスポートするDLL

つまり拡張子がなんとなくDLLになっている以上の意味はない
315デフォルトの名無しさん:2013/12/11(水) 00:02:46.95
>>310
DLLは本来ドライバとアプリの橋渡しに使うもの
DLLを理解するためにはハード、ドライバ、OSのカーネル等を理解しないと駄目ニダアルネ
316デフォルトの名無しさん:2013/12/11(水) 00:07:00.38
滅茶苦茶わろたw
317デフォルトの名無しさん:2013/12/11(水) 00:38:55.06
>>316
DLL作成の前に必ずドライバ作りの勉強をやらされるよな
ドライバ作りの勉強にはビデオドライバが定番
ビデオドライバすら作れない奴がDLL作るってってありえない
だろ!
318デフォルトの名無しさん:2013/12/11(水) 01:48:50.89
>>317
ほんと視野狭いのな
319デフォルトの名無しさん:2013/12/11(水) 02:51:08.26
ネタをネタと
320デフォルトの名無しさん:2013/12/11(水) 07:40:43.52
>>302
普通のlibを作るところからはじめろ。
ところで、C/C++の知識はちゃんとあるの?
321デフォルトの名無しさん:2013/12/11(水) 10:53:44.25
エスパー力が足りてない
322デフォルトの名無しさん:2013/12/11(水) 12:54:30.21
バビル二世さんは言うことが違う
323デフォルトの名無しさん:2013/12/11(水) 12:58:02.19
いっぺんチュートリアルで作ればいいのだ。
そっからいろんな疑問が出てくるかと。
良くあるのがVCでDLL作って、VBから呼ぶってやつ?
今は違うのかもサセン
324デフォルトの名無しさん:2013/12/11(水) 15:08:58.44
>>322
違うだろ
デビル二世とバビルマンだ
325デフォルトの名無しさん:2013/12/13(金) 02:43:57.37
// A.h
class A {
 いくつかの関数
 B *b;
};
// B.h
class B {
 いくつかの関数
 A *a
};
// A.cpp
void A::hoge() { b->foo(); }
// B.cpp
void B::bar() { a->foobar(); }

関数の引数としてとる場合や、メンバ変数としてポインタを持つのみならプロトタイプ宣言で循環includeを回避できるということを知ったんですが、
上記のように互いの実装部で互いの関数を呼び出している場合、関数を変更せずに循環includeを回避する方法はありますか?
326デフォルトの名無しさん:2013/12/13(金) 02:46:50.91
>>325
A.cpp, B.cpp ともに、 A.h, B.h の両方をインクルードしていれば何も問題が無いように見える。
それのどこで「循環include」なる現象が起こると思うの?
327デフォルトの名無しさん:2013/12/13(金) 02:52:37.27
>>325
hogeは消えろよ
328デフォルトの名無しさん:2013/12/13(金) 03:10:42.30
あれ・・通った・・お騒がせしました
329デフォルトの名無しさん:2013/12/13(金) 03:30:50.30
>>328
hoge厨はやっぱヴァカなんだな。
脳障がい乙。
330重要:2013/12/13(金) 06:19:17.04
【重要】
hogeは禁止します、使用しないでください。
万が一hogeが書き込まれても、スルーしてください。
相手にするとあなたも荒らしと同じ扱いになります。

>>1をよく読んで下さい
331デフォルトの名無しさん:2013/12/13(金) 07:02:03.32
俺、C++触らなくなってだいぶ経っちゃて、忘れてる
部分が多いのだけど
例えば、class Aってのがあって、A aobj;と、宣言してあるとして
aobjに、フィールド(C++でフィールドって言ったけ?)
用に、セッターを、作っておいて、フィールドに
値を入れたとします。
で、class Bってのがあって、Bに、メソッドvoid setA(A & a)
ってのがあるとして
setA にaobjを、入れたらデストラクタは走ったけ?

だいぶ忘れてる。
332 ◆QZaw55cn4c :2013/12/13(金) 07:03:35.71
>>331
class A と class B の関係は?
333デフォルトの名無しさん:2013/12/13(金) 07:13:34.11
走るわけねーだろ
334デフォルトの名無しさん:2013/12/13(金) 07:14:58.06
フィールドのくだりを説明した意味がわからない
335デフォルトの名無しさん:2013/12/13(金) 07:34:38.42
>void setA(A & a)

aobjの実体が呼び出し元にあるのに
Bに参照を設定しないで下さい
void setA(A const &a) コピーする
void setA(A *pa) ポインターで参照するのみ
void setA(shared_ptr<A> a) 共有する
void setA(A &&a) 意味的に移動する
336デフォルトの名無しさん:2013/12/14(土) 00:25:44.79
>>330とかレス番飛んでるけど、
「自分はスルー出来なくて、スルーしない奴は荒らしなので、自分は荒らしです」
って自己紹介がまだ続いてんのかな。
他人にスルーしろ言う前に自分がスルーしろよアホ。
337デフォルトの名無しさん:2013/12/14(土) 01:01:21.80
>>336
ブーメラン楽しいか?
338331:2013/12/14(土) 04:35:58.97
>>332
特に意味は無いです。
単純に、setA にaobjを入れた時に
class A のデストラクタが走ったっけな〜?
って、思っただけです。

まぁ、コードで確認しろと言われれば
それまでなんですけどね。
339デフォルトの名無しさん:2013/12/14(土) 10:29:12.27
>>328
その書き方で通るわけ無いだろ。
hoge厨はやっぱヴァカなんだな。
やっぱりホゲは禁止でよかった

--A.h
class B;
class A {
 B *pb;
};
340デフォルトの名無しさん:2013/12/15(日) 00:13:11.30
>>337
俺、スルーしろって言ったっけ?
341重要:2013/12/15(日) 21:01:43.98
【重要】
hogeは禁止します、使用しないでください。
万が一hogeが書き込まれても、スルーしてください。
相手にするとあなたも荒らしと同じ扱いになります。

>>1をよく読んで下さい
342デフォルトの名無しさん:2013/12/17(火) 05:55:09.10
このコピペ鬱陶しいし次スレ立てる時に>>1のhoge禁止取っちゃおうぜ
343デフォルトの名無しさん:2013/12/17(火) 06:06:00.76
>>340
>レス番飛んでる
ってのはウザイからスルーするためにNGしたってことだろ?
完全にブメじゃねーか
344デフォルトの名無しさん:2013/12/17(火) 07:58:27.74
なんだそのブメ。略し過ぎってもんじゃねぇぞ。
345デフォルトの名無しさん:2013/12/17(火) 08:03:49.95
330はアンカー付けてないから336は意識過剰
346デフォルトの名無しさん:2013/12/17(火) 18:53:06.23
>>342
コピペで済んでるだけマシ
昔みたいにhogeが書き込まれるたびに罵声の応酬が発生するほうが鬱陶しい

どうしても気になるなら「hoge」をNGに入れておけ
そうすれば>>341も見えなくなる
347デフォルトの名無しさん:2013/12/17(火) 19:45:40.48
どう考えても>>1にhoge禁止のルールが入ってからの方が平和
クソレスも少なくなった
今後も続けるた方がいい
348 ◆QZaw55cn4c :2013/12/17(火) 20:02:58.76
hoge禁止で状況改善??

気のせいだろう。
349デフォルトの名無しさん:2013/12/17(火) 20:26:48.72
hogeに過剰反応してるやつの方が遥かにうざい。氏ね
350デフォルトの名無しさん:2013/12/17(火) 21:15:28.67
過剰反応してるのはQz
コイツはhoge荒らしをあおって楽しんでいる
351 ◆QZaw55cn4c :2013/12/17(火) 21:18:22.78
>>350
「過剰反応」の定義は?
352デフォルトの名無しさん:2013/12/17(火) 21:47:08.00
>>350
お前が一番必死に見える
特定コテハンに粘着するのはそもそも2chのルール違反
最悪板でやれ
353デフォルトの名無しさん:2013/12/17(火) 22:24:51.50
>>352
いまは必死な奴が2chする
hogeに必死、アンチhogeに必死、こてに必死....
必死な奴は基地、ということで2chは基地の溜り場
354デフォルトの名無しさん:2013/12/18(水) 00:45:25.60
>>343
NGする意図なんて人それぞれだろ。
>>347
荒らしてた奴がそのマイルールを連投するようになっただけだろ。
何も変わってない。
355デフォルトの名無しさん:2013/12/18(水) 01:03:44.28
>>342
もしくは
http://toro.2ch.net/test/read.cgi/tech/1385318887/2
>>1>>2に入れようぜ。
356デフォルトの名無しさん:2013/12/18(水) 01:11:05.93
>>354
hoge基地大降臨以後、普通の奴がC++系スレから居なくなったって感じだし
ここもだけどC++スレも底辺スレになったよね。来年にはapiスレに並ぶ底辺スレかな
357デフォルトの名無しさん:2013/12/18(水) 16:57:48.97
351,352,354,355,356,357
自演だよな?
358デフォルトの名無しさん:2013/12/18(水) 18:36:57.56
>>357
自演だよな?ではなく、俺の自演だよって言いなさい
359デフォルトの名無しさん:2013/12/18(水) 20:39:13.10
>hoge基地大降臨
hogeは禁止しません宣言でスレ立てして
700ぐらいで釣りでした宣言した件?
360デフォルトの名無しさん:2013/12/18(水) 21:33:33.03
>>358
自分で自分にアンカするような奴だしなぁ・・・
361デフォルトの名無しさん:2013/12/18(水) 23:46:23.49
超初心者な質問します。
現在中学生で将来ゲームを創る仕事をしたいと思っています。そこで、c++を勉強しようと思いますが、そのまえにc言語を勉強した方が良いですか?あと、c言語または、c++を使ってBF4などのFPSゲームを創る事ができますか?
362デフォルトの名無しさん:2013/12/18(水) 23:50:52.15
全くの初学者ならC言語から勉強したほうが良い(というかそうせざるを得ない)
FPSゲームはC++でなくても可能なんじゃないかな?もちろんC++でもできるが
363デフォルトの名無しさん:2013/12/18(水) 23:51:12.88
C言語はいらん。
C++で十分。
C言語をやるのに、アセンブラや機械語が必要か?と同じ事。
あとHSPをすすめる。
これで作れれば手間さえかければC++でも作れる。
364デフォルトの名無しさん:2013/12/18(水) 23:59:18.00
windows用じゃないですかーヤダー
365デフォルトの名無しさん:2013/12/18(水) 23:59:35.94
HSPのサンプル。小中学生の作者もいるかと思う。



HSPプログラムコンテスト2013 入賞作品詳細
http://hsp.tv/contest2013/cntst_fresult.html
366デフォルトの名無しさん:2013/12/19(木) 00:00:04.33
≫362,363さん
まだ僕には時間があるのでc言語からやって行こうと思います。回答ありがとうございました。
367デフォルトの名無しさん:2013/12/19(木) 00:01:10.68
>C言語をやるのに、アセンブラ
勉強する と やる をすり替えた前提で話をしないで下さい。
C++はCに比べてコンパイラーが裏で生成するコードが多すぎるから
勉強としてはCもやって損は無いと思うけど、
せざるを得ないとまで断言されるとそれは違う。
368デフォルトの名無しさん:2013/12/19(木) 00:28:47.92
いや、C言語-アセンブラ・機械語の関係とC言語-C++の関係は全くの別物だろ。CはC++の真部分集合だぞ
敢えてC言語のみの環境を整えて学習する必要はないけど、C言語的なプログラミングを先に学んでからC++特有のプログラミングに移るべき
369デフォルトの名無しさん:2013/12/19(木) 00:29:32.89
安価忘れ368は>>363宛で
370デフォルトの名無しさん:2013/12/19(木) 00:50:26.11
Cから段階を踏んでという主張は一見真だが、
初心者をいきなり printf の罠に放り込んでのた打ち回らせるのは犯罪に等しい
371デフォルトの名無しさん:2013/12/19(木) 00:54:47.06
なんだprintfの罠って
372デフォルトの名無しさん:2013/12/19(木) 00:57:01.66
HSPってなんですかぁ オロオロ
373デフォルトの名無しさん:2013/12/19(木) 01:35:03.99
printf("うんこ%d個\n",4);
374デフォルトの名無しさん:2013/12/19(木) 01:42:03.99
printf("%d\n", "Hello, world!");
375デフォルトの名無しさん:2013/12/19(木) 01:53:24.66
printfで躓くようなのはどの道ゲームなんか作れんでしょ
それより初心者がCに躓く可能性は懸念するのに、Cの数十倍難解なC++に躓く可能性を考えないのはなぜだ
376デフォルトの名無しさん:2013/12/19(木) 01:54:42.16
昔:C→C++
今:Java/C#→C++
377デフォルトの名無しさん:2013/12/19(木) 02:02:36.66
俺もCからC++に移った口だけど
やっぱりCの知識がある分C++を学ぶの楽だったよ
378デフォルトの名無しさん:2013/12/19(木) 02:25:16.14
そりゃCの知識を利用できるからな
379デフォルトの名無しさん:2013/12/19(木) 03:21:00.96
CプログラムをC++コンパイラに通せば
あら簡単 もうC++プログラム
380デフォルトの名無しさん:2013/12/19(木) 03:31:38.60
ぶっちゃけCじゃプログラミングなんかできないよな
C++なしにWindowsアプリつくろうと思ったら発狂するわ
381デフォルトの名無しさん:2013/12/19(木) 03:42:41.91
出来る。
発狂するのは同意
382デフォルトの名無しさん:2013/12/19(木) 03:51:55.75
VC++EE使ってるせいでCでやってるつもりでもC++の機能を使ってる可能性もあるで
383デフォルトの名無しさん:2013/12/19(木) 04:37:36.11
昔はC使えればソフト作れたから、Cが入口として成り立ってた
今はCが使えてもソフトは作れないから…Cから始めてC++にせざるを得なかったってとこでしょ
384デフォルトの名無しさん:2013/12/19(木) 05:03:44.90
今でもCでソフト作ってるよ
小規模の組み込みでw
385デフォルトの名無しさん:2013/12/19(木) 08:11:32.49
>>368
>CはC++の真部分集合だぞ
違うよ
386デフォルトの名無しさん:2013/12/19(木) 12:44:52.60
楽して作るんならC#を使うし、
低レベルのチューニングを重視するならCを使うし。

C++は楽でもなければ低レベルでもない非常に中途半端な立ち位置。
387デフォルトの名無しさん:2013/12/19(木) 12:47:00.58
>>386
低レベルのチューニングを楽にできるのがいいんじゃねーか
388デフォルトの名無しさん:2013/12/19(木) 13:08:41.20
>>387
Cより実行速度が遅いとか思っちゃってる人なんだろ。
そっとしといてやれよ。
389デフォルトの名無しさん:2013/12/19(木) 17:32:03.06
仕事が欲しいならJavaだしな
最近はC++の大規模プロジェクトなんてないしな
390デフォルトの名無しさん:2013/12/19(木) 17:50:12.96
Cの課題でわからないことがあるのですがここでいいんですかね?
391デフォルトの名無しさん:2013/12/19(木) 17:55:17.75
392デフォルトの名無しさん:2013/12/19(木) 17:55:39.43
>>390
課題はお断り
ホゲも禁止
Cの質問なら歓迎
393デフォルトの名無しさん:2013/12/19(木) 19:41:36.76
printf("%zu", sizeof(int));

どうしてvc++はこんな簡単なコードすらマトモに動かないのですか?
394デフォルトの名無しさん:2013/12/19(木) 19:46:07.18
そりゃ原因を調べたりぐぐったりする能力がないからだろ
簡単に言えば無能だから
395デフォルトの名無しさん:2013/12/19(木) 19:55:16.05
天下のマイクロソフトに対して無能とは大胆だな
396デフォルトの名無しさん:2013/12/19(木) 20:06:49.13
文章読めないんじゃしょうがないな
397デフォルトの名無しさん:2013/12/19(木) 20:08:29.33
>>393
VC++を使っている奴が少ないせい(WinでC++使っている奴が少ない)で、文句言う奴がほとんどいなくて
たくさんのバグが放置されているんだよ
VC++はユーザー少ないから新C++への対応すらあんまりやる気なしだし
MSはWinではC/C++ではなくC#等を使えだし
398デフォルトの名無しさん:2013/12/19(木) 20:17:57.95
VCの%zuや%tdはどう考えても意図的
C99が嫌いなんだろ
399デフォルトの名無しさん:2013/12/19(木) 20:22:51.56
zu対応してるのか?
400デフォルトの名無しさん:2013/12/19(木) 20:37:00.96
2つ前のレスくらい読め
401デフォルトの名無しさん:2013/12/19(木) 20:37:07.85
MSのC/C++は「御託はいいからVC6使わせろよ」と叫ぶ人向けの製品
lambdaじゃVariadic templatesじゃ言うヤツ等は対象外
402デフォルトの名無しさん:2013/12/19(木) 20:38:11.32
>>401
どのへんが対象外なのかkwsk
403デフォルトの名無しさん:2013/12/19(木) 20:40:45.12
WinのC/C++ってVC6だしね
404デフォルトの名無しさん:2013/12/19(木) 20:51:27.12
>>403は無知だなあ
1998年にvc6が出た後も、2002,2003,2005,2008,2010,2012,2013
とバージョンアップして
ラムダもVariadic templatesもあるのに
405デフォルトの名無しさん:2013/12/19(木) 21:24:36.96
>>382
拡張子 .c にしとけば C++ の機能使ったらエラーになるよ。
406デフォルトの名無しさん:2013/12/19(木) 21:32:10.25
auto fuck() const throw() -> void final override {}

どうしてG++はこんな簡単なコードすら
マトモにコンパイルできないのですか?
407デフォルトの名無しさん:2013/12/19(木) 21:43:39.54
g++ではoverride finalを->の前にお書き下さい
408デフォルトの名無しさん:2013/12/19(木) 21:48:04.33
VC6しか知らん奴だったのか 納得
409デフォルトの名無しさん:2013/12/19(木) 21:59:09.70
VC6: 1998年6月
C++98: 1998年9月
これマメチな
410デフォルトの名無しさん:2013/12/19(木) 22:16:45.65
VC2013になってもC++11をフルサポートしないってMSはC++やる気なしだよな
411デフォルトの名無しさん:2013/12/19(木) 22:18:04.98
11に拘ってるのおまえらだけだからな
412デフォルトの名無しさん:2013/12/19(木) 22:19:26.45
413デフォルトの名無しさん:2013/12/19(木) 22:22:47.98
2012年9月出荷のコンパイラが2011年9月の規格をフル実装
してないからやる気がないだなんて
MSをけなしたいだけに思えてならない。
よほどMsが嫌いなんだな
414デフォルトの名無しさん:2013/12/19(木) 22:27:26.65
>>411
そうそう、WinのC++はVC6で十分
VSは言語なんてどうでも良い。IDEがすべて
415デフォルトの名無しさん:2013/12/19(木) 22:38:36.76
言語(バージョン)が関係ないというやつほど
最新版がいいだろ。
バグや性能など面で。
416デフォルトの名無しさん:2013/12/19(木) 22:43:18.55
VSで使えないならC++11の価値は十分の一。
VSで使えてこそ意味がある。
C++の流行り廃りはMSにかかってる。
417デフォルトの名無しさん:2013/12/19(木) 22:53:18.24
みんなもうちょっと開発環境のモジュール化してくれればいいのに
好きなエディタとコンパイラーとリンカーとデバッガーを組み合わせて統合したい
418デフォルトの名無しさん:2013/12/19(木) 23:13:02.47
エディタとコンパイラとリンカまでなら自作でもそう難しくない
だがデバッガは選択肢がほとんどないし
インテリセンスまで統合するには難易度が跳ね上がる
419デフォルトの名無しさん:2013/12/19(木) 23:20:36.01
clangのおかげでインテリセンス相当のものは色んなエディタで使えだしてるよ。
420デフォルトの名無しさん:2013/12/19(木) 23:23:41.16
>>415
最新版の方がバグが少ないの?
最新版の方が性能がいいの?
いみわからん
421デフォルトの名無しさん:2013/12/19(木) 23:29:42.17
おまえがなー
性能劣化してたら新バージョン出す意味が無い
422デフォルトの名無しさん:2013/12/19(木) 23:35:47.32
最新!高機能化!複雑化!盛りだくさんのバグ!
423デフォルトの名無しさん:2013/12/19(木) 23:35:46.98
あまり見つからないがバージョン比較



http://crystalmark.info/special/VisualC71.html

VisualC++ 7.1 の衝撃 [ 2003/08/14 ]
VisualStudio .NET 2003 の VisualC++ 7.1 はついに Pentium 4 最適化機能が実装されました。

VC7.1 で新たにサポートされた G7 オプションは Pentium 4 および Athlon に最適化されるそうで、適用したところ一部で非常に大きな効果がありました。


CrystalForce 400K (Pentium 4 HT)
QuickSort / RandMeanSS / Mandelbrot において劇的に性能が向上していることがわかります。
以前、NetBurst は予測困難な条件分岐に弱い(パイプラインの段数が多いため) ということが頻繁に取り上げられており、
私も Mandelbrot のように条件分岐のオンパレードな処理は苦手と考えていたのですが、どうやらコンパイラの改良で改善できる問題のようですね。

CrystalForce 500K (Moble Athlon XP)
RandMeanSS で神がかり的なスコアアップを果たしています。

総評
ここまでコンパイラで違うものなのか!! というのが正直な感想です。G7 オプションですが、Pentium III でも大きな効果があるようですね。
VisualC++ 7.1 マイナーバージョンアップかと思いきやこいつはとんでもない魔物のようです。
数値計算を Windows でやっている方は必須のバージョンアップではないでしょうか!!
424デフォルトの名無しさん:2013/12/19(木) 23:46:53.04
>>421
それが論拠かよwww
425デフォルトの名無しさん:2013/12/20(金) 00:04:49.71
未だにVC++6が最高だと思ってるような老害は放置してあげてください。
本人はそれが幸せなんです。
426デフォルトの名無しさん:2013/12/20(金) 00:07:03.32
C++11とVC6の二択だと思ってるの?
427デフォルトの名無しさん:2013/12/20(金) 00:20:53.94
>>425
MSDNの使い勝手はVC6のが最高。
ただ、ひたすら内容が古い。
428デフォルトの名無しさん:2013/12/20(金) 01:41:34.97
たとえばwindowprocedureの中身だってlambdaを使えば小奇麗に処理関数を呼べるのに前世紀のHANDLE_MSGマクロのままだろ?
429デフォルトの名無しさん:2013/12/20(金) 01:48:06.32
で?
430デフォルトの名無しさん:2013/12/20(金) 02:15:24.56
言語(バージョン)が新しいと
バグが少ない
性能がいい
小奇麗に書ける
431デフォルトの名無しさん:2013/12/20(金) 02:20:09.36
バグと性能に関しては前バージョンよりも悪いことはあり得ると思うが
特に言語の規格が変わったあとはコンパイラが追い付いてないこともあるぞ
432デフォルトの名無しさん:2013/12/20(金) 02:29:50.99
11推しの奴は言語verとソフトverがごっちゃになってる

バグの多い少ないは、そのソフトがどれくらい保守されてるかによるから、
マイナーバージョンが大きい(保守された回数が多い)方が少ない。メジャーバージョンだけ大きい場合はバグが多いと思った方がいい

性能は何の性能のことだよ
ビルド速度ならハードが同じなら古いバージョンの方が速い=性能が高い。これは言語verには無関係
ビルドされたバイナリの実行速度も同じ。言語verにはほぼ無関係

小奇麗に書けるってのは…
ソースの綺麗な書き方を知らないだけだろw
うまい奴が作ったマクロばりばり書式なんて読みやすくて笑えるぞ
433デフォルトの名無しさん:2013/12/20(金) 02:56:44.38
VCのメジャーバージョンは、IDEとのセット販売に合わせてあげてるだけだろ。
中身は新規開発でなく以前改良だろ。
434デフォルトの名無しさん:2013/12/20(金) 03:14:11.88
一般的にメジャーうpはそれ以前のバージョンに比べて変更箇所が多い
変更箇所が多い分だけバグの可能性も高まる
新規だから、改良だからってのとは無関係だよ
435デフォルトの名無しさん:2013/12/20(金) 03:21:33.15
一般じゃねえ。明らかに統合環境の販売のときにあげてるだろ。
コンパイラは大して変わってなくても、変わっていても、
他との都合でメジャーバージョンが上がる。
436デフォルトの名無しさん:2013/12/20(金) 03:30:59.78
>>434の言うバグ=IDEを含めた開発ソフト全体でのバグ
>>435の言うバグ=VSに含まれるC++コンパイラツールのバグ

どっちもソフトのバグの話題。言語バージョンのバグ(=C++仕様上のバグ)とは関係がないな
437デフォルトの名無しさん:2013/12/20(金) 03:56:17.27
432は15年前で脳の進化が止まったようで
哀れ過ぎる
438デフォルトの名無しさん:2013/12/20(金) 04:56:57.45
>>432
ビルド速度を高速化する修正とかもよくあるから一概には言えない。
実行速度も最適化アルゴリズムの修正とかもあるから一概には言えない。
メジャーバージョンが上がってたらそれこそ修正もありえるだろう。
439デフォルトの名無しさん:2013/12/20(金) 04:59:18.15
long double が無くなって(泣)
440 ◆QZaw55cn4c :2013/12/20(金) 06:24:59.05
>>439
80bits "long double" とか long long integer(爆笑) とか、修飾子を恥も外聞も問わずに接着して型を生み出そうという仕様は言語仕様としてはウンコだ
ウンコがいうんだから間違いない
long long は流布されている MSVCRT.dll が対応していないとか、いまだに迷惑している、これもいいかげんなんとかしてほしい
441デフォルトの名無しさん:2013/12/20(金) 06:52:47.63
>long long は流布されている MSVCRT.dll が対応していない

MSVCRT.dllを使う人がいたとは知らなかった
442デフォルトの名無しさん:2013/12/20(金) 06:58:26.79
実際の話、windowsのVSのVC++のmfc使ってる人ってどんだけいんの?
Qt使ったほうが万全良いと思うのですが。
443デフォルトの名無しさん:2013/12/20(金) 07:16:00.16
>>441
つcygwin
444デフォルトの名無しさん:2013/12/20(金) 07:51:12.02
>>443
cygwinとやらに内蔵のコンパイラーがMSVCRT.dllとリンクするクソ設計になっているのか。
それはcygwinがlong longに対応していないと言うべきだ。
Windows自体はC++の開発環境機能を持たないんだから
んなものはコンパイラが用意すべき
445デフォルトの名無しさん:2013/12/20(金) 13:05:28.31
long longに対応してないの意味がわからん
全部の関数にlong版とlong long版を用意しろというのか??
446デフォルトの名無しさん:2013/12/20(金) 15:36:42.17
プログラムのメモリサイズをls -lで確認するお笑い芸人の新しいギャグだろ
447デフォルトの名無しさん:2013/12/20(金) 16:00:43.19
>>445
printfが%lldを認識しないってことでは
448デフォルトの名無しさん:2013/12/20(金) 17:07:46.33
>>440
>ウンコがいうんだから間違いない
自分がUNKOだという自覚はあるのですね。
449デフォルトの名無しさん:2013/12/20(金) 18:00:38.87
QZのなりすましはスルーして下さい。
450デフォルトの名無しさん:2013/12/20(金) 20:55:59.29
winでC++は超少数派なんだから、いい加減対応で問題ないよ
451デフォルトの名無しさん:2013/12/20(金) 21:30:49.39
は?
452デフォルトの名無しさん:2013/12/20(金) 21:38:40.57
はぁ?
453デフォルトの名無しさん:2013/12/20(金) 21:44:43.91
はぁぁ?
454デフォルトの名無しさん:2013/12/20(金) 22:35:43.42
はぁぁぁ、hoge?
455デフォルトの名無しさん:2013/12/21(土) 00:15:06.65
char* aaa()
{
char result[4]={0};
return strcpy(result,"aaa");
}
はだめだとおもいますが、
char* bbb()
{
return "bbb";
}
は良いのでしょうか?
456デフォルトの名無しさん:2013/12/21(土) 00:34:47.55
そのresultは関数の中のローカル変数で、strcpyの返り値だが、関数を抜けるとスコープからも抜けて無効な値になる
一報文字列リテラルは内部的にstatic char[]なのでスコープを抜けても有効
457デフォルトの名無しさん:2013/12/21(土) 00:38:40.30
>>455
constつけないと拙い。
458デフォルトの名無しさん:2013/12/21(土) 01:32:19.83
初心者ではないですがw、
デストラクタが走って、内部メモリがクリアされるのは
return が終わってからですよね。
a=func();
459デフォルトの名無しさん:2013/12/21(土) 03:25:42.01
>>458
その func() は、セミコロンまで
a はスコープを抜けるまで
460デフォルトの名無しさん:2013/12/21(土) 04:59:43.04
>>456-457はアスペ
「その通りだが呼び出し側でメモリを用意してそこにコピーしろ」
と言うべきだ
errno_t manko(char *restrict p_result, rsize_t result_size)
{
return strcpy_s(p_result, result_size, "aaa");
}
461デフォルトの名無しさん:2013/12/21(土) 05:40:13.32
今時そんなクソコードで「べき」とか
462デフォルトの名無しさん:2013/12/21(土) 05:53:43.10
A: その回答はアスペだな。Xすべき
B: そんなクソコードで「べき」とか

Bはコミュ障
「回答が質問者の背景を考慮できていないのではないか」
という指摘が理解できなかった
463デフォルトの名無しさん:2013/12/21(土) 06:10:47.22
>strcpy_s
マイクロソフト大勝利だな
464デフォルトの名無しさん:2013/12/21(土) 06:29:10.00
bbb()はconst無いと駄目なコードだけど、const付いてれば何の問題も無いコードだろ
const char*返せばいい場所で一々文字列コピー要求されるとかの方がクソだと思う
465デフォルトの名無しさん:2013/12/21(土) 06:42:09.46
>const無いと駄目
どして?
466デフォルトの名無しさん:2013/12/21(土) 06:42:41.91
書き換えられないから
467デフォルトの名無しさん:2013/12/21(土) 06:46:03.44
文字列リテラルの型ってconst char[]だよな?
char*に文字列リテラル代入してもエラー出さないコンパイラが多いけど、これってCの仕様的にはどういう挙動なの?
468デフォルトの名無しさん:2013/12/21(土) 06:47:36.13
エラーを出さないのが仕様です
でも書き込んだら困ります
469デフォルトの名無しさん:2013/12/21(土) 06:55:39.55
constは無くてもOKです
書き込んだらだめなだけです
470デフォルトの名無しさん:2013/12/21(土) 08:23:11.36
プログラミングは、C言語から勉強しだして→C++→java(基礎)
→C#→Android(java)ってな感じで、今はAndroidアプリ
の製作を中心にやってるけど
C言語での質問で、アセンブラの知識は無いんですが
char *str="abc";
ってのがあったとして
アセンブラ的には
&strの番地(仮に123として)から
123にはa
124にはb
125にはc
126には0
が入ってると思って良いでしょうか?
間違ってたら、ご教示願います。
471デフォルトの名無しさん:2013/12/21(土) 08:32:18.04
>>470
&strの値(str変数そのものの番地、仮に0x0100)、
strの値("abc"の番地、仮に0x0123)として、
リトルエンディアンの4バイトポインタで考えると

0x0100 23 (ココから4バイトで0x0123)
0x0101 01
0x0102 00
0x0103 00

0x0123 61 ('a')
0x0124 62 ('b')
0x0125 63 ('c')
0x0126 00 ('\0')
472デフォルトの名無しさん:2013/12/21(土) 10:03:18.57
>>467
K&Rの初版本を100回読み直せ。
そういう事だ。
ROM焼きの障害になっている。
473デフォルトの名無しさん:2013/12/21(土) 10:43:14.87
K&Rを持ち出すなんてどれだけ労害なんだ
KoReanか?
474デフォルトの名無しさん:2013/12/21(土) 11:05:34.76
>>467
確か、本来は const 付きが正しいけど、過去の経緯で const 無しでもエラーにしてないとかだったかと。
475デフォルトの名無しさん:2013/12/21(土) 11:08:46.18
>>470
&str -> 0x2000
str -> 0x1000 (&str[0])

str[0] -> 0x2000 -> 'a'
str[1] -> 0x2001 -> 'b'
str[2] -> 0x2002 -> 'c'
str[3] -> 0x2003 -> '\0'
476デフォルトの名無しさん:2013/12/21(土) 11:10:09.56
コピペの恐怖
&str -> 0x1000
str -> 0x2000
477デフォルトの名無しさん:2013/12/21(土) 12:30:50.79
>>469
だから「拙い」と書いているのに。
478デフォルトの名無しさん:2013/12/21(土) 13:01:01.85
linuxだと実行時にOSがはねてくれるんだっけ?
昔某コンパイラで同一内容をもつリテラルのメモリ共有+書き換え可能の凶悪なコンボをみたことがあるけど
479デフォルトの名無しさん:2013/12/21(土) 19:35:52.49
>linuxだと実行時にOSがはねてくれるんだっけ?

それはコンパイラーが出力するコードに依存します
480デフォルトの名無しさん:2013/12/21(土) 21:15:30.24
メンバ関数名を取得したいです。

printf("aaa:bbb()");
と書けばいいのですが、文字列を一々編集するのが面倒なので。。。
481デフォルトの名無しさん:2013/12/21(土) 21:22:21.82
>>480
つ[__func__]
482デフォルトの名無しさん:2013/12/21(土) 21:30:26.93
具体的なコードでお願いします
483デフォルトの名無しさん:2013/12/21(土) 21:42:16.90
つ[puts(__func__);]
改行要らなきゃfputs(__func__, stdout)とでもかえとくれ。
484デフォルトの名無しさん:2013/12/21(土) 22:04:28.43
>>478-479
コンパイラとリンカとOSのローダとOSの仮想メモリ機構に依存する。
どこかの段階で書き換え可能にマークされたらLinuxだろうがWindowsだろうが御仕舞い。
485デフォルトの名無しさん:2013/12/21(土) 23:06:10.31
>>480
つ char* GiveMeMemberFunctionName() const;
486デフォルトの名無しさん:2013/12/22(日) 09:17:16.30
>>472
おまえ、まだK&R100回とか言ってんの?
気色悪いですよ
487デフォルトの名無しさん:2013/12/22(日) 09:25:24.98
そいつ、トリはずしたお笑い芸人 放置推奨
488デフォルトの名無しさん:2013/12/22(日) 16:59:53.45
継承元のpulicなメンバ変数を継承先のコンストラクタで初期化しようとしています。

class クラス1
{
public:
int クラス1のメンバ変数;
};

class クラス2 : public クラス1
{
public:
クラス2(int x0):クラス1のメンバ変数(x0){}
};

'クラス2' : イニシャライズ リスト内のクラス 'クラス1のメンバ変数' が基本クラスでもメンバーでもありません。
と怒られます。

なにが悪いのでしょうか?
489デフォルトの名無しさん:2013/12/22(日) 17:05:17.38
> 継承元のpulicなメンバ変数を継承先のコンストラクタで初期化しようとしています
継承元のコンストラクタで初期化してください
490デフォルトの名無しさん:2013/12/22(日) 17:37:32.40
どうしてもやりたいなら{}の中でやれ
491デフォルトの名無しさん:2013/12/22(日) 17:49:46.10
今日は”中はダメ”っていわれましたorz
492デフォルトの名無しさん:2013/12/22(日) 18:35:13.58
>>488
class クラス1
{
public:
 int クラス1のメンバ変数;
 クラス1(int i): クラス1のメンバ変数(i) {}
};

class クラス2 : public クラス1
{
public:
 クラス2(int x0): クラス1(x0){}
};
493デフォルトの名無しさん:2013/12/22(日) 18:47:06.97
日本語のエラーメッセージ読めないなら、チョーセン語のコンパイラ使えよ
494デフォルトの名無しさん:2013/12/22(日) 23:36:30.07
495デフォルトの名無しさん:2013/12/23(月) 00:20:20.92
>>493
死ねネトウヨ
あんま調子こいてると◯◯ぞ。
496デフォルトの名無しさん:2013/12/23(月) 00:25:32.89
キモっ
497デフォルトの名無しさん:2013/12/23(月) 00:37:14.92
わざわざAgeんな
498デフォルトの名無しさん:2013/12/23(月) 00:39:16.23
よーしパパ上げちゃうぞ〜
アゲアゲ〜
499デフォルトの名無しさん:2013/12/23(月) 01:38:31.53
age
500デフォルトの名無しさん:2013/12/23(月) 02:42:34.45
B&&型ってなんぞ(ヽ´ω`)
501デフォルトの名無しさん:2013/12/23(月) 06:27:24.79
すいませんが教えて下さい。
最適化をさせないために、volatileを、付けますが
最適化の弊害とは、例えばどういうコードが弊害に
なるのでしょうか?
以前にも、同じ質問して、レス頂いたのですが
そのレスの内容をコピペして保存するのを忘れてしまいました。
二度手間で恐縮ですが、再度
ご教示願います。
本当にすいません。
502デフォルトの名無しさん:2013/12/23(月) 07:12:40.35
503470:2013/12/23(月) 07:53:54.52
>>471さん
>>475さん
すっごい遅レスで申し訳ありません。
471さんの例を見て、アセンブラの知識は
ほぼ皆無ですが自分なりに解釈すると
まず0x0100番地に&strの番地があり
0x0100番地の値?から論理和でstrの番地
に、飛んでると思って良いでしょうか?
504デフォルトの名無しさん:2013/12/23(月) 08:38:49.98
>>494
こんな書き方できるんだ
初めて見た
505494:2013/12/23(月) 08:43:41.97
>>504
ネタのトリックコードを真に受けないでください
506デフォルトの名無しさん:2013/12/23(月) 09:05:57.30
>>504
できないから質問してんじゃねーの
507 ◆QZaw55cn4c :2013/12/23(月) 09:24:30.02
>>501
volatile をつけた変数は、

@それがアドレス空間に存在すること
A volatile 変数へのアクセス記述を端折ったりされなくなること
が保証される。

volatile int flag;
flag = 1;
flag = 1;
flag = 1;
とかけば、flag はアドレス空間に実在し、かならず三回 flag =1; を実現するコードが生成される。
ただし排他制御は別に自分で記述しなければならない。

他になにかあったかな?
508デフォルトの名無しさん:2013/12/23(月) 10:36:53.71
>>501
Qzとかいうゴミカスの炎上学習法(でたらめ教えて訂正してもらう)に
巻き込まれちゃったね、このスレのレスは信用すんなよ
509デフォルトの名無しさん:2013/12/23(月) 11:00:59.14
>>501
ぐぐれば過去スレぐらいみつかるんじゃないの?
http://archive.2ch-ranking.net/tech/1379742800.html
の960でしょ?
510デフォルトの名無しさん:2013/12/23(月) 11:01:48.54
1.確認
USBメモリを用意します
やや大きめのファイルをUSBに書き込みます
ディスクをクローズする手順を省いていきなりUSBを抜きます
再びUSBを差し込んで内容を確認します

2.比較
USBメモリの表面に「ぼらたいる」と書きます
1.と同じ操作を行います
結果を比較してください
511デフォルトの名無しさん:2013/12/23(月) 11:04:17.10
>>501

bool flag;
void func(void)
{
while(flag) {
処理
}
}
この場合最適化でwhile(true)に置き換えられるが
volatileを付けるとwhile(flag)のままになる
512デフォルトの名無しさん:2013/12/23(月) 11:27:16.99
>>511
> この場合最適化でwhile(true)に置き換えられる

そんな処理系見たことねー
513デフォルトの名無しさん:2013/12/23(月) 12:10:31.58
>>511

10年前の書籍を斜め読みしただけの知識で偉そうに最適化について
語んじゃねーよ どうせADW本だろw
514デフォルトの名無しさん:2013/12/23(月) 12:15:29.15
肥え煮具
515デフォルトの名無しさん:2013/12/23(月) 12:35:58.10
call clobber
516デフォルトの名無しさん:2013/12/23(月) 12:51:23.64
>>507のQzは嘘つきなので信じないでください
517デフォルトの名無しさん:2013/12/23(月) 20:13:31.73
ls -lをしのぐネタの仕込み中なんだろ
518 ◆QZaw55cn4c :2013/12/23(月) 20:31:30.37
extern は要らない子っ!
519デフォルトの名無しさん:2013/12/23(月) 20:31:51.72
>>517
同じネタばかり繰り返して痴呆症って言われない?
520デフォルトの名無しさん:2013/12/23(月) 20:34:37.63
あれに匹敵するのは
you is a big fool man!
くらいしか知らないからねえ

お前もっとすごいの知ってんの?
521デフォルトの名無しさん:2013/12/23(月) 20:41:17.99
宿題を有料で解くスレは linux で kbhit を作ってくれというお題で、海外サイトのコピペでモリタポをせびった、とかはどう?
522デフォルトの名無しさん:2013/12/23(月) 22:12:03.85
externが無いとerrnoみたいなグローバル変数が使えなくね?
523デフォルトの名無しさん:2013/12/23(月) 23:42:35.98
マルチスレッド対応でそれぞれスレッド固有にする為に
グローバル変数になっていない実装もあるよ < errno
524デフォルトの名無しさん:2013/12/24(火) 01:28:01.20
ああそうよかったね
525 ◆QZaw55cn4c :2013/12/24(火) 01:56:57.79
>>522
extern なくても C ならば何の問題もなくコンパイルできるよ、仮定義(tentative definition)、ていうんだよ
526501:2013/12/24(火) 04:08:51.15
>>509
わざわざ申し訳ありません。
それです。
527デフォルトの名無しさん:2013/12/24(火) 04:20:20.99
>>503
>まず0x0100番地に&strの番地があり
&strは変数strの存在する場所を取得する「式」で「式」は「値」を持つけれど計算過程で出る「値」だから「番地」なんてないよ。
a=1+2;ってあった場合「1+2」って「式」は「3」って「値」を持つけど「番地」なんて無い。
&strって「式」で得られる値が(仮に)0x0100であったりするだけ。
>論理和でstrの番地
イミフ。どっから論理和なんて出てきた。

もういいから普通のアセンブラをいっぺん学んで来い。
528デフォルトの名無しさん:2013/12/24(火) 08:23:20.81
525はどうしようもない馬鹿
529デフォルトの名無しさん:2013/12/24(火) 08:26:39.16
>>527
>「番地」なんてない
&strは「0x100番地」という値を生み出す式だろ
何を言っているんだオヌシは
530デフォルトの名無しさん:2013/12/24(火) 08:51:29.59
>>529
strの番地は&strで取れるけど&strの番地なんてねぇよ。
531デフォルトの名無しさん:2013/12/24(火) 11:27:01.83
つ **
532デフォルトの名無しさん:2013/12/24(火) 11:32:15.78
)**( ケツの穴が二つになっちまった
533デフォルトの名無しさん:2013/12/24(火) 11:36:31.39
&&strでダメだっけ?
534デフォルトの名無しさん:2013/12/24(火) 12:11:50.99
&42
を考えてみろ
535デフォルトの名無しさん:2013/12/24(火) 12:22:35.33
&42は値42のアドレスを示してるわけだよね?
&&42なら42のアドレスを指すアドレスがとれなかったっけ?
536デフォルトの名無しさん:2013/12/24(火) 12:28:17.59
自分で試せばわかるだろ
537デフォルトの名無しさん:2013/12/24(火) 12:37:28.35
アセンブリというかCPUわかんないとそうなるよね
538デフォルトの名無しさん:2013/12/24(火) 12:49:56.33
んなもん、ブラックボックスのままでも理解できるだろう。
単に、メタ思考ができるかどうかだ。
539デフォルトの名無しさん:2013/12/24(火) 12:56:20.00
意味がわからん
もちっと噛み砕いて教えて下さい
540デフォルトの名無しさん:2013/12/24(火) 13:09:16.40
int i=42;
int *ip=&i;
だとすると

iが 0x10 42

&iとipが 0x12 0x10

&(&ip) が「&i」の演算を行ったアドレスである0x12

じゃないの?
541デフォルトの名無しさん:2013/12/24(火) 13:22:20.40
load effective address = &演算子
542デフォルトの名無しさん:2013/12/24(火) 13:22:24.16
int i=42;
int *ip=&i;
だとすると

iが アドレス0x10 値42

&iとipが アドレス0x12 値0x10

&(&i) が「&i」の演算を行ったアドレスである0x12

じゃないの?

だった
543デフォルトの名無しさん:2013/12/24(火) 13:53:38.50
反論
int i = 42;
int *ip = &i;
int *ip2 = &i;
とする
ipとip2は(今たまたま偶然一緒の値を持った)別の変数なので当然別のアドレスが割り当てられているが
では、君の見解だと&&iは何になるのか?
544デフォルトの名無しさん:2013/12/24(火) 13:56:54.21
>>543
おお、演算のたびに変わる不定の値ってことですね!
545デフォルトの名無しさん:2013/12/24(火) 14:01:01.42
>>544
そうじゃないよ

そもそもint *ipを定義しないで&&iを使ったらどうなると思ってるの
546デフォルトの名無しさん:2013/12/24(火) 14:02:02.65
>>544
まだなんかおかしいな。
&i の演算に追加のメモリが使われるとも限らない。
したがって「アドレス」というものも存在しないかもしれない。
(追加のメモリが必要な別の演算(?)についてはその理解で近いかもしれない。)

いずれにしてもそんな不安定な要素はユーザーから使えないように言語仕様側で配慮されてる。
ここでいうと &&i がコンパイルエラーになるように。
547デフォルトの名無しさん:2013/12/24(火) 14:11:38.07
&iを算出する際にメモリが使われないかもしれないし
そもそも参照できないってことですよね?
548デフォルトの名無しさん:2013/12/24(火) 14:15:58.81
はい
549デフォルトの名無しさん:2013/12/24(火) 14:20:29.33
わかりやすい説明ありがとうございました!
550蛇足:2013/12/24(火) 14:45:57.50
変数にはメモリが割り当てられるって前提でコードを書けるものの、
実際に変数にメモリが割り当てられるかは最適化次第で変わるけどな。
int i=42;printf("%d\n",i);
をコンパイルしてもiにメモリが割り当てられない場合もあるけれど、
int i=42;printf("%p\n",&i);
をコンパイルするとiにメモリが割り当てられる事が期待できるとか。
551デフォルトの名無しさん:2013/12/24(火) 14:47:00.97
そんな事言ってたら&&&&&&iとかどうなんのっと
552デフォルトの名無しさん:2013/12/24(火) 15:06:42.24
int i=42;
でメモリが割り当てられていなかったら42というのはどこに保存されてるの?
553デフォルトの名無しさん:2013/12/24(火) 15:13:13.15
メモリ上のどこか
554デフォルトの名無しさん:2013/12/24(火) 15:23:09.95
>>552
コードを解釈した結果、変数としてメモリに割り当てる必要がないと判断した場合はメモリを割り当てないということ。
レジスタに置いているかもしれないし、そもそも使われないかも知れない。
例えば、int i = 42;と定義していても、そのiを使わないのであればコンパイラは何もしないかもしれない。
555デフォルトの名無しさん:2013/12/24(火) 15:23:56.74
>>552
例えばprintf("%d\n",42);のようにプログラムコードに埋め込まれる
一箇所に埋め込まれるとは限らないし元の値を保っていない可能性もある
int i=100,j=rand();printf("%d\n",j/i);とかだと逆数の1<<32倍だかそういう値として埋め込まれるんじゃないかな
556デフォルトの名無しさん:2013/12/24(火) 15:24:42.25
int i=42;printf("%d\n",i);

printf("%d\n",42);
に最適化されるってことでしょ
557デフォルトの名無しさん:2013/12/24(火) 15:34:19.84
いや、>554の最後の行はprintf()さえしないケースだ。
558デフォルトの名無しさん:2013/12/24(火) 15:53:57.28
>>552
イミディエイトになる場合がある
559デフォルトの名無しさん:2013/12/24(火) 16:52:08.22
>>558
その説明がわかる相手だと思うのか?w
560デフォルトの名無しさん:2013/12/24(火) 17:46:54.21
>>558
ttp://baito.mynavi.jp/cl/002160706061/
こういう場合ですね(キリッ
561デフォルトの名無しさん:2013/12/24(火) 19:44:20.59
整数除算で、割る数がリテラルの場合、掛け算になったりするよね。除算器がないマイコンとか。
562デフォルトの名無しさん:2013/12/24(火) 20:02:36.58
除算器があっても除算は遅いから、普通のコンパイラなら掛け算にするね。
実数除算の場合も2の冪だったら掛け算にすると思う。
563デフォルトの名無しさん:2013/12/24(火) 20:04:24.87
そんな時代もあったよね
今は、全部1クロックでできるんだから恐ろしい時代になったものだ
564デフォルトの名無しさん:2013/12/24(火) 20:33:27.07
いやむしろパイプラインが当たり前になったから加算すら、最悪NOPですら1クロックじゃ終わらねぇぞ
スループットなら1クロックになるかもだが
565デフォルトの名無しさん:2013/12/24(火) 20:38:54.51
パイプラインが当たり前になったのって20世紀末だったような
タイムワープでもしてきた?
566デフォルトの名無しさん:2013/12/24(火) 20:47:52.74
パイプラインって消滅したの?
567デフォルトの名無しさん:2013/12/24(火) 21:08:13.80
パイプラインって言われると石油を連想してしまう
568デフォルトの名無しさん:2013/12/24(火) 21:09:38.07
埋まらないパイプライン問題がOoOの一般化でスルスルになったのが90s後半
569デフォルトの名無しさん:2013/12/24(火) 23:34:45.50
>埋まらないパイプライン問題がOoOの一般化でスルスルになった

何いってるかちょっとわからないのでkwsk
570デフォルトの名無しさん:2013/12/25(水) 02:17:18.76
簡単にいえばウ○コの太さは食事量で決まるって事かな
消化器機能の分化度はあんまし関係ない
571デフォルトの名無しさん:2013/12/25(水) 08:06:31.99
アホみたいにパイプラインを長くして
もせ3エンコ以外には使えないと噂されて
実際その通りだったPentium 4は21世紀だった様な気が。
スルスルだなんてとんでもない
572デフォルトの名無しさん:2013/12/25(水) 08:49:11.50
>>570
今朝、寝ながらオナラして
うんこ漏れたかもと思って急いでトイレ駆け込んだわ
573デフォルトの名無しさん:2013/12/25(水) 09:46:03.97
CPUキャッシュのサイズが〜とか前世紀末には言ってた気がする
574デフォルトの名無しさん:2013/12/25(水) 10:06:44.66
大丈夫、今世紀も言っている。
575デフォルトの名無しさん:2013/12/25(水) 22:53:26.21
重油のパイプラインって途中に穴が空けられて
少しずつ盗まれてるらしいな
576デフォルトの名無しさん:2013/12/25(水) 22:59:38.50
>>575
A重油?B重油?
577デフォルトの名無しさん:2013/12/25(水) 23:05:59.98
>>576
そこまで詳しく知らんw
貧困で苦しむ国のドキュメンタリーか何かでやってた

それでさらにそういう盗人専用のガソリン精製屋がいて
盗んだ重油をそこに持ち込むとガソリンを精製してしてもらえるらしい

そしてそれを道端で売って生活の足しにするそうな
578デフォルトの名無しさん:2013/12/26(木) 02:56:57.89
重油は精製済みなので、そこから揮発性の高いガソリンは
作れないかと。A重油であれば軽油替わりに使う事は可能。
原油と勘違いしているのではないかと
579デフォルトの名無しさん:2013/12/26(木) 04:35:07.74
原油って粘度差とか不純物凄そうなんだけどパイプに流して詰まったりしないのかな。
>>578
原油の精製って結構コスト掛かるんじゃないの?
580デフォルトの名無しさん:2013/12/26(木) 04:55:30.69
&&&&&func;
*****fuck;
581デフォルトの名無しさん:2013/12/28(土) 00:55:32.32
STLについて教えてください
vectorに同じ値(int)を入れてsortとすると
invalid operator< とエラーが出てしまいます。

std::vector<int> v;
v.push_back(1);
v.push_back(1);
std::sort(v.begin(),v.end(),std::not2(std::less<int>()));

回避策は無いでしょうか?
582デフォルトの名無しさん:2013/12/28(土) 01:20:35.60
>>581
std::not2(std::less<int>()) は Strict Weak Ordering にならないからね。
http://d.hatena.ne.jp/Cryolite/20040529#p3

逆順ソートがしたいなら greater<int> でいいんじゃね?
583デフォルトの名無しさん:2013/12/28(土) 04:55:21.72
>>581
>回避策は無いでしょうか?
STLという言葉を使う奴は本当に馬鹿だな
間違っているからエラーになるわけで
「正しい書き方を教えて下さい」って言うんだよ
584デフォルトの名無しさん:2013/12/28(土) 10:38:18.17
エラーになるのはSTLのバグです( ー`дー´)キリッ
585デフォルトの名無しさん:2013/12/29(日) 08:10:57.24
STLなどという用語を使う人の頭がバグです
586デフォルトの名無しさん:2013/12/29(日) 12:47:36.43
>>581
これでエラーを出さないBCCも相当糞だな
VCかgccだけにしようっと
587デフォルトの名無しさん:2013/12/29(日) 12:59:13.66
std::vector<int> v;
v.push_back(1);
v.push_back(1);
std::sort(std::begin(v), std::end(v), std::not2(std::less<int>()));
for (int i : v)
 std::cout << i << " ";
std::cout << std::endl;

おい、これgccでもエラーでないぞ
何かオプション付けないとだめなの?
588デフォルトの名無しさん:2013/12/29(日) 12:59:20.76
っていうか、なんでエラー
イミフなんだけど、同じ値が入ってるから?
同じ値が入ってるときはsortできないって・・・
STLも糞だなw
589デフォルトの名無しさん:2013/12/29(日) 13:02:03.60
>>588
決まりを守らない方が悪い
だったらSTL使うなよ
使っておいて文句言う資格はない
590デフォルトの名無しさん:2013/12/29(日) 13:13:03.10
エラーになるのはVC++のデバッグモードでの親切機能
591デフォルトの名無しさん:2013/12/29(日) 13:16:52.69
VCでは確かにエラーになるな
592デフォルトの名無しさん:2013/12/29(日) 13:21:30.97
>>589
使ってねーよ
だから、イミフってかいてんじゃんw

朝鮮人かよhw
593デフォルトの名無しさん:2013/12/29(日) 13:29:01.33
>>588
イミフなのはお前の頭のせい。>>582のリンク先読んだか?
同じ値があるとsort出来ないんじゃないよ
594デフォルトの名無しさん:2013/12/29(日) 13:31:08.60
馬鹿だから読んでも理解できない
595デフォルトの名無しさん:2013/12/29(日) 13:37:58.08
>>593
念のため言っておくけど、規格上はおかしな比較関数を渡した時点で同じ値が無くてもダメだよ。
596デフォルトの名無しさん:2013/12/29(日) 13:43:48.62
>>593
自分じゃ説明できないのねw
597デフォルトの名無しさん:2013/12/29(日) 13:44:27.10
hwってなんですか?
新手の煽り?
598デフォルトの名無しさん:2013/12/29(日) 13:49:27.40
はうー
599デフォルトの名無しさん:2013/12/29(日) 14:09:23.00
http://www.cplusplus.com/reference/algorithm/sort/

>comp
>Binary function that accepts two elements in the range as arguments,
>and returns a value convertible to bool. The value returned indicates
>whether the element passed as first argument is considered to go before the second
>in the specific strict weak ordering it defines.
>The function shall not modify any of its arguments.
>This can either be a function pointer or a function object.

というわけだから、compがStrict Weak Orderingじゃなかったら既に未定義なんですよ
ソートの結果がどうなるとかいうレベルの問題ではない
600デフォルトの名無しさん:2013/12/29(日) 14:15:49.01
まだやっとんのかいな〜
hitugi
601デフォルトの名無しさん:2013/12/29(日) 14:29:10.03
>>599
つおい
602デフォルトの名無しさん:2013/12/29(日) 15:07:34.85
使用通りではあるけれど「小さいかどうか」の
lessでソートする糞設計だからこういう誤りが簡単に起きる
603デフォルトの名無しさん:2013/12/29(日) 15:10:34.54
他人の作ったものに後出しで糞設計認定とか

だったらお前が作れよhw
604デフォルトの名無しさん:2013/12/29(日) 15:59:21.96
まるで小学生の「じゃあお前できるのか」発言だな。
動物園で「あのキリンさんだけ首短いね」という子供に
「短いというからにはお前はそのキリンよりクビが長いのか?」
というようなもの。
605デフォルトの名無しさん:2013/12/29(日) 16:09:24.11
>>604
たとえが的外れ杉 (w
606デフォルトの名無しさん:2013/12/29(日) 16:12:18.35
テレビで下手な歌を見て文句言う人にお前が歌えよ
というようなもん
607デフォルトの名無しさん:2013/12/29(日) 16:16:49.62
>>606
嫌なら見なければいいだろ

>>607
嫌なら見なくていいよ
608デフォルトの名無しさん:2013/12/29(日) 16:21:59.55
流れ読めてない奴がいるな
609デフォルトの名無しさん:2013/12/29(日) 17:00:35.08
610デフォルトの名無しさん:2013/12/29(日) 22:56:43.80
レスにリカージョンが使えるとわ勉強になりました
611デフォルトの名無しさん:2013/12/30(月) 10:50:58.32
>>606
それはおかしくないな
612デフォルトの名無しさん:2013/12/30(月) 10:51:00.96
> レスにリカージョン

単なる無限ループだろ
613デフォルトの名無しさん:2014/01/01(水) 20:20:46.03
大晦日に書き込みなしか
614デフォルトの名無しさん:2014/01/02(木) 13:11:42.48
hoge荒らしがスレ立て間違えて自粛してるからだろう
嵐がいなければこんなペースでいい
615デフォルトの名無しさん:2014/01/05(日) 11:05:50.11
クラスのポインタを突っ込んだlistのイテレータを取得して
そのクラスのメンバにアクセスしたいんだけど、
以下のコードで、「-> か ->* の左には構造体のポインタが必要」と怒られる。
どうすればメンバにアクセスできる?

std::list<TSampleClass *>::iterator itr = m_MyList.begin();
while (itr != m_MyList.end()) {
  int i = itr->member1;
  ++itr;
}
616デフォルトの名無しさん:2014/01/05(日) 11:08:40.41
(*itr)->
617615:2014/01/05(日) 11:09:38.08
>>616
ありがとう、死ぬほど助かった。
618デフォルトの名無しさん:2014/01/05(日) 11:33:44.30
はい、久しぶりに2次元配列扱おうと思ったらどっちがどっちだか忘れた
double x[2][3];

x[2]が3つあるって理解じゃダメなのか
619デフォルトの名無しさん:2014/01/05(日) 11:44:57.96
ex1)
int a[][3] = {{1,2,3,},{4,5,6,},};
ex2)
(x[0])[2] = 3.14;
620デフォルトの名無しさん:2014/01/05(日) 11:52:48.33
あくまで使うときに要素にアクセスする演算子だと思わなきゃダメなのか
621デフォルトの名無しさん:2014/01/05(日) 12:31:33.66
>>618
char s[3][128] = {"aaa", "bbb", "ccc"};
文字列が3つある

つまりx[2][3]は3つのまとまった数値が2つある
622デフォルトの名無しさん:2014/01/05(日) 17:41:33.64
型名のポインタやconstなんかの修飾順序が混ざってるのがなぁ…
int* a,b;だとaしかポインタにならないってTipsが有るとか残念過ぎる。
623デフォルトの名無しさん:2014/01/05(日) 17:48:06.50
>>622
そんな変な書き方をするからだ
int *a, b;
 int がdecl-specifier
 *a と b がそれぞれdeclarator
これでスッキリ
624デフォルトの名無しさん:2014/01/05(日) 17:53:21.81
>>623
そんなバッドノウハウが必要な修飾規則になってるのが残念だって言ってるんだよ。
625デフォルトの名無しさん:2014/01/05(日) 17:53:59.25
この程度でバッドノウハウとか頭湧いてますね
626デフォルトの名無しさん:2014/01/05(日) 18:38:02.20
言語仕様をバッドノウハウとかキチガイ。
言語仕様自体がKUSOというのならともかく。
627デフォルトの名無しさん:2014/01/05(日) 19:56:29.11
>>624
バッドノウハウとかあほじゃね

intという型のポインタa
intという型の変数b
当たり前やん
628デフォルトの名無しさん:2014/01/05(日) 19:59:51.70
C所見では引っかかるポイントだから気持ちはわかる
とりあえず、無理に、一行に複数書かなくていいんだぜ int *a; int b;

C/C++は、ごちゃごちゃとしたstructの扱いに秀でてるから、そういうソースにも慣れてくる
それこそ、いまどきなら、ごちゃごちゃとしたところをC/C++に追いやって、
上位をJavaなりC#なりで書き上げたっていいわけだ
629624:2014/01/05(日) 20:04:56.83
みなさんこの度は私のしょうもない発言で場を乱してしまい、
本当に申し訳ありませんでした。深く謝罪いたします。
とにかくバッドノウハウと言いたいの一心で書き込んでしまいました。
ほんとうに申し訳ありませんでした。
630 ◆QZaw55cn4c :2014/01/05(日) 20:20:59.08
>>629
その程度で謝罪したりしていたら早死にしちゃうよwww
匿名なんだから大胆に書いて反応を楽しむ、くらいでもいいと思うよ、まあ粘着はやめておいたほうがいいね

QZみたいに図太くずうずうしく楽しむがよい
631デフォルトの名無しさん:2014/01/05(日) 20:53:56.26
甘いな、謝れば済むなど

>>629
ナイスC++erになってナイス回答10本なw
632デフォルトの名無しさん:2014/01/05(日) 23:37:52.38
重複で立てられた糞スレ削除されたなw
hoge基地害ざまぁwwwww
633デフォルトの名無しさん:2014/01/06(月) 00:03:30.76
int *a, b;
 int がdecl-specifier
 *a と b がそれぞれdeclarator
これでスッキリ、かと思いきや
 int * や int がtype-id

C++の文法はKUSO
634デフォルトの名無しさん:2014/01/06(月) 00:41:23.54
>>633
はいはい、それはCを引きずってるだけだよ
お前にはC/C++は不向きでストレス溜めるだけだからもう2度と関わるな
635デフォルトの名無しさん:2014/01/06(月) 04:02:04.27
質問させてください。

printf("%x", c); //c は char型
したときに

ffffff80

と出力される変数cがあるのですが、
この変数cを int の 8に変換したい場合
どのようなコードを書けばよいでしょうか。

環境はWindowsのMinGWです。
よろしくお願いします。
636片山博文MZコスモ ◆T6xkBnTXz7B0 :2014/01/06(月) 04:12:08.42
ffffffの部分は符号付きcharから符号付きintへの符号拡張。c == 0x80だな。charの一番上のビットが符号の1になってる。
8にしたいなら c >>= 4;でどうだ?
ffffffをなくしたいなら、unsigned charにキャストだ。
637デフォルトの名無しさん:2014/01/06(月) 04:30:08.21
>>635 c = 8
638デフォルトの名無しさん:2014/01/06(月) 04:31:17.25
ttp://ideone.com/rAiRQB
よくわからんがこれでいいんか?
639デフォルトの名無しさん:2014/01/06(月) 06:01:37.76
printf("%x", 0xFF & c)
640デフォルトの名無しさん:2014/01/06(月) 09:55:39.94
コテハンの後に間抜けな回答するなんてみっともないぞ。
641デフォルトの名無しさん:2014/01/06(月) 10:01:55.66
何したいのかまったくわからんな
BCDみたいな扱いで1桁だけ取り出したいとか
642デフォルトの名無しさん:2014/01/06(月) 10:03:56.92
わからないならバカを告白しなくていいぞ
643デフォルトの名無しさん:2014/01/06(月) 10:06:58.88
いや、出題が間違っているはずだ
644デフォルトの名無しさん:2014/01/06(月) 12:32:21.61
命名規則で質問です。

今まで独自で規則を作っていましたが、いい加減ルールを統一しようと思いました。

とりあえず、googleのスタイルガイドでやってみようと思ったのですが、インスタンス(オブジェクト)の命名規則がよくわかりませんでした。

そこでみなさんの命名規則を参考にしたいのですが、独自で作成したクラスのインスタンスの変数名はどんな感じにしていますか?


(例)

ファイル名
myClass.cpp

使用時
myClass i_myClass; //iPhoneなので全角セミコロンすみません
645デフォルトの名無しさん:2014/01/06(月) 12:41:46.57
>今まで独自で規則を作っていましたが、いい加減ルールを統一しようと思いました

まず日本語が怪しい奴には無理だな
646デフォルトの名無しさん:2014/01/06(月) 12:45:43.35
int i;
i = _getch();
printf("入力された数値は%dです。",i);
647デフォルトの名無しさん:2014/01/06(月) 12:45:43.43
>myClass
クラス名にCamel形式は馬鹿っぽいので止めた方がいいぞ

>i_myClass
キモすぎだろう

>iPhoneなので全角
馬鹿は死ぬまでなんとやら
648645:2014/01/06(月) 12:49:57.24
日本語が不十分ですみません。

ある程度規則を作っていますが、作っていくうちに、こっちの方がいいんじゃないかと試行錯誤してすこしずつ変わっていっています。

それなら、ベースをすでにあるものにすれば、そういった迷いが減るかなと思いました。
649645:2014/01/06(月) 12:52:21.86
>>647

キャメルじゃないとなると、スネークがオススメということですか?
650デフォルトの名無しさん:2014/01/06(月) 13:32:20.85
オープンソースのソースを読め と一言ですむ
651デフォルトの名無しさん:2014/01/06(月) 13:46:37.04
え、俺キャメル好きだけど変?
652デフォルトの名無しさん:2014/01/06(月) 13:47:26.47
>>650
GNUソースで混乱必死ですね
653デフォルトの名無しさん:2014/01/06(月) 14:01:23.61
i_って何だよ?そんなの初めて見た
クラス名は普通パスカルケースだろ?Java世界でさえ
654645:2014/01/06(月) 14:35:33.87
パスカルだろってことは、キャメルが変ってのはlowerキャメルのことを言ってるんですね。

インスタンス生成はどんな感じですかね。
クラス名の前後どちらかに何かの文字を入れてるんでしょうか?

MyClass ?MyClass?
655デフォルトの名無しさん:2014/01/06(月) 15:17:35.25
先頭一文字が大文字だとクラス名と判断する言語すらある
656デフォルトの名無しさん:2014/01/06(月) 16:23:30.86
おまえらが仕事でcのコードを書くことはない
657デフォルトの名無しさん:2014/01/06(月) 17:53:23.01
>>651
変です
Javaのメソッド名のように 動詞+名詞
のパターンではおかしくないが
先頭小文字名詞と先頭大文字名詞の混在や
先頭大文字形容詞と先頭小文字形容詞の混在ネーミングは
自然言語のセンスを疑ってしまう
 longLongUnko
 unko / unkoEater / bigUnko
658デフォルトの名無しさん:2014/01/06(月) 19:31:41.30
自作のクラス名は全部大文字で書いてる
そしてクラスは宣言する場所によって大文字小文字が変わるグローバルならg_を付けて小文字で始め、次から単語単位で大文字

◇クラス名
MYCLASS

◇グローバル
MYCLASS g_myClass;

◇構造体やクラス内では小文字で始まり次から単語単位で大文字
MYCLASS myClass;

◇関数内は全部小文字
MYCLASS myclass;

これは構造体やその他変数の場合も同じ
クラス以外は以下の通り

◇関数は最初から単語単位で大文字
int MyFunc();

一目見ればどういった変数か分かる
659片山博文MZコスモ ◆T6xkBnTXz7B0 :2014/01/06(月) 19:34:58.02
俺はハンガリアン記法
660デフォルトの名無しさん:2014/01/06(月) 19:45:58.14
>>658
namespace使えば?
661デフォルトの名無しさん:2014/01/06(月) 19:53:31.27
>>654
オープンソースのmmdagentでも眺めてみたら
662デフォルトの名無しさん:2014/01/06(月) 20:24:25.79
全部大文字はマクロみたいで嫌だな
663デフォルトの名無しさん:2014/01/06(月) 20:25:41.54
>>657
wchar *wcpName;
int iHeight;
setName();
setHeight();
とかだな
664デフォルトの名無しさん:2014/01/06(月) 20:55:57.76
あまえら馬鹿さ加減の自慢もたいがいに
665デフォルトの名無しさん:2014/01/06(月) 20:59:25.52
便乗質問です
コードの書き方って会社ごとに決まってるとは限らないのでしょうか?
前回はこう書いたけど今回はこうね!みたいな感じに
666デフォルトの名無しさん:2014/01/06(月) 21:01:33.68
INT MAIN(INT ARGC,CHAR *ARGV??( ??) )
??<
PRINTF("HELLO WORLD??/");
??>
667デフォルトの名無しさん:2014/01/06(月) 21:03:58.20
誤 ??/
正 ??/N
668デフォルトの名無しさん:2014/01/06(月) 21:06:56.02
>INT

コンパイルエラー
669デフォルトの名無しさん:2014/01/06(月) 21:15:47.59
Unicode系の文字を使用する言語にトライグラフとか
時代錯誤が甚だしい言語仕様
670デフォルトの名無しさん:2014/01/06(月) 21:20:15.13
int $;
for ($=0; $ < 10; $++)
printf("$ = %d\n", $);
671デフォルトの名無しさん:2014/01/06(月) 22:55:21.47
std::string A$;
A$ = "モジヘンスウノレンシュウ";
672デフォルトの名無しさん:2014/01/06(月) 22:58:34.52
くらえ!必殺!
喪磁返崇 乃連襲!
673デフォルトの名無しさん:2014/01/07(火) 03:08:34.19
auto* u = L"おちんぽじゅぽじゅぽ";
auto* s = R"(c:??ひみつ\test.csv)";
674デフォルトの名無しさん:2014/01/07(火) 08:07:39.38
>>653
C++の規格のサンプルコードを全否定ですか?
675デフォルトの名無しさん:2014/01/07(火) 12:14:20.15
この勢いなら聞ける

>>673
auto* ってできるの?
飯食ってくる
676KUSO KOTE:2014/01/07(火) 14:20:33.98
>>675
できます
677675:2014/01/07(火) 16:24:16.83
久しぶりにあぼーん入ったな
またhogeか
678デフォルトの名無しさん:2014/01/07(火) 16:37:23.76
>>675
自分で試せ
679デフォルトの名無しさん:2014/01/07(火) 17:10:59.38
>>676,678
飯食ったらすぐ現場だった 異業種です
できるのか、こりゃおもしれえ。ためします

>>677
俺が二人いる
680デフォルトの名無しさん:2014/01/07(火) 19:11:18.83
http://ideone.com/SLPPrm
こんなコード書く機会は無いのだがこれが通ってしまうのは仕様?
681デフォルトの名無しさん:2014/01/07(火) 19:13:57.01
>>680
何か問題でも?
682デフォルトの名無しさん:2014/01/07(火) 19:21:59.61
>>681
いや問題は無いけど・・・
Cの方ばっかりやってたからちょい感動したw
683デフォルトの名無しさん:2014/01/07(火) 19:26:04.25
>>680だけど、
http://ideone.com/64f6S8
このvectorの使い方って有り?
684デフォルトの名無しさん:2014/01/07(火) 19:34:10.21
>>683
気持ち悪いからvectorをnewするな。話はそれからだ。
つーか、どうしても全く無意味にnewしたいならdeleteしろ。
685デフォルトの名無しさん:2014/01/07(火) 19:36:05.19
>>684
そうだったdelete書き忘れてた・・・

deleteすれば間違ってはいない?
686デフォルトの名無しさん:2014/01/07(火) 19:36:17.99
取り敢えず、vectorの初歩位何かで勉強しろよ。
それからCスタイルキャストはやめろ。
687デフォルトの名無しさん:2014/01/07(火) 19:37:25.94
>>685
バグの温床で全く意味がないのにどうしてもnewしたいなら止めないが、
考え方としては大間違いだ。
688デフォルトの名無しさん:2014/01/07(火) 19:39:26.53
>>687
ちなみに一番ベターな感じに書くとどんな感じになりますか?
689デフォルトの名無しさん:2014/01/07(火) 19:47:56.90
>>688
>一番ベター
意味不明な言葉を口走らなくなってから出直せ言語障害
690デフォルトの名無しさん:2014/01/07(火) 19:48:09.40
だまされるなよw
newを恐れるようではこの先何も出来ない。
ちなみに、そんなすぐmainを抜ける短いプログラムでdeleteなんぞしなくていい。
deleteしたいときだけすればいいんだ。
691デフォルトの名無しさん:2014/01/07(火) 19:50:15.98
>>682
このAとBの違いと一緒
----A
void test(void);
int main(void)
{
test();
}
void test(void)
{
}

----B
void test()
{
}
int main(void)
{
test();
}
692デフォルトの名無しさん:2014/01/07(火) 19:50:33.58
>>682
Cだとできないの?
693デフォルトの名無しさん:2014/01/07(火) 19:50:50.42
>>690
ありがと

もう少しvectorについて勉強してみます
694デフォルトの名無しさん:2014/01/07(火) 19:51:01.47
ベクターだろうとベターだろうと大して変わらん
695デフォルトの名無しさん:2014/01/07(火) 19:54:03.76
こうやって賛否両論あるように見せかけて書いてやると>>693みたいな馬鹿が騙されて面白いw
696デフォルトの名無しさん:2014/01/07(火) 19:54:15.28
>>690
いあ
どんなに短いプログラムでもdeleteする癖つけといた方がいいぞ
697デフォルトの名無しさん:2014/01/07(火) 19:55:17.30
したいときにいつでもできる!
698デフォルトの名無しさん:2014/01/07(火) 19:58:04.00
一番ベター わろた
699デフォルトの名無しさん:2014/01/07(火) 20:03:04.96
>>684
newしたって構わないだろ
移動コンストラクタが無かった時代には
auto_ptr<vector<string> >とかやったぞ
700デフォルトの名無しさん:2014/01/07(火) 20:05:14.06
目的があってやるのと意味なくやるのは違うだろ
701デフォルトの名無しさん:2014/01/07(火) 20:05:34.96
あの場合はnewいらんだろ
auto_ptrがあるなし関係ない
702デフォルトの名無しさん:2014/01/07(火) 20:10:47.81
>>690
この悪党!
703デフォルトの名無しさん:2014/01/07(火) 20:15:58.51
//690
free/deleteはクセつけといたほうがよくね?
リークチェックが非常に面倒になるぞ
valgrindで見なかった事リストを登録したり
ヘタすればJava的手法になってしまう
704デフォルトの名無しさん:2014/01/07(火) 20:16:40.40
アンカーおかしいなw
>>690
705デフォルトの名無しさん:2014/01/07(火) 20:22:04.85
free/deleteなんて_CrtSetDbgFlag()使えばいいし
706デフォルトの名無しさん:2014/01/07(火) 20:22:11.55
newしたぶんをdeleteしたいんなら、そうすればいい。
ほっといていいなら、ほっといていい。
707デフォルトの名無しさん:2014/01/07(火) 20:25:28.37
よほど長時間実行されるプログラムでなけりゃ
今時メモリ解放なんて気にするだけ無駄
708デフォルトの名無しさん:2014/01/07(火) 20:29:30.11
長時間でなくても、頻繁にくりかえしたら、おかしくなったぞ。
「解放しなければなりません」とかいてあったら、解放してから次を確保
709デフォルトの名無しさん:2014/01/07(火) 20:33:45.50
何か心配があるんならdeleteしろやw
ええんやでw
710デフォルトの名無しさん:2014/01/07(火) 20:33:49.25
>>708
どうせ他の部分にバグがあったんだろ

再現できる最小構成のソースをideoneにでもあげてみろよ
711デフォルトの名無しさん:2014/01/07(火) 20:48:03.98
>>710
えっ?!
712デフォルトの名無しさん:2014/01/07(火) 20:53:51.71
>>705
言ってる意味が分かんない

>>708
キャッシュしてるだけじゃないの?
713デフォルトの名無しさん:2014/01/07(火) 20:57:10.28
newした分をdeleteしないと許さないって専門学校の先生が言ってた
714デフォルトの名無しさん:2014/01/07(火) 21:03:15.85
その辺の話は↓でどうぞ

mallocの後にfree不要と言うバカいるの?Part2
http://toro.2ch.net/test/read.cgi/tech/1359549517/
715デフォルトの名無しさん:2014/01/07(火) 21:03:24.51
suppressionファイルなぞという見なかった事にしようかリストを書くぐらいなら普通に開放したほうがいいよ。
まじx11勘弁して欲しい
716デフォルトの名無しさん:2014/01/07(火) 21:11:38.78
new した物を delete しないのは、必要ないフォームを閉じずに非表示にしてるだけなのと同じだ。
そんなバカなプログラムがあるか
717デフォルトの名無しさん:2014/01/07(火) 21:19:36.54
それはちと違う。
718デフォルトの名無しさん:2014/01/07(火) 21:33:39.18
deleteしなくていいなら、いっそstaticでいいじゃないか
719デフォルトの名無しさん:2014/01/07(火) 21:44:21.86
自動変数でいいだろ…
720デフォルトの名無しさん:2014/01/07(火) 21:55:54.28
ってか new/delete を隠蔽した一つの形が vector だろうに…
わざわざその vector を new するとかマゾとしか思えん…
721デフォルトの名無しさん:2014/01/07(火) 22:07:25.16
いや、マゾというよりマヌケ。
722デフォルトの名無しさん:2014/01/07(火) 22:07:29.27
むかし>>720みたいな人がよくいた
配列の代わりにvectorを使えといいつつ
関数の戻り値に使いたいときどうするかの答えを持ち合わせていない奴が
今はムーヴで解決されたけど
723デフォルトの名無しさん:2014/01/07(火) 22:09:16.47
>>722
?
参照で渡せばいいじゃん
724デフォルトの名無しさん:2014/01/07(火) 22:16:05.94
ダウトきたこれw
725デフォルトの名無しさん:2014/01/07(火) 22:17:40.12
>>723
変換operatorでvectorを返したいのですが
自動変数の参照を返してもよいのでしょうか
726デフォルトの名無しさん:2014/01/07(火) 22:18:38.12
>>722
奇遇だな
俺もよく>>722みたいな人に会うよ
でもほとんどの場合、関数の戻り値に使いたいという点に合理的な理由が無い
727デフォルトの名無しさん:2014/01/07(火) 22:22:14.00
>>726
何かの一覧を作成して返したい
というのは極めて一般的じゃないのか?
728デフォルトの名無しさん:2014/01/07(火) 22:25:43.62
>>727
その場合は>>723で事足りるし、
関数型言語のような連結を行いたいなら、
受け取った引数の参照を返せば良いと言うのが僕の意見
729デフォルトの名無しさん:2014/01/07(火) 22:27:32.52
結果を渡す手段に
・返り値として返す
・参照渡しな引数の内容を書き換える
・ポインタ渡しでもらって、指し先の内容を書き換える

メモリコスト的にでかいものを返り値として返すのには抵抗があるな
730片山博文MZコスモ ◆T6xkBnTXz7B0 :2014/01/07(火) 22:29:47.34
>>725
自動変数へのポインタを返すのと同じく駄目。参照引数で渡せ
731片山博文MZコスモ ◆T6xkBnTXz7B0 :2014/01/07(火) 22:33:03.27
または参照でない値返し
732デフォルトの名無しさん:2014/01/07(火) 22:34:12.11
>>716
起動時に作成して終了時に閉じるから必要ない時は非表示にしてる
つまり起動時にnewして終了時にdeleteするから必要無い時にも存在してる

的外れな例えしてると思わないか?
733デフォルトの名無しさん:2014/01/07(火) 22:56:20.19
>>728
「何かの一覧を作成して返したい」
という極めて一般的な要求に対して
自分は抵抗感がある とか
言語仕様上の問題から参照で回避可能 とか
はわかったのだけれど、
それで「戻り値返しに合理的な理由が無い」
なんて 頭おかしいのでは?
734デフォルトの名無しさん:2014/01/07(火) 23:05:09.59
>>733
戻り値で返すっていう手段に合理的な説明なし
一般的とかオレオレ主観
安全でデメリットもない代替案に対して頭おかしい扱い

うわぁ…
735デフォルトの名無しさん:2014/01/07(火) 23:12:52.65
>>733
戻り値として配列を返すとしてエラー処理はどうする?
736デフォルトの名無しさん:2014/01/07(火) 23:15:46.77
>>735
例外でおk
737デフォルトの名無しさん:2014/01/07(火) 23:15:56.16
データを返すという関数シグネチャのコントラクトがまっとうできない場合は
例外をスローするのが筋かと
738デフォルトの名無しさん:2014/01/07(火) 23:17:44.30
メソッドチェーンなんて糞便利だよね
739デフォルトの名無しさん:2014/01/07(火) 23:18:01.66
>>733
多分関数内部で new するような話なのかな?
C++ では RAII で実現するのが良いとされているので、そもそもそういう実装が時代遅れな気が。
ポリモーフィズムを実現するためには new/delete を使うのが楽だけど、これはまた別の話。
データ構造としての配列が必要なら、vectorを代替として使うのがC++流だと思う。
C++流にC脳で対応しようとするから戻り値にこだわりたくなるのでは?

但し、>>722の最後の一言で全て解決。
C++11 以降なら何も気にせず堂々と戻り値で返せばいい。
そうでなくとも RVO/NRVO が期待できるので、実は気にしなくて良いレベルだったりするが。
740デフォルトの名無しさん:2014/01/07(火) 23:19:52.50
>>734
戻り値で返したいという人がいる以上
それができないのはデメリットそのものでしょ。
不要であると主張する側がその理由を説明するのが筋
741デフォルトの名無しさん:2014/01/07(火) 23:23:38.10
auto_ptr<vector<deta> >
これでc++03でも解決
ただしここはグローバル変数をオススメしたい
メモリリークとも無縁
742デフォルトの名無しさん:2014/01/07(火) 23:26:12.46
ダサッ
743デフォルトの名無しさん:2014/01/07(火) 23:26:55.81
>>740
なんか勘違いしているね
戻り値で返したいっていうのは要求とは言わないよ
それは開発者のわがまま

僕はプログラムのメリットを話しているのに、君は君自身のデメリットを話している
そういうスタンスなら、君の責任でそうしたければそうすれば?としか言いようが無いよ
744デフォルトの名無しさん:2014/01/07(火) 23:32:44.38
>>743
つまりvectorは配列の代替として使えなくはないけれど
完全ではないと言うことですね(プゲラ

A「これをつかえ!」
B「このばあいはできないだろ!」
A「こうすればかいひできる!」
B「なんでそんなスタイルねじまげなきゃならんの!」
>>743「僕はプログラムのメリットを話しているのに、君は君自身のデメリットを話している」

もう精神科に行ったほうがよいのではないかと…
745デフォルトの名無しさん:2014/01/07(火) 23:37:46.84
newを恐れる人と、スマポをありがたがる人は同じなんだろうな。
746デフォルトの名無しさん:2014/01/07(火) 23:38:58.97
割り込んですまないが>>725はどうする?
operator使わずに自前の関数に参照渡ししかない?
747デフォルトの名無しさん:2014/01/07(火) 23:49:14.91
>>745
スマポ派はExceptional何とかを読んでチキンになっただけです。
でもnewと同時にスマポのコンストラクタに入れておけば安全らしいことを覚えたので、
newは上等です。
748デフォルトの名無しさん:2014/01/07(火) 23:49:29.02
>>744
趣味プログラマ?
だったら君の道を行けばいいと思うよ

でも職業プログラマだったら、
プログラムスタイルに対する変なこだわりは捨てる事をおすすめするよ
ソフトウェア制作で重要なのは、そのソフトの要求を満たす事であって、開発者の要求を満たすことじゃないから
こうすれば不具合の起きにくい作り方になるっていう意見に対して、僕のスタイルに合わないから嫌だっていうのはわがままじゃないのか?

理論的に説明している件に対して、頭がおかしい扱いするとか、釣だよな?
749デフォルトの名無しさん:2014/01/07(火) 23:52:05.22
>>748
もうほっとけよ
頭おかしいヤツの相手すな
750デフォルトの名無しさん:2014/01/07(火) 23:54:59.39
ヒント: 冬休み
751デフォルトの名無しさん:2014/01/08(水) 00:00:02.94
>>748
肩の力抜けって
確かに>>744は頭悪そうで物言いも気分悪いがここは 2ch
752デフォルトの名無しさん:2014/01/08(水) 00:00:28.04
std::move
753デフォルトの名無しさん:2014/01/08(水) 00:03:51.81
>>748
>>僕のスタイルに合わないから嫌だっていうのはわがままじゃないのか?

話を逸らしたな。
「安全の為にはvectorを使って参照渡し方がいい」
というのであれば特に文句はない。

>>726が「vectorの戻り値スタイルには合理性がないから俺の参照スタイルを使え」
と言ったのに合理性が無いことを説明できないので
頭おかしいの?と訊いたまでだが。

で結局、説明できないだろ?
754デフォルトの名無しさん:2014/01/08(水) 00:04:28.21
関数は数学と共通してf(x)で成り立ってるから、
f(x)のxに値を入れた場合、f(x)が値を持つのが当り前の事だ。

だから実質的に戻り値が無くても、voidの値を持っていると言う事になっているので、
頭にvoidを付けるのさ。

戻り値の無いプログラムなんて無い。
基本的に戻り値で返すべき。
755デフォルトの名無しさん:2014/01/08(水) 00:04:33.72
newを恐れるんじゃなくて、だんだん遅くなるんだよね。
コンテナ使っても同じことだしね。
サーバソフトウェアでは、一定回数レスポンスするとプロセスごと
再起動するものもあるね。
そのために、プロセス間でファイルディスクリプタの移動ができるOSもあるね。
756748:2014/01/08(水) 00:08:04.60
>>753
後半の話おかしくね?
誰も vector の戻り値スタイルに関しては話していないと思うけど。
生配列(ポインタ)戻し vs vector 運用 (引数でも戻り値でも) という流れだったのでは?
人が入れ替わって主張がズレてきているのかな?
757デフォルトの名無しさん:2014/01/08(水) 00:10:46.92
std::move
758756:2014/01/08(水) 00:10:49.47
すみません。
昔の書き込み時の名残で748って名前に入っちゃたけど、この流れでは初めての書き込みです。
759デフォルトの名無しさん:2014/01/08(水) 00:13:43.27
>>758
誰もお前の糞書き込みなんて気にも止めないから黙っててね^^
760デフォルトの名無しさん:2014/01/08(水) 00:13:50.59
上や権力者が決めた仕様に従うのは絶対だが、
それとは別に一プログラマとして開発はこうあるべきと考えていて良いだろう
761デフォルトの名無しさん:2014/01/08(水) 00:14:23.32
>>753
vector を戻り値で返すのは問題無いと思うよ
でも君は>>722で vector を戻り値で返すことに異論を唱えたのじゃないのか?
762デフォルトの名無しさん:2014/01/08(水) 00:15:27.40
くどい
722はRAIすら知りませんで終わった話しでしょ
763片山博文MZコスモ ◆T6xkBnTXz7B0 :2014/01/08(水) 00:16:52.77
>>754
xが定義域の外にあった場合、f(x)は未定義。後半に論理の飛躍がある。
昔は戻り値としてサイズの大きい構造体を返すのはのは計算コストが高かっった。
764デフォルトの名無しさん:2014/01/08(水) 00:19:21.98
RAIIと>>722って何か関係あるのか?
765デフォルトの名無しさん:2014/01/08(水) 00:21:09.22
ぶった切ろうとした>>762が話を追えて無い件
766デフォルトの名無しさん:2014/01/08(水) 00:21:28.79
>>764
文脈で分かるじゃん
767デフォルトの名無しさん:2014/01/08(水) 00:21:39.20
xが定義外だったらその関数は実行されないだけだろ
エラーじゃねえか
768デフォルトの名無しさん:2014/01/08(水) 00:25:16.73
deleteを恐れていたり、義務のように感じてるうちはまだまだだな。
deleteは権利よ。deleteしたいときにできるのがいいんじゃないか。
769デフォルトの名無しさん:2014/01/08(水) 00:25:19.81
vectorの動的配列を戻り値として返すかって事なら、ポインタで返せば良いだけ
770デフォルトの名無しさん:2014/01/08(水) 00:25:57.28
ネバーエンディングストーリーだな
771デフォルトの名無しさん:2014/01/08(水) 00:26:07.69
>769
おいやめろばか
772デフォルトの名無しさん:2014/01/08(水) 00:26:40.49
>>765
そもそも何を話す事があるのかわからんしね
現仕様じゃ解決したネタ
古いコンパイラだとしても
返したきゃ返せばいいエラー処理は例外で
ただ、コストがネックになるケースもあるから
参照で渡すといいよ
という親切心からの代替手段まで提示してもらってるのに

呼び出し元でのmallocがどうちゃらってレベルの話しだしなぁ
malloc,new,init,create/free,delete,destoroy,term
呼び出し元のRAIIでいいじゃないのよ
773デフォルトの名無しさん:2014/01/08(水) 00:29:13.19
722は単運に
あぁ・・・このレベルなのか
とスルーされただけじゃないかな
774デフォルトの名無しさん:2014/01/08(水) 00:30:49.28
別に良いさ。間違った事でも自分が思うことをどんどん書け
それで間違っていたと気付けばスキルアップだ。恥ずかしいとか思うな
775デフォルトの名無しさん:2014/01/08(水) 00:31:14.26
さっきから>>772(=739,762?)がライーをどのような意味で使っているのかよくわからない
776片山博文MZコスモ ◆T6xkBnTXz7B0 :2014/01/08(水) 00:33:54.69
xが未定義でもfの定義によってはf(x)が計算可能なことがある。
777デフォルトの名無しさん:2014/01/08(水) 00:36:34.65
>>775
スコープだよ
グラフ化して汚ねぇ木だなと言われればおk
778デフォルトの名無しさん:2014/01/08(水) 00:37:28.58
>>775
RAIIの意味は知っているのかい?
779デフォルトの名無しさん:2014/01/08(水) 00:39:59.40
>>776
6.一見、関係がありそうで関係のない話 を始める

「ところで、カモノハシは卵を産むのを知っ ているか?」
780デフォルトの名無しさん:2014/01/08(水) 00:42:12.23
f(x)でxが定義外だったらエラーでエラー値を戻すだろ
xが定義外でfの定義で計算されるなら、voidでも値は持つだろ

何も返さない関数なんてあるかよ
781デフォルトの名無しさん:2014/01/08(水) 00:42:26.34
みんな仕事は終わったか?
そろそろ寝て明日に備えようぜ!
782片山博文MZコスモ ◆T6xkBnTXz7B0 :2014/01/08(水) 00:43:20.83
その場合エラーにならない
783デフォルトの名無しさん:2014/01/08(水) 00:45:56.12
>>780
xが定義外だったら例外をスローする
784デフォルトの名無しさん:2014/01/08(水) 00:47:25.80
errnoとかね
785デフォルトの名無しさん:2014/01/08(水) 00:47:31.59
>>776
xが未定義 と f の入力が範囲外 をすりかえている。
fが計算可能ならそれは入力範囲内
786片山博文MZコスモ ◆T6xkBnTXz7B0 :2014/01/08(水) 00:47:40.68
バッファーオーバーフローの場合。関数が定数またはxと無関係な定義の場合。
定義域が制限された関数の場合。
例外処理の場合。
787デフォルトの名無しさん:2014/01/08(水) 00:52:58.92
>fが計算可能ならそれは入力範囲内

定義域の定義に反する
788デフォルトの名無しさん:2014/01/08(水) 00:53:44.24
f(x)が計算可能で無ければ計算可能で無いと言う値が返るだろ
計算出来れば当然何か値を持つはずだ。

そうじゃないとf(x)呼び出した時点でプログラムが終わるだろ。
789デフォルトの名無しさん:2014/01/08(水) 00:58:53.16
つまりだね、どんな関数でどんな状態でも、
中で永久ループにでならない限り呼出元に戻るだろ

その時に値を返す関数ならその値を返すし、無ければ戻り値無しと言う事を呼出元に返してんだよ。

だから戻り値が無い関数なんて無いし、そんなのは関数じゃないんだよ
790片山博文MZコスモ ◆T6xkBnTXz7B0 :2014/01/08(水) 00:59:07.32
f(x)が計算可能で無ければ割り込みや例外が発生するかも知れない。その場合、
fの外側の割り込みハンドラーや例外処理で回復する可能性もある。
だから計算可能性と実行可能性は等しくない。
791デフォルトの名無しさん:2014/01/08(水) 01:03:25.21
計算可能で無ければエラーだろ 計算可能では無い状態を返してるから
その後の処理が出来るんだろつの
792片山博文コスモ ◆T6xkBnTXz7B0 :2014/01/08(水) 01:04:20.09
exitを呼ぶと呼び出し元に戻らないことがある(noreturn)。
無限ループや割り込み発生でも戻らないことがある。
君はnoreturn関数を知らなかった
793デフォルトの名無しさん:2014/01/08(水) 01:06:29.93
あのな、exitを呼出したら終了処理に行くだろ。
exit命令で抜けてるだろ。exitで抜けた事が出てるだろっつの
794デフォルトの名無しさん:2014/01/08(水) 01:10:55.18
片山優勢だなw
795片山博文MZコスモ ◆T6xkBnTXz7B0 :2014/01/08(水) 01:11:34.26
int f(int x)
{
exit(0);
return x+1;
}
int g(void)
{
return f(1);
}
関数gが受け取るfの戻り値はいくらか?
796デフォルトの名無しさん:2014/01/08(水) 01:12:49.24
くどい
797デフォルトの名無しさん:2014/01/08(水) 01:17:15.66
f(x)で呼出元に何かしらの値を戻すか、
noreturnの付いた関数ならその関数から次の関数に何かしらの値を渡すってだけ

値が無いって事は絶対に無い
798デフォルトの名無しさん:2014/01/08(水) 01:19:04.42
片山優勢だなw
799デフォルトの名無しさん:2014/01/08(水) 01:20:40.25
■が関数だとすると

A→■    A→■→B ってだけ
A←
800デフォルトの名無しさん:2014/01/08(水) 01:26:35.04
ニートしかいないからみんな明日の仕事の心配せずに活発に議論している
801デフォルトの名無しさん:2014/01/08(水) 01:33:26.77
>>800
君、ちょっと黙ってて
802デフォルトの名無しさん:2014/01/08(水) 01:43:33.12
はい
803デフォルトの名無しさん:2014/01/08(水) 01:55:34.52
しーーーん…………
804デフォルトの名無しさん:2014/01/08(水) 02:10:49.58
805デフォルトの名無しさん:2014/01/08(水) 04:03:07.39
                       た〜らこ〜 た〜らこ〜
       γ´⌒ヽ'⌒ヽ⌒ヽ⌒ヽ⌒ヽ  た〜っぷり た〜らこ〜
         | ( ゚д゚)゚д゚)゚д゚)゚д゚)゚д゚)
        |     |   ,|   ,|   ,|  |
          l    l  ,l  ,l  ,l  l
        〉   j  ,j  ,j  j  j
'⌒Y⌒Y⌒ (__,ノ_,ノ_,ノ__,ノ_ノ
806デフォルトの名無しさん:2014/01/08(水) 07:13:15.62
>>797>>797
それ戻り値や無くて引数じゃね?
807デフォルトの名無しさん:2014/01/08(水) 07:18:19.68
片山の意見は全般に?だが>>793はおかしい。
途中でのプログラム終了と例外とlongjumpは
関数y=f(x)のyの導出とは関係が無い。
値を返すとは別の形での終了の概念。
808デフォルトの名無しさん:2014/01/08(水) 08:16:45.50
片山に負けたのがいるんだって? w
809デフォルトの名無しさん:2014/01/08(水) 08:28:09.14
関数は「値を返す」か「途中で挫折してexit/longjump/throw」
のいずれかの動作を取るけれど
後者があるからといって
>>754の内容が間違っているかどうかは別だ。
特にC++ではvoidを返すという考え方を認めている
810デフォルトの名無しさん:2014/01/08(水) 08:35:02.25
>>809
無限ループと割り込みも宜しく。
> 間違っているかどうかは別だ。
「値を返さない」が可能なら「戻り値の無いプログラムなんて無い」は間違いだろう。

「基本的に全てのプログラム(関数・サブルーチン)は値を返すべき」
なら思想の問題なんで議論の余地があるけど、正直そっちは興味無いな。
811デフォルトの名無しさん:2014/01/08(水) 09:18:49.44
>>808
いや片山は言っている事は支離滅裂だけどプログラムに関してはかなりの知識を持っていると思ってるぞ
812デフォルトの名無しさん:2014/01/08(水) 09:22:33.33
戻り値が無いと言う事も値になる
関数が終了しないでプログラム全体が終わるなら、プログラム全体が先に値を戻して終了してるだけだ
メインから関数の入れ子になってんだから

値が無いって事はf(x)でxに値を与えても、f(x)は値を持たないって事だ
それだと関数では無くてただの文字だ。xを与えて値を持つから関数って言うんだよ
それが関数の定義だ 値を持った時点で、それが戻り値なんだよ
813デフォルトの名無しさん:2014/01/08(水) 09:25:28.35
>>811
ちがうな。
経験 を持っているだけで 知識 を持っているかは別。
残念な人は何十年仕事しても上達しないのと同じ。
814デフォルトの名無しさん:2014/01/08(水) 09:30:36.53
片山に負けた池沼は屁理屈捏ねてないで退場しろよ
勝敗決してからgdgd言い訳するのは 見苦しいぞ
815デフォルトの名無しさん:2014/01/08(水) 09:34:33.99
プログラミングでは混同されてるけど、関数と手続きは違うから。
f(x)の関数と同じ形で、戻り値が無い、値を持たないとするのは手続きだから
816デフォルトの名無しさん:2014/01/08(水) 09:38:47.96
片山とかQZとかコテハンには変な人が多いな
変な人だからコテハンにするのかも知れないが
817デフォルトの名無しさん:2014/01/08(水) 09:44:24.21
>>812
副作用OKな手続き型の関数と呼ばれる関数モドキに何言ってんのコイツwww

「それは関数、ファンクションじゃない、プロシージャとかサブルーチンとかメソッドとかそういう物だ」
位の事は言えよ。そんなに関数にこだわりがあるなら。
818デフォルトの名無しさん:2014/01/08(水) 09:48:09.13
最初から数学と共通してのf(x)の関数って言ってんだろ
819デフォルトの名無しさん:2014/01/08(水) 10:02:38.68
記憶に残る変な人と
記憶に残らない変な人がいるだけ
820デフォルトの名無しさん:2014/01/08(水) 10:10:28.50
y=f(x)なのが関数なのは分かるだろ


f(x)と言う形だけを関数と言うなら、その関数が他の処理に最終的に制御を移す値が戻り値になる。
それは戻り値では無いと言うなら、それは関数では無い。
821デフォルトの名無しさん:2014/01/08(水) 10:13:58.07
>>816
コテを付けている奴は例外なく自己顕示欲が強い=自己愛性パーソナリティ障害気味もしくは
本物の自己愛性パーソナリティ障害
822デフォルトの名無しさん:2014/01/08(水) 10:29:39.91
商売のために名を売ろうとしてるだけ
823デフォルトの名無しさん:2014/01/08(水) 12:23:50.00
むしろ逆効果
824デフォルトの名無しさん:2014/01/08(水) 13:19:37.62
よしid付けよう
825デフォルトの名無しさん:2014/01/08(水) 14:34:36.29
「関数」って言ったって数学から言葉を借りてるだけで、数学の関数の概念とは一致してないから
void型の戻り値を返すんじゃなくて、戻り値を返さない「関数」をvoidと宣言するんだから
826デフォルトの名無しさん:2014/01/08(水) 15:04:56.47
だからf(x)って書いてんだろ。
f(x)の意味分かってんのか
827デフォルトの名無しさん:2014/01/08(水) 15:10:15.19
今はNISAがトレンド
828デフォルトの名無しさん:2014/01/08(水) 15:27:59.34
外国為替証拠金取引
829デフォルトの名無しさん:2014/01/08(水) 15:35:23.29
とーしかでびゅー♪
830デフォルトの名無しさん:2014/01/08(水) 15:40:18.64
必死で言い訳しても、お前が片山に負けたことはひっくり返らない
831 ◆QZaw55cn4c :2014/01/08(水) 15:49:14.06
>>827
NISA は,経済/投資板のゴールドスレでは敗者の徴,愚者への徴税扱いとみなされているね
832デフォルトの名無しさん:2014/01/08(水) 17:25:23.15
たまにはバ片山が勝つこともあるんだな
バ片山は基本的に初心者への嘘回答しかしてないから、
それに負ける奴がいることに驚き
833デフォルトの名無しさん:2014/01/08(水) 20:06:28.73
だから参照最強伝説ですよね
834デフォルトの名無しさん:2014/01/08(水) 20:08:47.36
昨日はムーヴコンストラクター任せ最強という結論で一致しなかったか?
835デフォルトの名無しさん:2014/01/08(水) 20:36:42.66
どんな分野のたちがc++を使いこしているんだろう
836デフォルトの名無しさん:2014/01/08(水) 20:57:46.88
c++を書けない僕がバカなのかc++で書こうとするヤツがバカなのか、
ときどき考え込んでしまうんだ。だけど、もういいんだ。PHPで
837デフォルトの名無しさん:2014/01/08(水) 21:02:47.15
c++を書けない奴=ふつう
c++で書こうとするヤツ=馬鹿
c++でオナニーするヤツ=アスペ
838デフォルトの名無しさん:2014/01/08(水) 21:09:08.99
VC++EEでやってるからCとC++混ざってるわ
839デフォルトの名無しさん:2014/01/08(水) 21:11:38.81
いえ、それは>>838が 馬 鹿 なだけですよ
840デフォルトの名無しさん:2014/01/08(水) 21:23:58.31
More C++ idiomsを読むのは楽しい
841デフォルトの名無しさん:2014/01/08(水) 21:26:48.26
ラッパー被せて体裁整えればいいだけで混ざってももいいんだよ
それをやらないのは甘えでしかない
そんなのはCオンリーで書かせても同じでソース分割もろくに出来ないんじゃないかな
842デフォルトの名無しさん:2014/01/08(水) 23:03:37.93
アスペはほめ言葉。
伊達にヒキヲタDT歴を積み重ねてきたわけじゃないからね。
843デフォルトの名無しさん:2014/01/08(水) 23:59:17.21
質問ですが、結局クラスで
CLASS A{
   public :
      A(){}
      ~A(){}
};
int main(){
   A *a[3];
   for(int i=0; i<3; i++){
      a[i] = new A();
   }
}
とするより
struct A{
   public :
      A(){}
      ~A(){}
   "関数など"
}a[3];
とやって構造体で処理した方が良いですか?
844デフォルトの名無しさん:2014/01/09(木) 00:02:51.02
>>843
質問の意図は
javaでよくnewを使ってたんですが
Cだといちいちnewしない方が良いと言われたので
845デフォルトの名無しさん:2014/01/09(木) 00:09:53.37
後者で済むならそうする
846デフォルトの名無しさん:2014/01/09(木) 00:12:46.26
>>845
やはりそうですか。
ちなみにstructの使い方ってC++だとほとんどクラスに近いように感じるのですが
class的な扱いで大丈夫ですよね?

あと、後者で済まないような場合ってどんな時でしょうか?
847デフォルトの名無しさん:2014/01/09(木) 00:14:38.84
PODで検索
848デフォルトの名無しさん:2014/01/09(木) 00:17:17.76
>>846
デフォルトのアクセス指定子がprivateかpublicかの違いしかない
849デフォルトの名無しさん:2014/01/09(木) 00:23:56.24
>>847
なるほど
850デフォルトの名無しさん:2014/01/09(木) 00:29:18.87
>>843で追加質問なんですが

参考書とかでもnewを使ったりしてるのが有りますが、
なぜnewするのを避ける傾向に有るのですか?
851デフォルトの名無しさん:2014/01/09(木) 00:33:59.65
めんどくさい。遅い。
852片山博文MZコスモ ◆T6xkBnTXz7B0 :2014/01/09(木) 00:37:45.85
PODをnewせずに作成すると格納スペースとしてスタックが使われる。newで作成するとたいていヒープが使われる。
スタックで割り当ての方が早い
853デフォルトの名無しさん:2014/01/09(木) 00:49:28.60
>>850
そりゃ確保の速度もあるけど、解放しわ忘れてメモリリークするのが怖いからだろ
スマポを併用するのはそのため
854デフォルトの名無しさん:2014/01/09(木) 00:49:42.04
newしたらdeleteしなきゃならんから
855デフォルトの名無しさん:2014/01/09(木) 01:06:30.72
Javaとの比較で言えば、Javaはヒープに一本化するとともにGCの仕組みを取り入れた
C/C++にはGCがないかわりにヒープの使用を強制されることもない
あとは >>852 と同じ
856デフォルトの名無しさん:2014/01/09(木) 01:09:21.92
たいていヒープの大抵ってどういう意味だべ
newでまれにスタックが使われる?
857片山博文MZコスモ ◆T6xkBnTXz7B0 :2014/01/09(木) 01:21:38.65
>>856
operator newの定義が特殊な場合
858デフォルトの名無しさん:2014/01/09(木) 01:41:01.68
なるほど
859デフォルトの名無しさん:2014/01/09(木) 03:23:44.78
>>839
Cでやってるのに
for(int i=0;i<count;i++)
はC++と知らずにやってたんだ
860デフォルトの名無しさん:2014/01/09(木) 03:27:02.44
メモリが断片化している時に、
大きな連続領域を確保しようとすると、
それを探しまわるために、
1万命令ぐらいかかることもある

自分でメモリープールを作って、
メモリを管理する方法が、色んな本に載っているけど、

これはプログラムの初期化時に、
大きな領域を確保して、その中から、
小さい領域を、newに頼らず、自分で渡していく

Objective-Cやデータベースなども、
この方法を使っている
861デフォルトの名無しさん:2014/01/09(木) 06:29:28.99
>>859
ちょっと何言ってるかわからない
まさかCだとfor (int i=〜)が書けないとでも思ってる?
862デフォルトの名無しさん:2014/01/09(木) 06:51:17.56
C99ではおk
C89/ANSI Cではだめというだけの話
863デフォルトの名無しさん:2014/01/09(木) 07:04:11.12
>>859
それのどこがC++だと
864デフォルトの名無しさん:2014/01/09(木) 09:10:49.25
ヒープってなんですか?
スタックってなんですか?
フリーストアとは関係ないのですか?
865デフォルトの名無しさん:2014/01/09(木) 09:35:52.20
何で老人はC89とかANSIとか言い出すんだ?
昔よく使われてたのはISOのC90じゃないの?
866デフォルトの名無しさん:2014/01/09(木) 12:24:27.71
よく使われたのは、K&RかANSIかって言い方
867 ◆QZschizo.ptH :2014/01/09(木) 12:42:09.45
>>865
K&R1とK&R2=C89 の違いをいってみろ
C89とC90の違いをいってみろ

両方いえたらわかろうものだ,このケツの青い餓鬼が
868デフォルトの名無しさん:2014/01/09(木) 12:43:45.52
c90はansiの89だと国際化対応が足りないとかで
一年延期したんじゃなかったっけ?
869デフォルトの名無しさん:2014/01/09(木) 12:48:17.29
Wikipediaに書いてある事で鼻息荒いな
書いてない事で自慢しろよ

プログラムのメモリサイズを調べる方法とか
ls -l ./prog
870デフォルトの名無しさん:2014/01/09(木) 12:52:36.38
>>861
5年前の俺: 無理だろそんなの

まあ、スタブ書くときくらいしかpure C で書くこともないんだけど

>>869
ういんどーずでやってみろ、こんちくしょーめ
871デフォルトの名無しさん:2014/01/09(木) 12:59:18.84
>>870
えっ
872デフォルトの名無しさん:2014/01/09(木) 12:59:21.67
dir .¥prog.exe
これであってますかあ 大爆笑
873デフォルトの名無しさん:2014/01/09(木) 13:03:03.36
えっ


えっ?
874デフォルトの名無しさん:2014/01/09(木) 13:08:18.14
ファイルの大きさと等しいだけの大きさでメモリ上に置かれるとな

ファイルサイズ(ユニークなファイルヘッダがあるならそれを取り除いた量)よりも
下回るようなことは起き得るだろうか?

デバイスドライバーなんかは
初期化時には居るけど、初期化後はOSに返してしまう部位があったりするようだけど
875デフォルトの名無しさん:2014/01/09(木) 13:18:41.79
それが上で吠えてるQzとかいうコテによるとls -lでわかるらしいですよ。 大爆笑
876デフォルトの名無しさん:2014/01/09(木) 16:04:51.00
>>874
自己展開書庫なんかおもいっきりそうだが
877デフォルトの名無しさん:2014/01/09(木) 16:13:32.65
>>876
自己展開書庫で ファイルサイズ>メモリサイズ ってのは
lz圧縮系で、圧縮されるべき対象物が小さいと頭の辞書のほうがでかくなってしまう現象を想定?
878デフォルトの名無しさん:2014/01/09(木) 16:20:57.23
ファイルサイズとメモリのフットスタンプを並べて話してる時点でやっぱり違和感。
実行時に確保されるメモリなんざコードセグメントだけじゃないだろう?
879デフォルトの名無しさん:2014/01/09(木) 16:23:57.21
>>869 に聞いてくれ
ls -l でわかるそうだから
880878:2014/01/09(木) 16:29:26.47
俺も今すぐ死んだほうが良いなw
フットスタンプてそれ、プロレスの技やないかww
881デフォルトの名無しさん:2014/01/09(木) 16:54:08.50
フットブリング
882デフォルトの名無しさん:2014/01/09(木) 17:03:02.56
867はいつもとトリップが違うようだが変えたのですか?
883デフォルトの名無しさん:2014/01/09(木) 18:28:52.19
>>818
>>820
>>826
「数学的な関数でないサブルーチンやプログラムも存在する」のを無視して
f(x)とか言い出して「数学的な関数として値を返すべき」って主張したのが>>754
どうみてもC/C++の関数どころかプログラムまでひっくるめて数学的な関数扱いしてるぞコイツ
884 ◆QZschizo.ptH :2014/01/09(木) 18:56:48.71
>>883
「戻り値がないなんてありえない!!」
「たとえ0個であっても,それは戻り値を持つというんだ!!」
885デフォルトの名無しさん:2014/01/09(木) 19:16:39.76
>>878-879
http://toro.2ch.net/test/read.cgi/tech/1371208925/447
> 447 :◆QZaw55cn4c 2013/07/01(月) 07:01:51.45
> >>343
> ごめんね: keyword:Qzでアボーンしていたので見てなかった
> ふむ、ひとつの makefile で複数のバイナリ(サーバープログラムとクライアントプログラム、とか)を生成するとき、
> 特定のバイナリは、くだんのヘッダは読むけれどもそのヘッダにimplyされている全機能や array[] を使うとは限らない、ということはありうるわね
>
> でも手元の gcc では、使わなければ int array[10000] であっても増えないね
> ideone ではこうだった
> http://ideone.com/Digq4t
> http://ideone.com/aYFG9w
>
> >int array[10000];
> >では、使う使わないに関わらず領域が確保されてしまう。
> 処理系依存じゃないの?
> 処理系依存にうるさい人が処理系依存の事例を挙げるなんてダブルスタンダードもいいとこだね
>
> >>445
> 回答しといたよ
> これは授業料なしで引用していただける資格があると思うよ
886デフォルトの名無しさん:2014/01/09(木) 19:25:56.44
はいはい副作用副作用
887デフォルトの名無しさん:2014/01/09(木) 20:34:50.84
>>885
その内容についてお前の意見がないかぎりなんともいえないね
888デフォルトの名無しさん:2014/01/09(木) 20:56:41.66
まぁ通常はアキュームレータに戻り値設定するからな。
889デフォルトの名無しさん:2014/01/09(木) 21:05:48.18
890デフォルトの名無しさん:2014/01/09(木) 21:12:47.12
>>889
これ何回見ても笑えるwww

Qは完全に頭イカレてるな
891デフォルトの名無しさん:2014/01/10(金) 03:53:25.10
>>890
知ったかをイカレが弄ってるようにしか見えんが、
どっちかっつうとイカレの方がきしょい。
892デフォルトの名無しさん:2014/01/10(金) 04:29:28.08
きしょいとか久しぶりに聞いたわ
893デフォルトの名無しさん:2014/01/10(金) 10:21:45.03
>>889
自演してるようにしか見えないからきしょい
894デフォルトの名無しさん:2014/01/10(金) 12:09:24.64
きんも〜
895デフォルトの名無しさん:2014/01/10(金) 12:15:48.01
誤 きんも〜
正 きんもー☆
896デフォルトの名無しさん:2014/01/10(金) 13:36:41.68
サモハン?
897デフォルトの名無しさん:2014/01/10(金) 16:20:05.10
キンポー!!
898デフォルトの名無しさん:2014/01/10(金) 19:39:19.19
インポやろう
899デフォルトの名無しさん:2014/01/16(木) 20:38:59.73
質問です
以下のプログラムのコンパイルが通らないのですが仕様でしょうか?
http://ideone.com/j63pEU
900デフォルトの名無しさん:2014/01/16(木) 20:44:47.01
prog.cpp:5:21: error: must #include <typeinfo> before using typeid
901KUSO KOTE ◆unko./w.Osri :2014/01/16(木) 20:55:06.85
使用です
5.2.8p6
If the header <typeinfo>(18.7.1) is not included prior to a use of typeid, the program is ill-formed
902デフォルトの名無しさん:2014/01/16(木) 21:02:35.30
>>900-901
ありがとうございます
仕様なんですね
903デフォルトの名無しさん:2014/01/16(木) 21:19:02.64
MFCを使用しています
別スレッドからメインスレッドにPostMessageで
メッセージと文字列を一つ送りたいのですが、
どのようにしたら良いでしょうか?
送り側で
CString s;
s = _T("test");
PostMessage(hwnd, msg, NULL, (LPALAM)s);
受け取り側のPreTranslateMessageで
CString s = pMsg->lpalam;
としてもうまく受け取ることができません。
また、PostMessageを受け取らない時があるのですが、
取りこぼしなどあるんでしょうか?
904デフォルトの名無しさん:2014/01/16(木) 21:22:33.21
>>903
>文字列を一つ送りたい
だったら文字列のメモリの生存期間が保証されるようにしろ
それができないならC++は諦めた方がいい
905デフォルトの名無しさん:2014/01/16(木) 21:25:49.69
ついでに
渡すメモリを書き込むときとそれを読み込むときは
クリティカルセクションオブジェクトかCMutexで排他制御しとけ
でないと書き込み結果が伝わる保証がない
906デフォルトの名無しさん:2014/01/16(木) 21:44:15.12
> (LPALAM)s
一体何が起きるんだろう? このKUSOコード
とりあえずSendMessageというKUSO呼び出しに変えたらいいんじゃね
907デフォルトの名無しさん:2014/01/16(木) 22:36:43.44
可変長のデータ送る場合はWM_COPYDATA使っとけ
908デフォルトの名無しさん:2014/01/16(木) 22:40:24.56
>>903
PostMessageは相手に届く前にリターンするからそれじゃうまく行かないよ
送り側でnewして受け側でdeleteするか、WM_COPYDATAを使う
909デフォルトの名無しさん:2014/01/16(木) 22:45:10.44
>>906も指摘しているように(LPALAM)sは全然おかしい
やりたいのは(LPARAM)(TCHAR*)sだろうけどそれでもダメ
910デフォルトの名無しさん:2014/01/17(金) 01:21:37.47
肘が乾燥でカサカサして痒いのですがどうしたらいいでしょうか?
ハンドクリームとボディクリームとかゆみ止めの軟膏は塗ってみましたが
塗った瞬間しかよくなりません。
30分も経つとまた痒くなってきます。
911デフォルトの名無しさん:2014/01/17(金) 01:29:13.72
>>911
病院に行くといいよ
912デフォルトの名無しさん:2014/01/17(金) 01:46:00.67
ウィンドウメッセージで文字列受け取る奴はMBCS/Unicodeの変換があるから、
メッセージによってコピーされたり変換されたり挙動が違うんじゃねーの?

>>910
皮膚厚くなってるようなら風呂で角質を軽く削っとけ
913デフォルトの名無しさん:2014/01/17(金) 03:06:52.18
>>911-912
ありがとうございます。
帰りにまだ開いてる薬局があったら角質取るやつを買ってみます。
それでだめなら病院行ってみます。
914デフォルトの名無しさん:2014/01/17(金) 03:46:32.05
>>908
dllからexeへ送る場合それじゃ落ちるだろ

>>909
「全然おかしい」という日本語はおかしい

>>913
角質を削る刺激でさらに皮膚が厚くなる
915デフォルトの名無しさん:2014/01/17(金) 08:59:37.96
全然を肯定文に使うのは正しい。
むしろそれが本来の使い方。
916デフォルトの名無しさん:2014/01/17(金) 09:55:20.31
>角質を削る刺激でさらに皮膚が厚くなる

いいことをきいた。
ではどうすれば皮膚を薄く出来る?
917デフォルトの名無しさん:2014/01/17(金) 10:08:06.20
>>916
削りすぎないこと
918デフォルトの名無しさん:2014/01/17(金) 12:14:12.67
>>916
アンモニアに漬け込む
919デフォルトの名無しさん:2014/01/17(金) 12:32:49.34
http://wired.jp/2014/01/16/death-pc-also-mean-end-web/

ブラウザ死亡確定
開発効率の向上とインストールの簡易さ向上により
もはやWebアプリの利点は失われた。
920デフォルトの名無しさん:2014/01/17(金) 21:09:17.17
ボタンのイベントに
MyDialog dlg;
dlg.DoModal();
だけの処理を書いて、呼び出したダイアログを閉じたあと、
再度ボタンを押してダイアログを表示しようとすると
アサーションで落ちるんだけど、なぜ?
呼び出すダイアログでは特に処理もしてないんだけど、
ポインタにしてnewしてもダメだし2度目がダメな理由がさっぱりなんだけど
何が原因かわかりますか?
921デフォルトの名無しさん:2014/01/17(金) 21:14:18.57
まず環境と使用しているフレームワークを説明しろ。
話はそれからだ。
922デフォルトの名無しさん:2014/01/17(金) 21:24:26.94
原因はアサーションに書いてるだろ
923デフォルトの名無しさん:2014/01/17(金) 21:24:50.40
>>921
ごめんなさい
os は windows7 で
開発環境は visual studio 2010 pro
mfcのダイアログベースを使ってます
924921:2014/01/17(金) 21:28:11.53
>>923
今試したが俺はならない。諦めろ。
Windows 8.1
Visual C++ 2013
MFCのCDialogとCDialogExで確認した
925デフォルトの名無しさん:2014/01/17(金) 22:54:21.60
cymon.sysじゃねえよな?
926デフォルトの名無しさん:2014/01/18(土) 01:16:37.69
>>920
assertが出るとプログラムがそこで一時停止するから、
ソースコードのどこでassertしたのかを確認する。
ライブラリの中でassertしたならスタックトレースで
呼び出し履歴をチェック。
927デフォルトの名無しさん:2014/01/18(土) 04:42:06.23
間違えてどこかでメッセージループ終了させちゃったんだろ
928デフォルトの名無しさん:2014/01/18(土) 06:16:00.43
>>923
タッチパネルなモニタ繋いでる。に100ペリカ
929デフォルトの名無しさん:2014/01/18(土) 06:55:11.81
>>928
なんで?
俺はおタッチパネルだけどならないぞ。
930デフォルトの名無しさん:2014/01/18(土) 08:13:42.17
>>929
OLE関係のメソッドが不正アクセスするというMFCのBug
に遭遇しているのではないかと
なおタッチパネルでないと再現しない。
931デフォルトの名無しさん:2014/01/18(土) 14:07:21.72
>>912
>ウィンドウメッセージで文字列受け取る奴はMBCS/Unicodeの変換がある
それは>>912がばかな茸
932デフォルトの名無しさん:2014/01/18(土) 15:17:24.42
>>912
クリップボードと間違えてんじゃね
933デフォルトの名無しさん:2014/01/18(土) 23:45:30.47
すみませんが教えてください
ユーザーにいくつかの項目を入力させる画面を作っているんですが、
すべての入力が終わってからチェックという方法ではなくて、
一つの項目ごとに関連する情報を表示させたい
たとえば、任意の金額を入力し、確定するとその金額で購入できる商品を即座に表示したい等
この場合、OnKeyDownでエンターが押された場合に処理する、
OnKillFocusで処理する等あると思うんですが、皆さんはどんな処理をさせますか?
個人的にはOnKillFocusって使いづらいイメージがあるのですが、
一般的にはKillFocusで処理するのでしょうか?
934デフォルトの名無しさん:2014/01/19(日) 00:00:55.64
俺はKillFocusでやってる
KeyDownだとマウスでのフォーカス移動に対応できないし
935デフォルトの名無しさん:2014/01/19(日) 02:26:10.95
OnKillFocusでの処理は一番やってはならないユーザーインターフェース。
実際に操作してみて理由がわからないような低脳なら
他人の使うプログラムを作ることは諦めた方がいい。
936デフォルトの名無しさん:2014/01/19(日) 02:46:57.71
じゃあなんでKillFocusなんてものが存在するのか

まあフォーカスとかChangeとかはへんな連鎖でぐちゃぐちゃになる場合が多いが

金額はなにをもって確定とするのか
937デフォルトの名無しさん:2014/01/19(日) 03:27:40.43
プログラミング言語と関係ないユーザーインターフェース設計の話は他でやれ
938デフォルトの名無しさん:2014/01/19(日) 03:27:40.82
>>931
>>932
Windowsでは割と自動変換におんぶにだっこしてもらってるってのは自覚しとけよ
http://msdn.microsoft.com/ja-jp/library/windows/desktop/dd317720(v=vs.85).aspx
まぁ変換が起きるのはSendMessageの時で、PostMessageの時は「同期専用メッセージだゴラ」ってエラーになったりするようだが
939デフォルトの名無しさん:2014/01/19(日) 06:31:58.88
>>933
項目毎に確定ボタンみたいなのはあかんのか
940デフォルトの名無しさん:2014/01/19(日) 08:01:44.95
単純な質問でーす
みんなコンパイラは何を使ってますか?
941デフォルトの名無しさん:2014/01/19(日) 08:10:46.33
VC++EE
942デフォルトの名無しさん:2014/01/19(日) 09:45:29.13
cl+clang (IDEなし)
943デフォルトの名無しさん:2014/01/19(日) 12:01:55.48
産まれて初めて使ったコンパイラは
Kcompilerだったかな
944デフォルトの名無しさん:2014/01/19(日) 12:16:05.35
UCSD p-system
945デフォルトの名無しさん:2014/01/19(日) 12:28:57.61
Visual C++を使いつつ確認用にG++とclang
946デフォルトの名無しさん:2014/01/19(日) 13:08:58.82
>>939
お前が普段使っているツールのすべての入力欄に確定ボタンがつく呪いをかけた
947片山博文MZコスモ ◆T6xkBnTXz7B0 :2014/01/19(日) 13:51:20.96
キー入力が着たらタイマーを解除してタイマーで待つ
タイマーの時間が来たらフォーカス確認し、フォーカスがなければ確定
Enterキーならすぐ確定
Escキーならタイマー解除して値を元に戻す
948デフォルトの名無しさん:2014/01/19(日) 15:04:24.38
>>940
lsic試食版
949デフォルトの名無しさん:2014/01/19(日) 16:15:28.65
>>940
最初のコンパイラーは多分 FACOM 230 の FORTRAN コンパイラーだったと思う。
自宅は X68K で GCC (真理子版) かな。
いまは、ほとんど Visual Studio。
950デフォルトの名無しさん:2014/01/19(日) 17:48:57.27
>>948
20年前からタイムスリップした?
951デフォルトの名無しさん:2014/01/19(日) 18:16:39.54
http://shnya.jp/blog/?p=195
ここにあるようなsplitを使用する関数を繰り返し呼んだ場合、メモリリークはするものでしょうか?

void foo(string str)
{
  vector<string> v = split(str, ",");
  ・・・
}

というか、stringはdeleteしなければいけないものなのでしょうか?
952デフォルトの名無しさん:2014/01/19(日) 18:19:22.93
newしてないからしない
953デフォルトの名無しさん:2014/01/19(日) 18:48:36.16
どうもです。
954デフォルトの名無しさん:2014/01/19(日) 19:54:32.79
>>950
知ってる人がいて安心した
955デフォルトの名無しさん:2014/01/19(日) 20:06:16.24
初はLSI C-86 試食版
って書こうと思ったら>>948にあった
956デフォルトの名無しさん:2014/01/19(日) 21:20:32.30
>>955
今いる人はだいたいこっからか
俺もそう
957デフォルトの名無しさん:2014/01/19(日) 21:27:44.73
俺も
その後、djgccでDOS Extenderでやっていたから結局farポインタとか使わなかったな
958デフォルトの名無しさん:2014/01/19(日) 21:35:40.90
BDS-C
959デフォルトの名無しさん:2014/01/19(日) 21:49:03.05
aztech
lattice
960デフォルトの名無しさん:2014/01/19(日) 22:19:12.69
ラチスは20万ぐらいしたんだぞぉ
961デフォルトの名無しさん:2014/01/20(月) 03:03:41.53
LSI-C86試食版の標準ライブラリのバグはわしが指摘した。

のはどうでもいいんだが、今でもWindowsで使っているなら馬鹿。
962 ◆QZaw55cn4c :2014/01/20(月) 03:06:17.05
ほ,ほんとですかぁ‥‥高すぎる‥‥RMSは神か,はたまた食い扶持を奪った悪魔か‥‥悪魔に違いない‥‥絶対そうだ‥‥
963デフォルトの名無しさん:2014/01/20(月) 04:32:29.14
LSI-Cで試食版じゃないやつって存在するの?
964デフォルトの名無しさん:2014/01/20(月) 06:33:45.70
>>963
「64KiB 以上のコードを生成できない」という試用版の縛りを取り除けば、5万くらいの製品だったかと
965デフォルトの名無しさん:2014/01/20(月) 07:15:29.73
lsic試食版はどう考えてもてもジョークだろ
MSですら無料の出してるんだし…
966デフォルトの名無しさん:2014/01/20(月) 07:24:18.82
当時、MSも無料版出してたっけ?
dos用では、lsic試食版がほぼ唯一だったような気がするんだが。
967デフォルトの名無しさん:2014/01/20(月) 07:26:22.23
>>965
MS-DOS時代(1995年より前)はただのコンパイラとかキチガイも同然だった‥‥
968デフォルトの名無しさん:2014/01/20(月) 07:33:28.25
今でも配布しているのな。
ベクターのファイル日付が1993年。20年前か。。
969デフォルトの名無しさん:2014/01/20(月) 07:44:28.14
LHA.EXEがLSI-C86試食版で書かれたんだっけ。
作者はプログラム業ではなくお医者さんで。
970デフォルトの名無しさん:2014/01/20(月) 07:52:57.46
次スレ

【初心者歓迎】C/C++室 Ver.89【環境依存OK】
http://toro.2ch.net/test/read.cgi/tech/1390171944/
971デフォルトの名無しさん:2014/01/20(月) 07:59:18.87
>>965
まさかと思うが、今の話してないよな? (w
972デフォルトの名無しさん:2014/01/20(月) 11:56:00.69
>>971
ごめん、今の話かと思った
973デフォルトの名無しさん:2014/01/20(月) 12:10:20.22
>>967
gccは既にあったのだが
974デフォルトの名無しさん:2014/01/20(月) 13:29:23.26
にわかの浅薄な知識自慢イラネ
975デフォルトの名無しさん:2014/01/20(月) 16:01:03.47
にかわ?
976デフォルトの名無しさん:2014/01/20(月) 16:11:02.41
当時gccは16ビット環境ではまともに動いてなかった気がする。

>>963>>964
試食版はSmallメモリモデルだけだね。
製品版は各種メモリモデルに対応していたと思うし、
標準ライブラリなどのソースもついてたと思う。
977デフォルトの名無しさん:2014/01/20(月) 16:22:55.12
>>976
DJGPP もkmc版も使っていだけど、正常に動いていましたよ
mix版は知らない
978デフォルトの名無しさん:2014/01/20(月) 16:24:41.26
OS9版gcc を lint として使ってた
979デフォルトの名無しさん:2014/01/20(月) 22:20:22.29
djgcc(後にdjgppに改名)がDOS環境で動いていたね。
日本語環境へのローカライズはNiftyのフォーラム辺りの有志がやってたような記憶が。

実メモリを大きく超えるメモリを確保して、DOSなのに仮想記憶でHDDをガリガリアクセスしているのに感動したな。
980デフォルトの名無しさん:2014/01/21(火) 00:04:16.23
>>973
gcc は go32/i386sx以上でOKだったかと
981デフォルトの名無しさん:2014/01/21(火) 00:05:20.17
>>977
>DJGPP もkmc版も
だからそれは32ビットプロテクトモードでの話かと
982デフォルトの名無しさん:2014/01/21(火) 00:11:23.93
1993年頃には gcc を使ってた記憶がある
983デフォルトの名無しさん:2014/01/21(火) 00:51:18.18
MINIXでccしてた
984デフォルトの名無しさん:2014/01/21(火) 03:10:09.04
加齢臭で充満してる
くせーぞ、ジジイ
985デフォルトの名無しさん:2014/01/21(火) 04:50:59.15
カレー臭の親父と
ウンコ臭の美女と
986デフォルトの名無しさん:2014/01/21(火) 05:09:23.68
スペルマにまみれた浮浪者と
987デフォルトの名無しさん:2014/01/22(水) 01:40:24.76
tcc(Tiny C Compiler)使ってる奴は居ないのか
C99専用だがアホみたいにコンパイル速いし実行ファイル作らずに直接実行できたりLL並
作者はQEMUとかFFMPEGを立ち上げた人でJavascriptで動く仮想PC作ったりもしてる変態
988デフォルトの名無しさん:2014/01/22(水) 06:01:05.43
うめ
989デフォルトの名無しさん:2014/01/22(水) 06:17:15.51
union ta{
int a;
int b;
};
990デフォルトの名無しさん:2014/01/22(水) 07:34:53.47
>>987
そいつの作った、超小さい変態ccのほういじってたことがある
pccだったか
call convention さえうまく書ければwin32で実用にもなる
末尾に_12_とかって書いたらstdcallになるようにしてみてた
991デフォルトの名無しさん:2014/01/22(水) 08:12:09.45
バージニア大のlccは使っていた事がある
992デフォルトの名無しさん:2014/01/22(水) 11:45:54.68
ゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミwwwwwwwwwwwwww
993デフォルトの名無しさん:2014/01/22(水) 17:51:42.27
994デフォルトの名無しさん:2014/01/22(水) 18:55:30.59
ゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミwwwwwwwwwwwwww
995デフォルトの名無しさん:2014/01/22(水) 19:20:05.91
uyの朝鮮人疑惑
996デフォルトの名無しさん:2014/01/22(水) 20:14:16.87
またhogeキチガイが荒らしてるの?
997デフォルトの名無しさん:2014/01/22(水) 20:23:48.14
>>996
uyが増殖したらしい
998デフォルトの名無しさん:2014/01/22(水) 20:28:20.37
ウメッシュ
999デフォルトの名無しさん:2014/01/22(水) 20:31:02.61
酔わないウメッシュ
1000デフォルトの名無しさん:2014/01/22(水) 20:32:43.16
hogeは禁止されていない
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。