CLX C++ Libraries
Cielquis.Net CLX C++ Libraries

Overvies

CLX C++ Libraries は,文字列処理やネットワークプログラミングの補助などを行うための, ヘッダファイルのみで構成された C++ ライブラリです. CLX C++ Libraries は, BSDライセンスで配布しています.ソースコードの複製・改変は自由ですが, 自己責任でお願い致します.

Usage

CLX C++ Libraries を使用する際には,以下のファイルをダウンロードし, 解凍して出来た clx フォルダ以下のヘッダファイルを作業フォルダにコピーするか, または,インクルードオプションを適切に指定して下さい. CLX C++ Libraries で作成したクラスは clx 名前空間の中に定義してあります. 利用する場合は,直接指定するか適切な using ディレクティブを指定して下さい. 動作確認は gcc 4.0.2 (Linux), gcc 4.3.4 (cygwin),Visual Studio 2010, Borland C++ Compiler 5.5 で行っています. そのため,ソケット等システムに依存する部分はPOSIX および Windows のみに対応しています. また,コンパイラによっては利用できないライブラリも存在します.コンパイラ毎のエラー状況については, コンパイラ毎のエラー状況 を参照して下さい.

CLX C++ Libraris の一部のライブラリは,外部ライブラリを利用しています. これらのライブラリは Linux 環境ではデフォルトでインストールされている事も多いですが, Windows 環境にはインストールされていません.Windows 上で CLX C++ Libraries の全てのライブラリを使用するための環境設定については, VC++ 2010 の環境設定 Borland C++ Compiler 5.5 の環境設定などを参照して下さい.

最新のリリース,および関連ファイルは SourceForge.JP - CLX C++ Libraries から取得することができます. また,(リリース前の)最新のソースコードは, svn/clxsvn/clx/example にて閲覧/取得することができます.尚,clx_doc,clx_example はそれぞれ, 本サイトで公開しているリファレンス・ドキュメント, サンプルコード群をアーカイブ化したものです.ドキュメントをオフラインで閲覧したり, サンプルコードをまとめて取得したい場合は,以下のリンクからダウンロードして下さい. Web ページの表示チェックは,Internet Explorer 8.0, Firefox 3.6 で行っています.

使用例などについては,各ライブラリの説明ページの他,blog でもいくつか紹介しています.

SourceForge.JP

Contents

  1. 文字列とテキスト
    1. salgorithm ..... 文字列アルゴリズム群
      • adjust ..... 文字列の位置調整
      • case_conv ..... 大文字/小文字の変換
      • remove ..... 特定文字の消去
      • replace ..... 文字列の置換
      • split ..... 文字列の分割/結合
      • strip ..... 空白文字の除去
      • predicate ..... 叙述関数群
    2. cstring ..... C 標準ライブラリ (cstring) のラッパ関数群
    3. lexical_cast ..... 文字列 <-> 数値の相互変換
    4. code_convert ..... ナロー文字 <-> ワイド文字の相互変換
    5. tokenizer ..... 文字列のトークン分割
      • tokenizer_func ..... 文字列分割のためのポリシークラス
    6. tokenmap ..... 文字列のトークン分割(マップコンテナ版)
    7. table ..... 整形済みテキストファイルの読み込み
    8. scanner ..... 書式付き文字列の読み込み
    9. format ..... 書式付き文字列の書き出し
    10. utf8 ..... UTF-8 の文字列を操作するための補助関数群
  2. ソケット
    1. socket ..... 各種ソケットの基底クラス
    2. sockaddress ..... ソケットアドレス
    3. udp::socket ..... UDP 用ソケット
    4. tcp::socket ..... TCP 用ソケット
    5. tcp::acceptor ..... TCP サーバ用ソケット
    6. ssl::socket ..... SSL 通信用ソケット
    7. ssl::acceptor ..... SSL 通信用サーバソケット
    8. icmp::socket ..... ICMP 用ソケット
    9. sockmanager ..... 複数のソケットの入力状況の管理
  3. ネットワークサービス
    1. resolver ..... 名前解決
      • localhost ..... ローカルホストの IP アドレスを取得
    2. http/https ..... HTTP/HTTPS (HTTP over SSL) 通信
    3. smtp/smtps ..... SMTP/SMTPS (SMTP over SSL) 通信
    4. pop3/pop3s ..... POP3/POP3S (POP3 over SSL) 通信
    5. ftp ..... FTP 通信
    6. hmac ..... HMAC によるダイジェストの計算
    7. wsse ..... WSSE 認証用 HTTP リクエスト文字列の生成
    8. json ..... JSON 形式データの解析
  4. エンコード
    1. uri ..... URI の encode/decode
    2. base64 ..... Base64 方式の encode/decode
    3. hexdump ..... 文字列を 16 進数で出力
    4. html::escape ..... html 制御文字のエスケープ
  5. ストリーム
    1. istream_utility ..... 入力ストリームの補助関数群
    2. vstream ..... 仮想ストリーム
    3. sockstream ..... ソケット通信用ストリーム
    4. zstream ..... zlib を用いた圧縮/解凍のためのストリームフィルタ
    5. unzip ..... zip の解凍
  6. スレッド
    1. thread ..... スレッドの作成,操作
    2. mutex ..... スレッド間での排他制御
    3. condition ..... スレッド間での待受/通知制御
    4. call_once ..... 特定の関数(オブジェクト)を一度だけ実行する関数
  7. 日付と時刻
    1. date_time ..... 日付と時刻
    2. timer ..... タイマー
  8. 数値
    1. unit ..... 単位を定義するためのクラス
    2. constrained_value ..... 制約付きの値
    3. random ..... ランダムな値の生成
    4. md5 ..... MD5 方式のハッシュ値の計算
    5. sha1 ..... SHA-1 方式のハッシュ値の計算
    6. stats ..... 統計計算
    7. quantile ..... 分位点の計算
  9. その他
    1. argument ..... コマンドライン引数解析
    2. ini ..... INI ファイルの操作
    3. filetype ..... ファイルタイプ判別関数群
    4. container_wrapper ..... STL コンテナを継承するためのラッパクラス

News

version 0.18.0 から Borland C++ Compiler に対応しました. ただし,Borland C++ Compiler で使用する場合,一部使用できないライブラリが存在します. Borland C++ Compiler で使用する場合の主な機能制限は以下の通りです.

コンパイラ毎のエラー状況については, コンパイラ毎のエラー状況 を参照して下さい (2010/07/31).

version 0.15.0 より zlib を利用した圧縮・解凍を行うライブラリ ( zstream, unzip) を追加しました.これらのライブラリを利用する際にはあらかじめ環境に zlib ライブラリをインストールしておく必要があります.zlib に関する詳細は, zlib Home Site を参照して下さい (2009/06/07).

version 0.13.0 より,SSL 通信用ライブラリを追加しました.SSL 通信用ライブラリ は OpenSSL を用いて実装しているため,利用する際にはあらかじめ環境に OpenSSL ライブラリをインストールしておく必要があります.OpenSSL に関する詳細は, OpenSSL - The Open Source toolkit for SSL/TLS ( OpenSSL 日本語サイト ) を参照して下さい (2008/10/23).

SourceForge.JP - 今月のプロジェクトに CLX C++ Libraries が紹介されました (2008/08/29).

Column

History

2010/08/01 version 0.18.1
Borland C++ Compiler で istream_utility.h で定義されている各関数をコンパイルする際にエラーが発生していた問題を修正.
2010/07/31 version 0.18.0
Borland C++ Compiler に対応.
2010/06/19 version 0.17.1
json のバグを修正.
2010/06/02 version 0.17.0
ビット処理(バイト処理)を行うメタ関数 (lower_mask, upper_mask, combine, reverse, rotate, min, max) を新規作成.
bitmask を mpl::lower_mask, mpl::upper_mask に変更.
ini において,特定のセクションに属さない key=value 群の処理を追加(v[""][key] のようにしてアクセスする).
convert 関数を新規作成.また,hexdump, uri, html::escape, base64 を convert ベースに修正.
utf8 の関数を修正・追加.
utf16 の関数を追加(主にサロゲート・ペアへの対応).
2010/01/14 version 0.16.2
istream_utility を新規作成.
filetype に is_ttf(), is_ttc() 関数を追加.
..... More