2007-01-01から1年間の記事一覧

OpenCOBOL version 1.0

OpenCOBOL version 1.0がリリースされたらしい。 以前、インストールした記憶があるが、全く使っていない。 というか、COBOLのコードは書けなし、覚える気もない。 また、気が向いたらインストールするかな。(何で?)

熱暴走

以前、電源トラブルについて書いたが、原因はおそらく熱暴走だと思われる。 あれ以来ちょくちょく落ちていたが、ファン周りの埃を除去して以来、落ちていない。 教訓 掃除はこまめにしよう。

Visual Studio 2008 Express Editions 日本語版

VC

http://www.microsoft.com/japan/msdn/vstudio/ ダウンロード可能になっているな。 今年中にインストールしよう。 VC++にバグがあるみたいだし、2005も残しておくべきかな。 ディスクの残り容量も少なくなっているし、コマンドライン環境だけでも残しておき…

使ってみる。

冗談半分とはいえ、SWITCHマクロを作ってしまったので、使ってみる。 FizzBuzz問題 for(int i =1; i <= 100; ++i) { SWITCH(i) { DEFAULT std::cout << i; break; COND(_%3==0) std::cout << "Fizz"; CONTINUE; COND(_%5==0) std::cout << "Buzz"; CONTINUE;…

続・SWITCH

2007/11/6のSWITCHマクロを無意味に機能強化 これを使えば、誰でもスパゲティプログラムが書ける(書いてどうする)。 俺はプリプロセスを通した後のコードを読めねぇ。 変更点 複数の条件にマッチさせるためのマクロ CONTINUE を追加 優先順序付きの条件マク…

捜査情報漏洩

http://www.yomiuri.co.jp/national/news/20071108i306.htmより 奈良の巡査、ミクシィ書き込み「明日は暴走族一斉検挙」 奈良県警の20歳代の男性巡査が、インターネット上で会員同士が情報交換できる「ミクシィ」に、「明日は暴走族の一斉検挙」 「国道で…

括弧で囲みたい。

括弧で囲みたいんだけど、なんかエラーが出る。GCCのバグっぽい。 再現できる最小のコード struct foo { int operator[](int) const { return 0; } }; int main() { (foo ()[0]); return 0; } 現在とっている回避法。 int main() { (0,foo ()[0]); // 現在使…

switchで文字列を使いたい

C++ではできないので、マクロを使ってでっち上げる。 namespace ns_switch { template<class C> const C* select(const char* str, const wchar_t* wcs) { return str; } template<> const wchar_t* select<wchar_t>(const char* str, const wchar_t* wcs) { return wcs; } tem</wchar_t></class>…

C++0x Working Draft N2461

C++

ざっとみたところ ヌルポインタ定数 nullptr raw string literal メンバ関数の参照修飾(でいいのかな?) 明示的な変換関数(explicit付きの変換関数) アトミック操作(29章) 文字コード変換(ヘッダ) が入っている。

リンゴの芯

今日、食べたリンゴの芯が黴びていた。芯カビ病らしい。 芯カビ病の感染時期はリンゴの開花時期なのか。へぇ〜。

C++0x ラムダ式に対する雑感

C++

最新のproposalはこれか? http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2413.pdf <>(引数リスト)(式) <>(引数リスト)->戻り値の型{ 関数本体 } とか書けるのか。 『<>』を『』にするとローカル変数にアクセスできるのね。 しかし、『<>』『』…

配列メンバの初期化

久々にGCC拡張について書く。 初期化リスト中に、C99の複合リテラルと同じ書式により、配列メンバを初期化することができる。 version 4.1以前のGCCでのみ利用できる。 struct foo { int bar[2]; foo(int x, int y):bar((int[2]){x,y}){} }; この拡張は、cpp…

GCC version 4.2.2が出ている。

GCC

インストールしようとしたんだけど、途中でエラーが出る。 libtool: link: `del_op.lo' is not a valid libtool objectさぁ〜て、どうしたらよいんだかわかんねぇ。

クラス名と同じ名前のメンバ

C++

http://d.hatena.ne.jp/uskz/20071002/p1より へぇ〜。コンストラクタをもたないクラスは同名の非静的メンバをもてるんだ。 struct foo { int foo; // foo(){} // ~foo(){} }; VCとdmcでは、コンストラクタをもたなくても、コンパイルエラーになる。 Watcom…

条件演算式の型

C++

C++では、第2項と第3項の型が同じで共に左辺値であるなら条件演算式は、左辺値であることは、比較的よく知られていると思うが、 第2項と第3項が共に配列型 又は 関数型である場合、ポインタ型への変換は行われないのね。 完全に規格を見落としていた。 早速…

共変の戻り値型

東方算程譚 こばりあんすより、 私も書いてみた。 class VB { public: virtual VB* create() { return new VB; } }; class LB:public virtual VB { public: virtual LB* create() { return new LB; } }; class RB:public virtual VB { public: virtual RB* c…

PC落ちる

パソコンの電源が突然切れた。 電源スイッチを押しても起動しない。あせる。 原因不明ながらも何とか起動に成功。こうしてブログを書ける。

秀丸エディタver7.0

インストールした。 最大の新機能は単語補完かな? これで、reinterpret_castとかをtypoなしで入力できるな。

テンプレートに依存する型名のusing宣言

少し前に、テンプレートに依存する型名のusing宣言の書き方が分からなくて、色々試していた。 template <class T> struct bar { typedef T type; }; template <class T> class foo:bar<T> { using typename bar<T>::type; // (1) やりたかったこと typedef typename bar<T>::type type; </t></t></t></class></class>…

福井でパトカー盗まれる

http://www.fukuishimbun.co.jp/modules/news2/article.php?storyid=1614 乗り逃げに気づいた警部補が同署に通報、当直署員25人体制で付近を捜索。現場から約14キロ離れた越前市四郎丸町の市道で、信号待ちをしているパトカーを発見。運転していた同容疑…

文字列のように連結されるincludeファイル名

GCC 2.95以前では、#include "..."の形式でファイルをインクルードする場合、 ファイル名を複数に分割することができ、それらは、連続する文字列リテラルのように連結される。 #include "iostream" ".h" この機能は、ヴァージョンの異なるヘッダを使い分ける…

C++0x ヘッダ

C++

C++0xのドラフトを眺めていたら、ヘッダの中に以下の記述を発見 namespace std { ... template<class T> complex<T> fabs(const complex<T>&); ... } おいおい、fabsの戻り値はTだろ。何も考えずに、コピペで規格作るな。 ところで、C99にある『cproj』関数はサポートされな</t></t></class>…

Open Watcom

Version 1.7が出たみたい。とりあえずダウンロードしよう。

C++0x ヘッダ

C++

ヘッダのなかに enum posix_errno { ... invalid_argument = EINVAL, ... }; 列挙定数invalid_argumentを発見。 えーと、C++標準化委員会のみなさん、ヘッダのなかにinvalid_argumentというクラスがあるんですけど。 クラス名と、列挙定数などの名前が同名で…

C++0x

C++

C++0xの新しいドラフトが公開されている。 ざっと見たところ、 アライメントのサポート(alignas,alignof) decltype constexpr Strongly Typed Enums Defaulted and Deleted Functions などが追加されている。 最後の奴 class foo { foo() = default; foo(con…

右山括弧

http://cmeerw.org/prog/freecpp/より いつの間にか、C++0xの右山括弧の構文 vector<vector<int>> a; // >と>の間に空白がない。 に対応していたのね。VC8とGCC4.3が対応していたのは知っていたが、 Watcomは、インストールしたものの、ほぼ未使用でチェックしていなかっ</vector<int>…

文字化演算子

VC

昨日のVCのfor each拡張で思い出した。 VCには、プリプロセス時に引数を文字化する演算子 #@ が存在する。 #define C(X) #@X int main(int argc, char *argv[]) { printf("%c\n", C(A)); // 'A'を出力 return 0; } 標準規格内で、最も近い効果を得るには、以…

for each

VC

うっそぉ〜ん!より、 #include <iostream> #include <list> #include <string> int main() { std::list<std::string> sl; sl.push_back("1st"); sl.push_back("2nd"); sl.push_back("3rd"); sl.push_back("4th"); for each ( std::string item in sl ) { // Ω ΩΩ < な、なんだってー std::cout <<</std::string></string></list></iostream>…

decltype

GCCにdecltypeが実装された。 http://gcc.gnu.org/ml/gcc-patches/2007-07/msg01848.html http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n2115.pdf typeofとの違いは参照に対する振る舞いの違いでいいんだっけ。 int i; int& j = i; decltype(j)…

歯、外れた。

歯といっても、虫歯治療に使った金属のかぶせ物だけど、突然外れた。 明日、治療に行かなければならなくなった。