boolやenumをintで代用する奴は氏んだ方がよい
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNG「チミはなんで勝手にboolなぞという型で受け取ってるのかね!これは列挙型だよ!君のせいで修正が大変だ」
とか言われると心底ムカつく。
みんなはどうよ?
0348デフォルトの名無しさん
NGNG基本型にもコンストラクタがあるんだよね。
0349デフォルトの名無しさん
NGNG0350デフォルトの名無しさん
NGNGint i = int(54.28f * 0.999f);
キャストよりコンストラクタの方が美しいな。
0351デフォルトの名無しさん
NGNGそれはコンストラクタのように見えてコンストラクタではない
class A {...};
class B {
...
operator A()const{}
};
A a;
B b;
b=B(a);
この B(a) がコンストラクタではないように
一見コンストラクタに見えてコンストラクタではないこともある。
0352デフォルトの名無しさん
NGNGコピーコンストラクタじゃないのかと(ry
0353デフォルトの名無しさん
NGNGoperator A() はコピーコンストラクタじゃないだろ
ひさびさにアホ登場
0354デフォルトの名無しさん
NGNGヘェー
で、どこでoperator A()が使われてるの?
>>350
それはコンストラクタのように見えてコンストラクタではない。
変換関数だったかなんかそんな名前が付いてる。
0355デフォルトの名無しさん
NGNG0356デフォルトの名無しさん
NGNG変換関数ってoperator T()のことじゃないの?
0357デフォルトの名無しさん
NGNGint i = int(54.28f * 0.999f);
は一時オブジェクト作るから無駄だよね
0358デフォルトの名無しさん
NGNGでoperator T()が機能しているとするとすると、
int i(54.28f * 0.999f);
も基本的には同じ仕組みになっているはず。
しかしコンパイラは前者をすんなり通して、後者にだけ暗黙のキャストの警告を出す。
やはり前者は明示的なキャスト(の別表記)と解釈するのが妥当ではないか?
0359デフォルトの名無しさん
NGNGファンダメンタルはどのような表記をしても
コピーコンストラクターではなくてキャストと同じ
int i = int(54.28f * 0.999f);
int i(54.28f * 0.999f);
この2つのコードはアセンブラレベルで同じになる
0360デフォルトの名無しさん
NGNGユーザー定義型でも保障されてなかったっけ。
0361デフォルトの名無しさん
NGNGint(54.28f * 0.999f);
(int)(54.28f * 0.999f);
0362デフォルトの名無しさん
NGNG0363デフォルトの名無しさん
NGNGたとえば情報が劣化するから明示的に呼び出してもらいたいときとか使えないし。
0364デフォルトの名無しさん
NGNG名前つきの関数を用意すればいいだろ。
0365デフォルトの名無しさん
NGNGtemplateとかで不便じゃん。
0366デフォルトの名無しさん
NGNGconstructorだけexplicit指定可能ってのは片手落だと思う
標準libraryなど簡単に変更できない位置付けのclassと
それの存在を踏まえた上でのapplicationなclassとの間で型変換をしたいとき
標準library側のclassのconstructorをいじるわけにはいかないから
applicationなclass側で標準library側のclassに対する
変換methodを用意することなるわけだが、
このときexplicit指定できないことによる痛みを実感してしまう
名前付きのmethodにすれば不明瞭さは無くなるが
templateのような場面で汎用性を維持するのが難しくなる
0367デフォルトの名無しさん
NGNGC#は奇形児Javaと違ってよいC++の子供だね。
0368デフォルトの名無しさん
NGNGC#はJavaの子
0369デフォルトの名無しさん
NGNGJavaの孫ではないわいな〜♪
それが何より証拠には〜♪
なんでもかんでも取り入れる♪
0370デフォルトの名無しさん
NGNGそれは隔世遺伝というんですよ
0371デフォルトの名無しさん
NGNG0372デフォルトの名無しさん
NGNG0373デフォルトの名無しさん
NGNG0374デフォルトの名無しさん
NGNGJava= 無頭児
C# = シャム双生児
0375デフォルトの名無しさん
NGNGハム・ソーセージ美味しい!
0376デフォルトの名無しさん
NGNGハムの人?
0377デフォルトの名無しさん
NGNGハム太郎の中の人も大変だな。
0378デフォルトの名無しさん
NGNG太
郎
美
味
し
い
!
0379デフォルトの名無しさん
NGNG動物虐待でタイーホ!!
0380デフォルトの名無しさん
NGNG0381デフォルトの名無しさん
NGNG言い返してやれ。
0382デフォルトの名無しさん
NGNG大前提:高級言語の話をアセンブラレベルで言うな。
0383デフォルトの名無しさん
NGNG0384デフォルトの名無しさん
NGNG同じレベルで話せると思うが
0385デフォルトの名無しさん
NGNGx86でもキャリーフラグなどはboolと考えてもいいんじゃないか?
あとbit系命令でメモリアクセスもできたはず
0386デフォルトの名無しさん
NGNGZ80のFレジスタはある意味bool型
0387デフォルトの名無しさん
NGNGで、_Boolできちゃったのよね。
無いと使い物にならない糞言語だって言われる時代が来たのが明白になったから。
この状況をどう同じレベルで話す?
0388デフォルトの名無しさん
NGNGそう言ってる奴の頭が使い物にならないだけだろ
0389デフォルトの名無しさん
NGNG1 / 0 を使う。
なに考えてんだか。
0390デフォルトの名無しさん
NGNGC厨の頭に真や偽などという人間の発想に近い概念はない。
あるのはただ0か1かのみなのだ。
0391デフォルトの名無しさん
NGNG0392デフォルトの名無しさん
NGNGプログラムに必要な真偽値は論理学の真偽じゃねえ。
そうである か そうでない かだけだ。
そしてそれは 0 と 1 では決してない。
0393デフォルトの名無しさん
NGNGRuby や Scheme の 〜? の方が自然でいい感じ
0394デフォルトの名無しさん
NGNGその違和感は慣れでなんとかなりますよ
慣れればいいだけなんですよ
0395デフォルトの名無しさん
NGNGあらゆる場所で
if (! isFull()) {
って書かれてたソースを見たことがある。しかも、「!」使ってない場所は一つも無し。
当然、「!」を取って、メソッド名を isFoundEmpty に変えて、戻り値のboolean値を反転させた。
そのあと、何で「リファクタリング」にこの作業が紹介されてないのか、子一時間悩んだ。
こっちのほうがわかりやすいのに。
>>394
それは言ってはいけない言葉だと知れ。
0396デフォルトの名無しさん
NGNG!isFull のが分かりやすい。なんで変えたの。
呼び出す側の都合に合わせすぎると疎結合になる。
0397デフォルトの名無しさん
NGNGお前は大馬鹿だ。
満タンの逆は空っぽか?
ガソリンスタンドに行ってガソリンの残りが満タンじゃなきゃ
給油してたのを空っぽになってから給油するのか?
ガソリン空なら車は停止してるわ。
0398デフォルトの名無しさん
NGNG/* 一杯のときは何もしない */
} else {
ここに処理を書く
}
0399デフォルトの名無しさん
NGNGif(Not isFull())
0400デフォルトの名無しさん
NGNG0401デフォルトの名無しさん
NGNGif(not isFull()) { ... }
is not full の順番にならんがな...。
0402デフォルトの名無しさん
NGNGキャストすれば代入できるよね。
内容の保証まではしてない罠。
0403デフォルトの名無しさん
NGNGC/C++ はキャストすりゃ何でもアリだからな。
0404デフォルトの名無しさん
NGNGちゃんとした bool 値に変換されるよね。
0405デフォルトの名無しさん
NGNG(bool)1 と (bool)3 が同じ表現を持つと保障する必要性はないのかな?
別に if(b == true) と書いても
if(b != false) のように判定するようなコードを吐けばいいだけだし。
どちらにしろ bool だと特に何も問題が起こらないね。
0406395
NGNG依存関係は最初によく考えたさ。結合強度が高くなる設計の、
2クラス間でしか使われてないメソッドだった。
にもかかわらず、問い合わせの if(! isFull()) は山ほどあった。
わざわざ>>398や>>399みたいな冗長な書き方したくなっちまう
定義ってのは、つまるところ定義そのものが間違っている。
修正してやる。
>>397
馬鹿はあんた。
isEmptyじゃないぞ。isFoundEmptyだぞ。空なものが見つかった、だぞ。
俺が問い合わせたいのはな、isFullってのはな、「満室か?」ってことだ。
その逆は、「空きが見つかったか?」だ。
「空っぽか?」じゃないんだよ。何得意げな顔して「空っぽか?」、だ。
お前は本当に頭が空っぽなんじゃないかと問いたい。問い詰めたい。
0407デフォルトの名無しさん
NGNG0408デフォルトの名無しさん
NGNG単語より演算子のほうが読みやすいと思うんだが…
0409デフォルトの名無しさん
NGNGん?「空っぽいかどうか」じゃないの?
0410デフォルトの名無しさん
NGNG0411デフォルトの名無しさん
NGNG0412395
NGNGをJavaちっくに並べ替えたんだよ。
isFoundAEmptyRoom
で、長いから
isFoundEmpty
にしたんだよ。
分かりずらくて悪かったな。直しておくよ。
0413デフォルトの名無しさん
NGNGhasRoom
0414デフォルトの名無しさん
NGNGわざわざ違う単語を使うのは混乱の元だ。
0415デフォルトの名無しさん
NGNGunderoccupied って言うんだ。
でも、この単語を日本人がどれだけ知ってる?
こんな単語を使うのは、英語圏の人かただの自己満足だ。
0416デフォルトの名無しさん
NGNGそんな単語を紹介するのは、頭でっかちの人かただの自己満足だ。
0417402
NGNGC#もキャストすれば代入可能。(Javaにはenumはないみたい)
0418デフォルトの名無しさん
NGNG列挙は簡単になるし、C/C++,C#とは違って、
クラスのように継承してタイプコードに実装を統合できるのが魅力だ。
今はEnum用途のクラスを自分で定義するしか無いがな……。
イマニミテオレ。
0419デフォルトの名無しさん
NGNGC#とは同じ。JavaのEnumクラスはC#のパクリだからね。
0420デフォルトの名無しさん
NGNG>JavaのEnumクラスはC#のパクリだからね。
0421デフォルトの名無しさん
NGNG0422デフォルトの名無しさん
NGNGJava がどんどんシンプルじゃなくなっていく。
大丈夫か? 初心を忘れたんじゃないか。
気が付けば MS の狙いどおりか。。。
0423デフォルトの名無しさん
NGNGJava作る側にとってはJavaがシンプルだと作りやすいけど、
その分使う側が苦労する。
CISCがシンプルだと作る側が作りやすいけど、
その分人間やコンパイラが苦労するのと同じように。
0424デフォルトの名無しさん
NGNG0425デフォルトの名無しさん
NGNGんなこたぁない。
0426デフォルトの名無しさん
NGNG自己満足じゃない!
日本人PGの英語能力の底上げは是非とも必要な事だ!
適切な単語があったらそれを使ったほうがいい!
0428デフォルトの名無しさん
NGNG(void*)0
0429デフォルトの名無しさん
NGNG> CISCがシンプルだと
それはすでに CISC じゃねーだろ。
0430デフォルトの名無しさん
NGNG0431デフォルトの名無しさん
NGNGそもそもRISC
0432デフォルトの名無しさん
NGNGは処理系依存ではなかったか?
0433デフォルトの名無しさん
NGNG0434デフォルトの名無しさん
NGNG0435デフォルトの名無しさん
NGNG>>423 が RISC を引き合いに出しているのは誰の目にも明らかだと思うが、主語が CISC なのはおかしいと言ってるだけだろ ?
日本語にしてみな...
「複雑な命令セットを持つコンピュータ (の命令セット) が単純だと作りやすいけど、」
0436デフォルトの名無しさん
NGNGunion{
int *p:
intptr_t i;
};
i=0;
*p=123212321;
intptr_tはポインタと同じサイズの整数型。名前間違ってるかも
0437デフォルトの名無しさん
NGNG保証されてるんだろうかとか考えることがあるんだけど、
保証されていようがされていまいが、
流石にそうなってない環境なんてないよね? よね?
0438デフォルトの名無しさん
NGNG> (int)0 の内部表現が 0 だというのは
禿しく意味不明。
(void*)0 の内部表現が int の 0 と同じだと言いたいのか?
そうであれば違うアーキテクチャは山ほど存在した。
0439デフォルトの名無しさん
NGNG違う違う。
例えば負の数はアーキテクチャによって
表現法が変わることがあるでしょ?
それと同じように、0 や正の数でも
表現法が変わることもあるのかどうかってこと。
0440デフォルトの名無しさん
NGNG整数0のすべてのビットが0であるかどうかと言う問題ではないか?
0441デフォルトの名無しさん
NGNG内部表現のすべてのビットが、ね。
C の段階では全てのビットは 0 であるとされる筈。
C の段階でのビット表現と
内部表現のビット表現が同じであるということが
保障されていれば何も問題ないんだけど...。
0442デフォルトの名無しさん
NGNGMS-IME のバカ...。
0443デフォルトの名無しさん
NGNG0444デフォルトの名無しさん
NGNG0445デフォルトの名無しさん
NGNG・ポインタと整定数0を比較するとNULLポインタとの間でだけ一致する
だろ。「定数」だけ。
あと、
・static変数の定義を省略すると=0を付けたのと同じ
・論理値を必要とするところでポインタを書くと==0と付けたことになる
から、うまいこと省略して書ける。
0446デフォルトの名無しさん
NGNG> ・論理値を必要とするところでポインタを書くと==0と付けたことになる
> から、うまいこと省略して書ける。
?
0447デフォルトの名無しさん
NGNG!=0 ?
■ このスレッドは過去ログ倉庫に格納されています