トップページtech
63コメント17KB

C++でconstを厳密に使っている奴=神

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
const char* const kickYourAss( const string& str ) const
みたいな関数にアクセスしたくない。
0002デフォルトの名無しさんNGNG
そうだね
0003デフォルトの名無しさんNGNG
言われなくても削除依頼くらいだせ
0004デフォルトの名無しさんNGNG
今日はウンコスレが乱立するね。
今日は暑いからしょうがないね。
0005デフォルトの名無しさんNGNG
>>1
甘いよ。

const string& const kickYourAss( const string& src, const string& dst = string()) const
throw()
{
〜略〜
return dst;
}
0006デフォルトの名無しさんNGNG
重複か関連か
【C++】 const だけでメシが3杯食えちゃうスレ
http://pc5.2ch.net/test/read.cgi/tech/1078193971/l50
0007NGNG
いや、ここはクラスのメソッドを厳密にconstでもって定義している奴が自慢し、そしてオレが彼を称えるスレであって、3杯飯を食うスレではない。
0008NGNG
virtual const string& const kickYourAss( const string& src, const string& dst = string()) const = 0
純粋仮想関数の"=0"ってどういうセンス?

っていうクソスレも立てたかったんだけどね。
#define PURE =0
でいいだろとか言われて、だったら言語仕様としてなんで"pure"としなかったんだ?
という反論に、「確かにそうだ」という皆の見解一致で終わりそうだったのでやめたんだから感謝しる。
0009デフォルトの名無しさんNGNG
このスレ的にはWinMain逝ってよしだね
const int WINAPI WinMain(const HINSTRANCE hInst, const HINSTRANCE hPrevInst, const LPSTR lpszCmdLine, const int nCmdShow)
まではできるけどLPSTRをLPCSTRにはできない(windows.hの中でWinMainのプロトタイプがあるから)

なんでmain最高
const int main(const int iArgc, const char *const *const ppszArgv)
0010デフォルトの名無しさんNGNG
>>9
>LPSTRをLPCSTRにはできない

ブー、出来ます
00119NGNG
>>10
本当だ。拡張子をcからcppにしたら動いた。
00129NGNG
と思ったらただのオーバーロードじゃねーか、リンクできねーぞヽ(`Д´)ノ
0013デフォルトの名無しさんNGNG
>>12
気付くの遅すぎ。
0014デフォルトの名無しさんNGNG
windows.hをインクルードしなければ……。(フフフ
0015デフォルトの名無しさんNGNG
extern "C"つけねーとダメだぞ
00169NGNG
>>15
つけたら、オーバーロード関数群の中の 1 つだけしか "C" にできないって言われる。
そしてこれも無理。
#undef __cplusplus
#include<windows.h>
どうしてもやるんだったら、こんなこと考えてないでwinuser.hの中のプロトタイプを書き換えればいいんだろうけど。
0017デフォルトの名無しさんNGNG
LP??? っていうマクロうざくね?Win16時代の汚物だよな。
オレ死んでも使わない。ポインタは*がついてなければポインタじゃない。
こういうマクロは使うけどね。
typedef vector< hogetype* > Hogepo_vec;
0018デフォルトの名無しさんNGNG
typedefはマクロと違う
0019デフォルトの名無しさんNGNG
>>17
これで文句なし
PSTR *Hoge;
0020デフォルトの名無しさんNGNG
なぜLPFLOATがないんだぁっ
LP○○を使うのが好きなのにぃっ
0021デフォルトの名無しさんNGNG
ていうか>>6
0022デフォルトの名無しさんNGNG
ときどきLPしかないやつがあって統一できないのが鬱
0023デフォルトの名無しさんNGNG
LPSTRがchar*なのはおかしい、char=STRか?
LPSTRならchar**だ。
0024デフォルトの名無しさんNGNG
>>20
あるじゃないか。
って危うく言うところだった。俺のK2Editorでは間違えて強調表示されるようになっていたもんで。
0025デフォルトの名無しさんNGNG
>>23
16ビット時代にはサイズが16ビットのnearポインタとサイズが32ビットのfarポインタがあって、
nearポインタがただのP、farポインタがLPって区別していたんだよ。LはLongのL。
0026デフォルトの名無しさんNGNG
>>25
そんなことは聞かれてないと思うけど
0027デフォルトの名無しさんNGNG
WinMainのLPSTRはホントに書き換わる可能性があるから
LPCSTRにしたらだめだって聞いたことがあるんだが。
CreateProcessに渡す引数のほうだったかな
0028デフォルトの名無しさんNGNG
>>27
CreateProcessの方じゃないか?
http://www.microsoft.com/japan/developer/library/jpwinpf/_win32_createprocess.htm

ところでPathGetArgsはどう考えても中でキャストしているとしか思えない。
0029デフォルトの名無しさんNGNG
override
0030デフォルトの名無しさんNGNG
WinExec
とか
ShellExecute
とか種類多杉。

CreateProcess
引数多杉。

さらにセキュリティからExeからExeを起動するような時代は終わった。
0031デフォルトの名無しさんNGNG
>>30
使い分け方法
WinExec:過去の遺物。使用禁止。
ShellExecute:関連付け起動用。
CreateProcess:操り人形化したいとき。
system:Cライブラリonlyで行くとき、とりあえずやりたいとき。

ただスレ違い
http://pc5.2ch.net/test/read.cgi/tech/1089283388/l50
0032デフォルトの名無しさんNGNG
とりあえずはSEだろ
0033デフォルトの名無しさんNGNG
>>1
厳格と厳密を履き違えんなよ。
しかもコピーが返される戻り値をconst指定しても意味ないし。
■ このスレッドは過去ログ倉庫に格納されています