トップページ⇒tech
304コメント75KB

宗教戦争

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
コーティングに関する宗教戦争はここでやってCray。
ハンガリアン記法とか、goto&多重継承の悪用とか。
0116デフォルトの名無しさんNGNG
>>112 おちけつ。ラテン読みと英語読みの違いだろ
0117デフォルトの名無しさんNGNG
>>115
わざわざ flame専用スレに書く香具師がいないだけであって。。
0118デフォルトの名無しさんNGNG
何か宗教戦争無い?
0119デフォルトの名無しさんNGNG
あの事件からもうすぐ一年だ。この辺逝けばやってるんじゃないのか?

http://corn.2ch.net/news5/
0120デフォルトの名無しさんNGNG
>>118
Ruby vs その他の糞言語
0121デフォルトの名無しさんNGNG
flame用の隔離スレを立てておくと害虫はそっちに逝ってくれるので便利
0122デフォルトの名無しさんNGNG
彡≡≡≡≡|≡ミミヾ /         \         _-=─=-   /     `           //-=─=ヽ
 ̄ ̄ ̄ ̄ ̄ ̄\ミiiiiiヽ            \    _-=≡///:: ;; ''ヽ丶/ヾ ヾ .,! !,,!_´,,//_/ /=″″ヾヾゞ″ヽ
           \iiiiiiiゞ         ─  |  /    ''  ~    ヾ/=/`''~~       /彡 ノ       》   ヽ   
             \iiヽ        ── | /              |=.|     二     ..|              ヽ
━━━'/  ヽ━━━ ヽミヽ _,-=-  _,-= ヽ| |                ヽ|   ──     /        《     i
  __,.::  :: __  ヽiiiii    ノ_    ヽ |≡      , 、       || ヽ ,,   、ー ̄ ∠;ヾ ∠;ミ;ミミ  ヾ    ,j
         :::      |iiiii        ヽ  .|≡_≡=-、___, - -=≡=_ / /      \ ( ノ)-( \__)   \ヽ ,=ヽ
                |iii|     ( о )   | || ,ー● |     | ●ー |┤    ./       | /             ii
    ( ● ● )      .|iiii| /_,,,,;;iiiiiiii;;;,,_ヽ |ヽ二_,(    )\_二/ |    ( 。つ\    |./  ヽ   ;  ≒/б,リ
   》━━━━《       |iiiii|///;;;;───、ヾ. |   /(      )ヽ    |    /     丶 ( __ j  \ ヾ    , 彳
  》 / ̄ ̄\ 《     |iiiiiiii|:::///\__/ヾヽ|   /  ⌒`´⌒      |    /____」 ,/,,ii,,,ミ;;      ;  / i
 《《  \ ̄ ̄/ 》》   |iiiiiiiiiii|::// ;;  ; ;; 》::::::|              /  |      |/    /  レ;こノ ij\ \\ /  ,i
  》》    ̄ ̄  《《 》》》》》iiiii|::《 ;; ;; ;》 ;;》:(    |_/ヽ_'\_/   | |    |__/   ヽ┯' ij  \   |  \
《《《《《《《《《》》》》》》》》》》》》》》iii|/ 》  ;;》 》 ;;ミ ヽ   、\_ ̄  ̄/ヽ    ヽ    -─      ヽiL._ __、_,/
0123デフォルトの名無しさんNGNG
日本を代表する宗教関係者がこのスレに興味をもちました
0124デフォルトの名無しさんNGNG
左から、rms、stroustrup,,,じゃないのか。
0125デフォルトの名無しさんNGNG
>>124
大いに藁た
0126棄教者 ◆witdLTi2 NGNG
三番目が池田先生で四番目が足裏診断だよね。
右端は誰?
0127デフォルトの名無しさんNGNG
>>126
シャクティじゃね?
0128デフォルトの名無しさんNGNG
>>126は池田先生といってるところをみると学会員です。
危険人物です。
0129棄教者 ◆witdLTi2 NGNG
普段から金正日「将軍様」、金日成「首領様」と呼んでいますが、何か?
0130デフォルトの名無しさんNGNG
キンマンコ!!
0131デフォルトの名無しさんNGNG
プログラミング界の教祖や伝道師をヲチするスレってのはマ板にあるかな
0132デフォルトの名無しさんNGNG
昔CQ出版の原稿書いてた人が
原著よんで日本ではヌルというが
本当はナルと言うんだと豪語していた記憶があるが
俺はヌルで炒ってるとりあえず

0133デフォルトの名無しさんNGNG
アニメ塗りマンセーなら塗るしかないヌル。ヌルヌル。
0134まつもとひろゆきNGNG
誰?
0135デフォルトの名無しさんNGNG
nullなりnilなり好きにしろ。
0136デフォルトの名無しさんNGNG
JAVAが最強だな
0137デフォルトの名無しさんNGNG
「憂鬱な〜」はRubyに触れていないから糞
0138デフォルトの名無しさんNGNG
Rubyに触ったら糞
0139デフォルトの名無しさんNGNG
Rubyは糞
0140デフォルトの名無しさんNGNG
emacs vs vi のスレはここですか?
0141デフォルトの名無しさんNGNG
>>140
UNIX板いけ
0142デフォルトの名無しさんNGNG
emacsの勝ちでお願いします。
0143デフォルトの名無しさんNGNG
やっぱ、
{
}
でしょ?

 {
}
って(プププ
0144デフォルトの名無しさんNGNG
ここ読め
CFAQ
http://homepage2.nifty.com/rohizuka/ka/pa_003_a.htm
0145デフォルトの名無しさんNGNG
>>144
氏ね
0146デフォルトの名無しさん NGNG
やはり「end」は糞
0147デフォルトの名無しさんNGNG
Ada...Do_Something()

個人的には、Adaは最悪。
識別子をすべて大文字で始めなきゃいけないので小指がつりそうになった。
0148デフォルトの名無しさんNGNG
>>36
普段 3. int main()
必要があれば 6. int main(int argc, char *argv[])
int main(void) は馬鹿らしい
int i; を auto int i; と書いているようなもの
(void) printf("Hello, world\n") はもっと馬鹿らしい
envp は、環境変数を操作する必要なんて普通発生しないし使ったこと無い
getenv() で十分
>>38
それは最後のセミコロンで警告どころかエラーになる
>>41
void *ptr;
>>44
const void *ptr;
ただし
char const * const str;
>>60
#define _
for(;_;)
>>66
3. boost::shared_ptr に最近したところ
>>103
{ ... } よりも begin ... end の方が FOOL!
>>143
同意
0149デフォルトの名無しさんNGNG
>>148
> >>38
> それは最後のセミコロンで警告どころかエラーになる

なんで?
0150デフォルトの名無しさんNGNG
スタイルに関してだけ言えばpython最強でみな激しく同意?
0151デフォルトの名無しさんNGNG
>>149
なんねーな。
それよりも return がない事で警告が出る。
0152デフォルトの名無しさんNGNG
>> 147
大文字・小文字を区別しないFortranが良い
0153デフォルトの名無しさんNGNG
>>152
ASM 使え。
0154デフォルトの名無しさんNGNG
>>153
いや、N88-BASIC
0155デフォルトの名無しさんNGNG
>>154
HSP は?
0156デフォルトの名無しさんNGNG
唐揚げ はにゃ〜ん
0157デフォルトの名無しさんNGNG
今気付いたんですけど
ひょっとして糞スレですか?
0158デフォルトの名無しさんNGNG
>>157
そうです。
0159デフォルトの名無しさんNGNG
アニメ塗りマンセーなら塗るしかないヌル。ヌルヌル。
0160デフォルトの名無しさんNGNG
>147
Ada は大文字/小文字の区別しないでしょ。
0161デフォルトの名無しさんNGNG
ADO
0162デフォルトの名無しさんNGNG
Adobe
0163デフォルトの名無しさんNGNG
ここ読め
CFAQ
http://homepage2.nifty.com/rohizuka/ka/pa_003_a.htm
0164デフォルトの名無しさんNGNG
>>163
          ,. -───-: 、
          /::::::::::::::::::::::::::::::::\
          / '':::::::::::::::::::::::::::::::''''' ヽ
         !::::::::::ィ::ハ:::;::::::::::::::::::::::::::!
       i::|:::i::/l/  i;::ト、:、:::i:::::::::::::::i
       |::i/レ'-i''  'ヽi-ヾ,ヽ!:::::::::::::l
       |::ハ -‐-   -─- i::::::::::::::l
       |::::::l|  |     |  | |::::::::::::::!
       |::::::ヽ | r---、! l,.!::::::::::::::l
       l::::::::::::`;'-'=,‐,='r''i~!:::::::::::::::|
         !:::::::l、::r'"´'. ' l ' i::::::::iヽ:::l
       i:l、:::|./、_____,l::::;l:/‐'ヽ!
        '!ヽ;i'>l____,.//-‐'''"ヽ
            !/ |.VVVVVVVV.lV\!. i
         |  |        |    l
0165デフォルトの名無しさんNGNG
有名な精神的ブラクラ、ですな。見たこと無いけど。
つか、張るなよ。
0166デフォルトの名無しさんNGNG
Delphi 以外は糞!!
0167デフォルトの名無しさんNGNG
>>163
C爺はスレッドの分別もつけられねえのかヴォケが
じゃなくてなんで俺がその画像を既に持っているかが謎だ。
グロ画像サイトで落としたんだっけか・・・
0168デフォルトの名無しさんNGNG
167 が、自分がアフォである事を独白しますた。
0169デフォルトの名無しさんNGNG
Unicode
0170デフォルトの名無しさんNGNG
ありふれたネタだけど、お前らインデントとカッコどうやってますか?

俺は
if ( a == b ) {
  for(;;) {
  }
}
というK&Rスタイル。

これ以外のソースが書いてあると条件反射的に修正してしまう。
特に
if (a==b){
の場合、
if (a==b) {
と空白を強制的につけて嫌がられてます。
0171デフォルトの名無しさんNGNG
>>170
俺もほとんど一緒だがifのあとに空白があると気持ち悪い
if(a == b) {
0172デフォルトの名無しさんNGNG
Pascal風
0173デフォルトの名無しさんNGNG
>>57
while(true)だと評価が入るので、for(;;)のほうが速いらしい。
先日、組み込み屋さんがどこかのMLで書いていた。
0174デフォルトの名無しさんNGNG
>>147
Pascal, Delphi, C#,,etc
はすべて最悪、と。

Ctrlは左下にある、と。
0175デフォルトの名無しさんNGNG
if( a == b )
{
  for(;;)
  {
  }
}

ですが何か?
0176デフォルトの名無しさんNGNG
if(a == b)
{
  for(; ; )
  {
  }
}
0177デフォルトの名無しさんNGNG
>>170
とりあえずindent通す。
0178デフォルトの名無しさんNGNG
sage
0179 ◆OWvri48Ioo NGNG
関数名の後は空白なし。
if や while の後は空白あり。
開くブレーズは改行せずに () に続けて。

int main(int argc, char * argv[]){
 if (a == b) {
  for (;;) {
  }
 }
 return 0;
}
0180デフォルトの名無しさんNGNG
int *pi; /* C */
int* pi; /* C++ */
と単純に分けて使っているのは正しいですか?
0181 ◆F52DmOxJlc NGNG
>>180
それ、どんな意味があるの?
C++ は知らないんでマジレスしてくれると嬉しい。

>>179
トリップ間違えてるよー。
そいつ俺だよー。
0182デフォルトの名無しさんNGNG
int *p1, p2; /* C */
int* p1, p2; /* C++ */

(´-`) ??
0183デフォルトの名無しさんNGNG
>>182
それがあるからちょっと躊躇うんだけど
おれはね、int型のポインタとintとは全く
別物だと思うから同じところで宣言したりは
しないようにしてる。
実体、ポインタ、参照。これらが仮にメモリ上の
全く同じものをさすこちになるとしても、
やっぱりおれの中の意味的にはまったく別物。
それらを同じような場所で宣言するとしても
やっぱり三つに分けてる。

int i;
int* p_i;
int& ref_i=*p_i;
ダサイって言われるんだろうなあ(変数名は便宜的なものね)。
もっと綺麗な解釈と書き方を教えてください。
0184デフォルトの名無しさんNGNG
//int i=3,*pi=&i,&refi=*pi; //こういう風には書かないってことです。
int i=3;
int* pi=&i;
int& refi=*pi;
やっぱりダサイですかねえ。
0185デフォルトの名無しさんNGNG
>>183
そういう話じゃない。
int* p1, p2; と書いた時、「int* 型の変数 p1, p2」 に見えないかという
事。

それと、ポインタ型を 2 つ以上続けて宣言する場合、
int* p1, *p2;
不恰好だと思わないの?

あと、182 の前者の何が C で、後者の何が C++ なんだ?
どちらも C であり C++ だろう。
0186デフォルトの名無しさんNGNG
意味を取り違えてました。

>int* p1, *p2;
>不恰好だと思わないの?
同じ型のポインタを二つ宣言するときは、
int *p, *p2;
と書きます。
それ以外のときは型名に*や&をくっつけてると思います。

>182 の前者の何が C で、後者の何が C++ なんだ?
これは自分のコーディングスタイルです。
gccユーザーなので両者はサフィックスに従い
はっきりと分けてます。
0187デフォルトの名無しさんNGNG
>>186
> 同じ型のポインタを二つ宣言するときは、
> int *p, *p2;
> と書きます。
int* p;
int *p1, *p2;
統一性無いと思わないの?

> それ以外のときは型名に*や&をくっつけてると思います。

思いますって・・・

> これは自分のコーディングスタイルです。

根拠は特に無いという事?
それなら、「182 の前者の何が C で、後者の何が C++」 の説明にはならない。

> gccユーザーなので両者はサフィックスに従い
> はっきりと分けてます。

使うコンパイラによりスタイルを変えるという事?
何か意味あるの?
あと、「サフィックスに従い」 の意味がわからない。
0188デフォルトの名無しさんNGNG
>>187
>> これは自分のコーディングスタイルです。
>根拠は特に無いという事?
ありません。それではあなたには何か根拠があるんでしょうか?
私のやり方に統一性がないとおっしゃるなら具体的に根拠を述べて
みてはどうですか?
ちなみに私は同じ型の変数でも別途一行設けて宣言することの方が
多いです。これはコメントを書きやすくするためでもあります。
あと182は私ではないですし、そこに書かれている書き方は
私もしていません。

>使うコンパイラによりスタイルを変えるという事?
>何か意味あるの?
>あと、「サフィックスに従い」 の意味がわからない。
要はあるファイルをCのものC++のものと分けているということです。
拡張子が.ccやcppのファイルからはなるべくC風の書き方(根拠のない
自分流のものではありますが)をしないようにしています。
コンパイラ云々は関係ありません。
0189デフォルトの名無しさんNGNG
>>179
昔はそう書いてたけど、一度viを使ってからは関数頭の開きブレースだけは行
を分けるようになった。
0190デフォルトの名無しさんNGNG
>>188
> ちなみに私は同じ型の変数でも別途一行設けて宣言することの方が
> 多いです。これはコメントを書きやすくするためでもあります。

これはいいんじゃない?
漏れはまとめて書く派だけど、分けて書いてる人は多いと思うよ。
「int 型と int * 型が別の型」 というのは立派な根拠だ。

> あと182は私ではないですし、そこに書かれている書き方は
> 私もしていません。

あれ 182 じゃなくて 180 の間違いだ。謝罪。

ともあれ、「180 の前者の何が C で、後者の何が C++」 根拠が呈示されない
と、どうして int *pi; を C 風として、int* pi; を C++ 風として扱う事に
したのかわからないと、その使い分けが正しいのか判断できないから、180 の
質問には誰も答えられない。

> 要はあるファイルをCのものC++のものと分けているということです。

そういう事なら 「ファイル名のサフィックス」 と書いた方が通じやすいと思う。

> 拡張子が.ccやcppのファイルからはなるべくC風の書き方(根拠のない
> 自分流のものではありますが)をしないようにしています。

これは絶対という事はないけど、そんな事する意味は無いと漏れは思うよ。

というか、訊きたいんだけど、それによってどんな意味を持たせたいの?
ソース見ただけで C か C++ か判断とたいというにしても、C++ ソースなら
C と非互換のヘッダーやキーワードや構文を使ってて C コンパイラじゃエラーに
なると思うし、C 互換機能しか使っていないなら、それこそ C++ 風で書く意味が
無いよ。
0191180NGNG
>>190
>「180 の前者の何が C で、後者の何が C++」 根拠が呈示されない
根拠を示せと言われても理論的な考えなどは実は何もないのですが、
今まで読んできた多くのGPLライセンスのソースがそうなっていた
ということだけが根拠となるのでしょうか。それでいてコーディング
規約などは読んだことがないというヘタレなので間違っているかもしれません。
Cに関して読んだものはLinux、gcc、binutils等です。BSDLのCコードも
基本的には今回のケースに限っていえば同じだと思っています。
C++はgccに含まれているSTLを参考にしています。
マイクロソフトのsscliやboostなどは両側に空白が入るものも含めた
3種類が割と適当に使われていました。

少し考えてみたのですが、
型名 {,*,&} 変数名
という書き方が出てくるのは思いつく限りでは
1. 変数宣言
2. 関数定義
3. typedef
の3通りあるわけですが、
2の関数宣言に関しては、一つ一つのパラメータに対して
型を指定する必要があるのでこれはいいとして、
1,3に関しては個人的には構文として疑問です。
Cに関しての詳細には疎いので当然間違っているとは思います。
その上での話になりますが、
typedef int* pint, inttmp;
のような書き方の場合にはint2はint型になるわけですが、これは
直感的にはおかしくないでしょうか?
個人的には
typedef int* (pint1,pint2); /*構文は間違っています*/
のように解釈されて欲しいわけです。
歴史的にどうして現状のようなものに至ったのか知りたいところでは
あります。
0192180NGNG
typedefのことが外れてしまうので、
型名 {,*,&} シンボル名
に訂正します。
0193デフォルトの名無しさんNGNG
>>191
> 根拠を示せと言われても理論的な考えなどは実は何もないのですが、

じゃあ申し訳無いけど 180 が正しいかどうかは判断してあげられない。
あえて回答するなら 「意味不明」。

> 今まで読んできた多くのGPLライセンスのソースがそうなっていた

GPL なソースの場合、
・ 1 本のソースが必ずしも 1 人で作られているとは限らない
・ 複数人による場合それぞれのスタイルが統一されているとは限らない
という点は留意した方がいい。

先人のした事を鵜呑みにするより、自分なりの理由付けをした方が、
自信を持てるスタイルを確立しやすいと思うよ。

> 1,3に関しては個人的には構文として疑問です。

漏れも、ポインタや配列の定義文については疑問だ。
char[16] へのポインタを返す関数なんか char *func(void)[16] だしな。
まあ、そんなコードにする前に typedef すればいいけど、構文解析する
上ではこの文法が簡潔になるようだ。

> typedef int* pint, inttmp;
> のような書き方の場合にはint2はint型になるわけですが、これは
> 直感的にはおかしくないでしょうか?

これも構文解釈を簡潔にするための都合で、歴史はあまり関係無い。
C/C++ 規格上では、typedef は宣言の extern とか auto とか static や
なんかと全く一緒の扱いなんだよ。
typedef をそのまま extern やらに置き換えても意味は通じるだろう。
0194193NGNG
書き忘れ。

> 1. 変数宣言
> 2. 関数定義
> 3. typedef

この 3 つは、規格では 「宣言文」 として、全く同一に扱われてる。
だから、区別する意味は無い。
0195デフォルトの名無しさんNGNG
>char[16] へのポインタを返す関数なんか char *func(void)[16]

>C/C++ 規格上では、typedef は宣言の extern とか auto とか static や
>なんかと全く一緒の扱い

>この 3 つは、規格では 「宣言文」 として、全く同一に扱われてる

んー、いろいろと勉強になります。
数人しか見ていないであろうこのスレにおいてのマジレス感謝です。
Cの構文ではあと、関数ポインタの宣言もなんだかおかしい気がしてますが
どうでしょうか?
typedef void(*)(void) funcptr;
void(*)(void) funcptr = &func;
こういった形の方がよかったような・・・ただしこれだと何か問題があったのかも
しれないし、現在の形の方が自然に理解できるという解釈もあるかも
しれません。

もっと両言語について勉強して出直してきます。ありがとうございました。
0196 ◆F52DmOxJlc NGNG
>>189
>一度viを使ってからは関数頭の開きブレースだけは行を分けるように
vi 使ったことないからわからないんだけど他のエディタではどうですか?
vi じゃなきゃ行を分ける意味はないかな?
0197デフォルトの名無しさんNGNG
>>193
> >>191
> > 根拠を示せと言われても理論的な考えなどは実は何もないのですが、
>
> じゃあ申し訳無いけど 180 が正しいかどうかは判断してあげられない。
> あえて回答するなら 「意味不明」。

正しいかどうかよりも、ただの慣習。
int *p; /* K&Rはこう書いてあった */
int* p; /* ARMはこう書いてあった */
好きなようにすればヨロシ。
0198189NGNG
>>196
viだと[[と]]で先頭の開きブレースにとぶんだよ。
つまり、関数の頭で行を分けとけば関数単位での移動が簡単なわけ。

あとは、K&Rスタイルで書くときは普通分けるね。
0199 ◆F52DmOxJlc NGNG
>>198
じゃあ他のエディタでは機能的には分ける意味はないのね。
慣れの問題だろうけど { を分けるのはどうも気持ち悪いのよ。
でも人がやってるとマネしてみたくなったりw
0200デフォルトの名無しさんNGNG
200
0201デフォルトの名無しさんNGNG
201
0202デフォルトの名無しさんNGNG
とりあえずcaseはインデントしないでほしい。
0203デフォルトの名無しさんNGNG
>>202
漏れもそう思う
0204デフォルトの名無しさんNGNG
とりあえず case はインデントしる。
default もな。
0205189NGNG
遅レススマソ

>>199
いや、EmacsでもC-M-aは同じように関数の頭を先頭の開きブレースで探すから。

> あとは、K&Rスタイルで書くときは普通分けるね。
実はこっちも結構大きい。

>>202-204
caseは他の半分のインデントにしとる。

if (foo()) {
 bar();
}
switch (hoge()) {
 case 0:
  hage();
  break;
 case 1:
  voke();
  break;
}
0206デフォルトの名無しさんNGNG
半分になっとらんが、そういう事にしといてやろう
0207デフォルトの名無しさんNGNG
>>206
bar();の頭を半分全角空白に置換し損ねた。
0208デフォルトの名無しさんNGNG
漏れは半分と言わずに、普通に Tab 1 つでインデントするけどな。
今時、横幅 80 桁でソース眺める香具師が居るのか?
0209デフォルトの名無しさんNGNG
最近気付いたんだが
横より縦の長さが重要だな
1024x768じゃ辛い
0210デフォルトの名無しさんNGNG
早く1792×1344にしなさい
0211デフォルトの名無しさんNGNG
>>208
インデント8桁はちょっと深いな。
linux-styleはそうだけど。
0212208NGNG
8 桁とは言っていない。
Tab 1 つと言った。
なお、Tab 幅は 4。
0213デフォルトの名無しさんNGNG
>>210
貧乏で液晶派なんでSXGAが精一杯
0214デフォルトの名無しさんNGNG
>>212
変則的なTab幅を使われると見るとき困るんだよな。
0215デフォルトの名無しさんNGNG
Tab 幅 4 が変則とは気付かなかった。
■ このスレッドは過去ログ倉庫に格納されています