EZ-NET

UPDATES

更新日 内容
2013-01-31 C++ で変数を参照型に明示的にキャストする。
C++ では std::ref 関数を使うことで、変数を明示的に参照にキャストすることができます。
2013-01-31 C++11 の Tuple で複数個の型をまとめて扱う。
C++11 で規定されている Tuple を使うと、任意個の型をひとつにまとめて、関数の戻り値などに使えるようになります。構造体と違って好きなタイミングで柔軟に使えるところが便利です。
2013-01-30 C++11 で変数の型情報を実行時に取得する。
C++11 では typeid を使って変数の型情報を実行時に取得できるようになりました。C++ でも実行時にそんな情報を得られるなんて時代が変わった感じがしますね。これと dynamic_cast を上手く使えば、だいぶ柔軟な実行時型判定ができそうです。
2013-01-30 C++11 の型推論で変数定義を簡略化する。
C++11 では、変数の型をコンパイラに自動で見つけさせる auto と decltype が追加されました。ここではその特徴と使い方について見て行きます。
2013-01-30 PHP から任意のシェルコマンドを実行する。
PHP で任意のシェルコマンドを実行する方法です。出力された結果や、コマンドの終了コードも取得できます。
2013-01-30 SQLite プログラムの日付時刻まわりの説明を追記しました。
iPhone プログラムで SQLite を使う方法のページで、日付時刻関数まわりの説明が少し読みにくかったので、具体的な例を追加しておきました。
2013-01-30 PHP で独自の設定ファイルを読み込む。
PHP では Linux の設定ファイルでお馴染みの ini ファイルを読み込む関数が用意されています。シェルスクリプトの変数設定の書式と合わせれば、両方で使える設定ファイルができたりもします。
2013-01-30 PHP で文字列の先頭を大文字にする。
PHP には、文字列の先頭文字を大文字にする関数が用意されていました。単語毎に先頭を大文字にする関数もあります。
2013-01-30 ASCII コード表にコントロールコードの詳細を追記しました。
ACII キャラクターコードとコントロールコードを一覧表に整理しました。
2013-01-29 PHP で任意の HTTP ヘッダーを返す。
JavaScript Ajax で responseXML が取得できない原因が Content-Type が XML になっていないせいだったので、PHP で Content-Type を変更する方法について調べてみました。
2013-01-29 HTTP レスポンスコード表を整理しました。
Web サーバーが応答を返す時に付与するレスポンスコードです。
2013-01-28 シェルスクリプトが置かれているパスを取得する。
Linux のシェルスクリプトで、実行したスクリプトファイルが置かれているパスを取得する方法です。
2013-01-27 C++ で型のキャストを使う。
C++ では、これまでの C 言語でのキャストに意味を持たせた 4 つのキャストが用意されています。キャストが意味を持つことで、意図とは違うキャストをコンパイラがエラーとして判定できるようになります。
2013-01-27 C++11 では NULL ではなく nullptr を使う。
C++ では NULL は 0 で定義されているため、オーバーロードされた関数を呼び出すようなときに予期しない動作をすることがありました。そんな問題を補うために C++11 では nullptr というキーワードが用意されています。
2013-01-26 C++ で配列を繰り返し処理する 3 つの方法。
C++ には for ループを使って配列を順次処理する方法と、STL の for_each を使って処理する方法が用意されていました。そして C++11 で範囲に基づく for ループが追加されたので、それらを使った配列の繰り返し処理について整理しました。
2013-01-26 C++ で同じクラスの再定義を防止する。
C++ では、同じヘッダーファイルを二重インクルードすると、定義が重複してエラーになってしまいます。それの回避策として #pragma once と #define の 2 つの方法があります。
2013-01-26 C++11 の右辺値参照とムーブコンストラクタの使い方。
C++11 の右辺値参照を使うことで、コピーコンストラクタや代入演算子をより効率的に実装することができるようになります。特に std::vector で扱うクラスで使うと効果大です。
2013-01-25 C++ で可変長配列でインスタンスのポインタを扱う場合の削除。
C++ の可変長の配列 std::vector でクラスインスタンスのポインタを扱っている場合には、配列に格納されているポインタのメモリ管理を自分で行う必要があります。
2013-01-25 C++ で関数のポインタを使用する。
C++ での関数ポインタの使い方について記してみました。クラスのメンバ関数の場合はまた少し違う使い方になるので、その辺りについても記してあります。
2013-01-24 C++ でラムダ関数を使用する。
C++11 では、ラムダ関数という匿名関数のような仕組みが導入されました。ここではその使い方について見て行きます。
2013-01-24 C++ の STL で配列を繰り返し処理する。
C++ の STL (Standard Template Library) には、std::for_each という、配列の要素を使って順次処理する関数が用意されています。
2013-01-23 C++ の STL で配列の値を初期化する。
C++ の STL (Standard Template Library) には、std::fill や std::fill_n という、配列の要素を初期化する関数が用意されています。
2013-01-23 C++ で STL の配列をイテレータで繰り返し処理する。
C++ の STL (Standard Template Library) には、std::vector などの動的配列の要素の繰り返し処理を支援する仕組みとして、イテレータというものが用意されています。
2013-01-23 C++ で可変長配列 std::vector<T> を使用する。
C++ では、可変長の配列を簡単に利用できる std::vector というテンプレートクラスが用意されています。今回はその基本的な使い方について触れてみます。
2013-01-21 C++ の読取専用インスタンスで使えるメソッドを定義する。
C++ では、クラスインスタンスを読み取り専用として扱うことができます。その状態で呼び出せるメソッドは、設計時にプログラマが指定しておく必要があります。
2013-01-21 C++ でクラスを定義する。
C++ でのクラスの定義方法です。基本的な構造から、コンストラクタやアクセス指定子、const メソッドなどにも少し触れています。
2013-01-21 C++ で仮想関数を定義してオーバーライド可能にする。
C++ クラスでメソッドをオーバーライドできるようにするには、メソッドを仮想関数として定義する必要があります。また、派生先での実装を強制する純粋仮想関数もあります。
2013-01-21 C++ でクラスインスタンスをコピーする。
C++ では代入演算子を使ってクラスインスタンスの値をコピーすることができます。既定では属性値がシャローコピーされるようになっているので、必要に応じて自前で実装する必要があります。
2013-01-20 C++ で名前空間を定義する。
C++ では、自分の定義したクラスや関数・変数が他のライブラリと衝突しないように、名前空間という仕組みが用意されています。ここではその使い方について見て行きます。
2013-01-19 NSData 生成時に渡したデータの扱われ方。
Objective-C の NSData インスタンス生成には、いくつかの init メソッドが用意されています。それらの動きの違いが気になったので整理してみました。