‘C++’ タグのついている投稿
2011 年 9 月 21 日 水曜日
なんとなく Virtual Box から利用している Ubuntu のアップグレードなどをして、そこからなんとなく「やっぱり Long Time Release 版の Ubuntu もテスト環境に持っておきたいよなぁ」などと思いつつ Virtual Box ディスクイメージを追加でこさえて、 Boost ライブラリのセットアップなどもしつつ動作チェックも兼ねて昔書いた記事なんぞを掘り起こしておりましたら、そこに書かれた内容に関連して、そういえば Boost.Regex も ICU ライブラリと組み合わせれば Unicode に対応できたはずだよなぁなどということが気になりだしてしまいまして、いろいろ試しているうちに、以下のようなサンプルコードが問題なく動作してしまうことを発見してしまったのでメモしておこうかと思った次第なのであります。ああ、なんだかこちらのブログも口調が個人ブログや普段の Twitter とかでのそれに似てきてしまいました (^_^;A 。
(さらに…)
タグ:Boost, C++, C++0x, Unicode, 文字列処理, 正規表現
カテゴリー: 技術メモ | コメントはまだありません »
2011 年 2 月 26 日 土曜日
今回も必死こいてメモ執りましたよ。終盤力尽きたけど orz
しかしさすがにこの年で一日通しはキツいっすなぁ…。
タグ:Boost, C++, C++0x
カテゴリー: 技術メモ, 活動記録 | コメントはまだありません »
2010 年 9 月 22 日 水曜日
UTF-32 が内部文字列に使えないことがわかったので、 UTF-8 を内部文字列に使用するというルールで libiconv によるエンコーディング操作と Boost.Regex による正規表現の両方を同時に試すサンプルを作成してみました。
Makefile は作ってません\(^O^)/。試してみたい人は頑張ってコンパイルしてねw
$ g++ -std=c++0x -o regex-test regex-test.cpp EncodeString.cpp -lboost_regex
まともな環境 (Linux + GCC4.5 とか) なら上記コマンドで通るはず。libiconv を (glibc に上書きする形で) インストールしている場合は -liconv
を末尾に入れる必要があるかも。そして MinGW を使う場合は更にもう一工夫必要かも (((;/^^)/
(さらに…)
タグ:Boost, C++, C++0x, otoco, Unicode, 文字列処理, 正規表現
カテゴリー: 技術メモ | 1 件のコメント »
2010 年 9 月 22 日 水曜日
C++0x では UCS に対応し、専用の型やリテラルの記法が導入されました。その関係で、以下の点について調査を行っていました。
- C++0x で UCS を UTF-32 として扱う型
char32_t
, u32string
およびリテラル U"..."
と、 libiconv の UCS-4-INTERNAL との間に互換性はあるか。
- C++0x で新たに追加された正規表現ライブラリ
<regex>
は利用可能か。
<regex>
が利用できない場合、 Boost.Regex を用いて UTF-32 文字列を処理することは可能か。
これらの調査は、すべて otoco のコアデータを扱うプログラム内で内部文字列に UTF-32 を採用することを前提としたものでした。
(さらに…)
タグ:Boost, C++, C++0x, GCC, iconv, otoco, Unicode
カテゴリー: 技術メモ | 3 件のコメント »
2010 年 9 月 12 日 日曜日
実に楽しいイベントでした。 5時間ほぼぶっ通しだったのでさすがにくたびれましたが… (^_^;A
自分なりにメモしたノートを公開していますので、よかったら復習にご活用ください。かなり荒いメモですが…。
(さらに…)
タグ:Boost, C++, C++0x, 講習会
カテゴリー: 技術メモ, 活動記録 | 1 件のコメント »
2010 年 8 月 31 日 火曜日
otoco のコアデータの仕様がだいぶ形になってきたので、いよいよ実装を開始しました。本当はメインマシンに Linux 環境を整え直してそっちで開発を進めたいのですが、現状お金をもらってメインでやらせて頂いている仕事が Windows 環境での開発なので、並行して作業を行いやすいよう、 Windows 向けのバイナリを生成する環境として検討している MinGW を導入し、とりあえずはこちらで開発を進めてみることにしました。
(さらに…)
タグ:C++, C++0x, GCC, MinGW, otoco
カテゴリー: 技術メモ | コメントはまだありません »
2010 年 3 月 3 日 水曜日
ご無沙汰ぶりです…。
以前、wchar_t はどうにも使い物にならないからどうしよう、といった記事を書いたのですが、その続きのお話です。
表題の通りで、 libiconv を用いて文字セットを自動認識する処理のサンプルを書いてみました。詳しい経緯はTicket 内で逐次コメントしています。
(さらに…)
タグ:C++, iconv, otoco, Unicode, 文字セット, 文字列処理
カテゴリー: 技術メモ, 活動記録 | コメントはまだありません »
2009 年 7 月 25 日 土曜日
otoco に限らず、 PC 上で動作するプログラムの多くは、テキストを処理することを目的の一部またはすべてとしています。 otoco の場合は特に、どこの誰とも分からない人が MML を書き、それを読み込んで XML やら SMF やらオーディオやら楽譜やらに変換することを目的としているので、どこの誰が MML を (あるいは XML を直接) 書いても問題なく処理できるよう、文字セットの扱いには丁重でなければなりません。
当初の方針として、 otoco では内部コードに Unicode を使用し、その物理型は wchar_t で扱うつもりでいました。この辺、C/C++ でのクロスプラットフォーム開発に慣れていないと陥りやすい罠であるように思うのですが… 現状の wchar_t ははっきり言ってクロスプラットフォーム開発には向いていないものといわざるを得ないようです。
とりあえず確認しているのは Windows の VC++ 2008 と Linux の gcc だけなのですが、それだけでも調べた限りで以下のような相違点がありました。
(さらに…)
タグ:C++, iconv, otoco, Unicode, wchar_t, 文字セット, 文字列処理
カテゴリー: 技術メモ, 活動記録 | 3 件のコメント »
2009 年 7 月 23 日 木曜日
Boost ライブラリの Ubuntu へのインストールは容易でした。単に libboost-dev パッケージを aptitude install
してあげるだけです。
問題は、前回も書いた通り、 apt からインストールできる Boost のバージョンは通常で 1.34.1、最新のものを選んでも 1.37.0 になってしまう、ということです。
そこで、 otoco の開発に影響する範囲で、バージョン間にどの程度の差異があるのか、調べておくことにしました。
とりあえず今思いつくのは正規表現まわりだけだったのでまだそこしか調べていないのですが (空文字列マッチは何気に影響範囲大きそうですが…古いバージョンで統一しておけばとりあえず問題にはならないかな…)、実際に開発が進めば利用範囲が広がり、都度気づく部分も増えていくかもしれません。上記ページはその都度更新して行く予定です。
タグ:Boost, C++, otoco, Ubuntu
カテゴリー: 技術メモ, 活動記録 | コメントはまだありません »
2009 年 7 月 16 日 木曜日
昨日、一昨日はメインの仕事の都合で朝が早かったので、こっちの作業はちょっと pending してました。
cl.exe
コマンドを直接呼んでビルドする方法については調査完了しました。必須オプションが何気に多いですね…。実際にはあれに最適化オプションなりデバッグオプションなりがくっつくことになります。
で、今度は Ubuntu でのセットアップを調べているのですが、ここで問題発覚。どうやら Ubuntu での boost ライブラリのメインバージョンはまだ 1.34.1 で止まっているようです…。もしかしたら Debian を始め、多くの Linux ディストリビューションにおいても同様の状況なのかもしれません。当初は最新の 1.39.0 を利用する予定でしたが、事実上の汎用性が損なわれる可能性もあるので (さすがにライブラリを手動でインストールしてくれ、とやる訳にもいかないですからね…)、互換性を確認しつつ、バージョンについては考慮しなければならないかもしれません。
インストールして動かして、というあたりはまだこれから調査するところです…。
タグ:Boost, C++, otoco
カテゴリー: 技術メモ, 活動記録 | 1 件のコメント »