No Such Blog or Diary

«Prev || 1 | 2 | 3 |...| 726 | 727 | 728 |...| 1328 | 1329 | 1330 || Next»

gcc の < regex > の正規表現の不思議

以下のプログラムは "G" という文字列が "A|T|G" という正規表現にマッチするかどうかを調べるもので,当然マッチするので ret=1 が期待する出力となる.

#include <regex>
#include <iostream>
using namespace std;
using namespace std::regex_constants;
 
int main(){
  regex r("A|T|G");
  string s("G");
  bool ret=regex_match(s,r);
  cerr << "ret=" << ret << endl;
}

が,いくつか試した gcc で出力が ret=1 になったのは svn 上の gcc (4.9.0 experimental) だけだった.Ubuntu 12.04 amd64 でソースからコンパイルした 4.8.2 でも ret=0 で,他に同Ubuntu の 4.6系 とソースからコンパイルした 4.7.2 もダメで,cygwin の 4.8.1 もダメだった.

Visual Studio では ret=1 になったらしい.Boost は大丈夫らしい.Mac の gcc のどれかも上の単純な例では大丈夫だったらしい.

どうも | で3つ以上つながると狂うらしい.まあ,Is gcc4.7 buggy about regular expressions? とかを見る限りだいぶ前からこの状況らしく,そもそも gcc (libstdc++) の regex は不完全であると.だがしかし,"A|T|G" とかいうレベルの単純な正規表現でもダメとか言うレベルの不完全さとか誰も想像できん.驚いた.

時間制限の中で正しいプログラムを書く祭りの前日

なんかこう,システムを落としに行くような入力は投げないことを心に誓うべきだなぁ.あとはバックヤードから破裂音が……

閑話休題.

高速バスがが渋滞にはまり参加者が大量に遅れ…… とかいうことを耳にしたのだけど,それってそのバスがほとんど貸切状態ってことだったと思うのだけど,バスの中がどんな雰囲気だったのか気になる.ひと目でそうと分かる集団な雰囲気だったのだろうか?

バイナリの依存する共有ライブラリを列挙するコマンドをすぐ忘れる

ldd だったっけね.すぐに忘れて何だったか思い出せなくなる.ld まで出てきたあとに思い出せない.ld と dependency で ldd だと覚えておけば忘れないだろうか?

gcc のコンパイルにミスる

ここんとこ平和にコンパイルできていたのだけど,今日は2連続でミスった.痛い.

結局 --with-arch-32=i686 というコンフィグオプションを付けてたのが原因らしいのだけど,結局のところここらに書いてあることが悪かったらしい.asm の詳しい書き方を知らないのでエラーの意味がわからんかった.

Let'snote LX3 に S10 の AC アダプタをさすと

色々と怒られる.どうやって判別してるのかしらんけど,起動時に怒られて起動してからもしばしば怒られる.普通に充電出来てるみたいだけど.

とりあえずACアダプタを各所においておいて持ち運ばなくて良くするには新しいACアダプタを買わないとならないらしい.

USB3.0 が使えなくなった……

なぜかしらんけど自宅のメインPCの USB3.0 が全く使えなくなった.USB3.0 の端子に USB2.0 なものを接続すると動くのだけど,USB3.0 のものをつなげると反応しない.

ドライバ周りが壊れたのかと思ってOS再インストールしたけれど症状は変わらない.この前 BIOS のアップデートをしたのが原因かな…… 写真データの転送とかバックアップに時間かかってしょうがないのでどうにかしたいところ.

«Prev || 1 | 2 | 3 |...| 726 | 727 | 728 |...| 1328 | 1329 | 1330 || Next»
Search
Feeds

Page Top