C/C++ Coding Style Thread
705 :
デフォルトの名無しさん:2009/01/30(金) 09:37:33
どこに改行/空白入れる? typedef/usingする?
std::list<mylib::common::MyClass<charT>* > container;
std::vector<std::basic_string<CharT> >
もにょもにょ・・・
std::transform(
boost::make_indirect_iterator(container.begin()),
boost::make_indirect_iterator(container.end()),
std::back_inserder(strs),
boost::bind(&mylib::common::MyClass<charT>::format,_1,"%1:%2:%3");
);
706 :
デフォルトの名無しさん:2009/01/30(金) 09:44:12
なんかひどいから書き直す
template<class CharT>
func(std::list<mylib::common::MyClass<CharT>*> container,
std::vector<std::basic_string<CharT> > &strs)
{
もにょもにょ・・・
std::transform(
boost::make_indirect_iterator(container.begin()),
boost::make_indirect_iterator(container.end()),
std::back_inserder(strs),
boost::bind(&mylib::common::MyClass<charT>::format,_1,"%1:%2:%3") );
}
template<class CharT>
func(std::list<mylib::common::MyClass<CharT>*> container,
std::vector<std::basic_string<CharT> > &strs)
この3行は改行しないで一列にしちゃうな。
なんでかっていうと、VC++2008では、{ }内全体を隠す機能があって
1関数/1クラスが1行にまとまって検索しやすくなるので。
小まめに改行してるソース読むと、いい加減モニタ買い換えろよと思う
80桁ルールを守る価値はそれなりにあるぞ
今となっては80桁は窮屈だぞ。
Unix系の端末で快適にソースを閲覧できる状態というのは確かに必要なこともあるし、
80桁ってのはデファクトとしてそれなりの意味があるんじゃないのかな。
事実色んなオープンソースプロジェクトが80桁ルールを守って書かれてるし
やろうと思えば全然難しくないしね。
まあ80桁は狭いと思うにしてもせいぜい100桁か120桁くらいが限界じゃないかな。
あまり横に突き出してしまうと、結局折り返しが発生する環境が出てきて、
可読性が損なわれてしまう。
自分が読めればいいだけならいくらでも横に伸ばせばいいけど。
713 :
712:2009/01/30(金) 14:42:57
エディタ横2列で見ることもあるから80桁は守ってる(厳密ではないが)
自宅と会社のWindowsでは、xyzzyでバッファ2枚取ると丁度100カラム。
客先と会社のLinuxでは、端末エミュレータを3枚並べると丁度100、100、80カラム。
なので80-100で収まるようにコーディングしている。
teratermだろどうせ
無理すんな
端末エミュレータと聞いて、teratermを連想する馬鹿発見。
まぁ、客先の現場に行くとサーバがSunだしLinux端末がないから使っているけどさw
俺、Xでもだいたいターミナルエミュレータいくつか並べる使い方しかしないから、
最近はもっぱらWindowsからTeraTermでつないで使ってる。
色づけ厨なのでputtyしか使わない
仮想化おいしいです。
721 :
デフォルトの名無しさん:2009/10/10(土) 03:00:50
ソースコードがMacで保存されているとかいうエラーが出るのだけど、どういうこと?
>>721 きっと、ソースコードがMacで保存されているんだと思う。
723 :
デフォルトの名無しさん:2009/10/11(日) 22:31:03
LF
今時そんなエラー吐くエディタは要らんな。
725 :
デフォルトの名無しさん:2009/10/18(日) 18:12:05
for ( ; ; )/*~~~~ \(; ; )*/
無限ループはこうかく
こうだろ
#define _
for(;_;)
#define は反則だろ・・。
#define do_ob (for)
#define p_q (;;)
do_ob (p_q)
>727
展開すると
(for)((;;))
コレが通るコンパイラを教えてクレ。
>>728 defineのあとのカッコ()は無視されます
>729
#define A (1+2)
#define B (3+4)
printf( "%d\n", A * B );
>>729 だから、どのコンパイラがそんな挙動をするのかと。
「コメントは無視される」と間違えてる気ガス。
#define A 1 // コメント書いてもちゃんと通るYO!
printf( "%d\n", A );
香ばしいな
>>735 >「コメントは無視される」と間違えてる気ガス。
誰が?
>>737 >735は日本語が不自由なんだよ。>735は、
「>729はコメントが無視されることと同様にと括弧も無視されると勘違いしているのじゃないか」
と言いたいのだろ。
まぁ、普通はそんな間の抜けた勘違いはしないがな。
#define 325 735
上記2つ725の間違いです><
スタイルの前にまともに動くコードを書けって感じ、、、
#define good ;;
744 :
デフォルトの名無しさん:2010/11/12(金) 22:53:49
お?
745 :
デフォルトの名無しさん:2010/12/29(水) 23:38:20
String ToString()
{
return ( this->Type == HogeType.A ) "A" :
( this->Type == HogeType.B ) "B" :
( this->Type == HogeType.C ) "C" :
( this->Type == HogeType.D ) "D" :
( this->Type == HogeType.E ) "E" :
( this->Type == HogeType.F ) "F" :
( this->Type == HogeType.G ) "G" :
( this->Type == HogeType.H ) "H" :
( this->Type == HogeType.I ) "I" : "";
}
746 :
745:2010/12/29(水) 23:39:55
「?」付けるの忘れた・・・orz
>>745 きもいw 許せないw
俺ならハッシュ使って返すw
MFCみたいに継承つかったら?
クラスの頭にCつけるのなんでかと思ってたけど、
public:
const CHoge&Hoge()const{return hoge;}
ができるのね。
ちょっと惹かれる。
GetHogeにするのは嫌なのか・・
>>749 頭のC要らないよ。クラスであることを表すってことなら class ってふつうに書けばいいんだよ。
public:
const class Hoge&Hoge()const{return hoge;}
>>750 単に値を取り出すだけなのに動詞とかキモイ。
「x の hoge」は x.Hoge() が自然。 x.GetHoge() ってなると自然に読み下せない。
取り出した値を使った式を書いた場合にさらに読みづらくなる。
>>751 コンストラクタと名前被るからって意味じゃないかとエスパー。
それでは読み出し専用なのか書き込み専用なのか読み書き両用なのかわからないじゃないか!
…などと、どうでもいいことをぐりぐり掘り返してみた。
個人的にはどっちでもいいやって感じ。