タグ

ブックマーク / nekko1119.hatenablog.com (3)

  • Boost.AsioでHTTP通信 - C++と色々

    HTTP通信をするプログラムを書いてみました。WinScok2とBoost.Asioでそれぞれ書いてみました。簡単にするためにTCPで同期通信するプログラムです。WinSockの参考に「でもわかるWindowsプログラミング」を使ったのでアクセスするページがそうなっていますが、特にそれ以上の意味はありません。 WinSock //WinSockでHTTP通信を行う #include <WinSock2.h> #include <iostream> #include <string> using namespace std; int main() { WSADATA wsadata;//ソケット情報を格納する構造体 //WinSockの初期化 if (WSAStartup(MAKEWORD(2, 2), &wsadata) != 0) { cout << "winsock startup

    Boost.AsioでHTTP通信 - C++と色々
  • std::error_code, std::error_category, std::error_conditionの違い - C++と色々

    概要 C++11で <system_error> ヘッダが追加され、その中に3つのクラス std::error_code std::error_category std::error_condition が追加されました。自分はこの3つクラスの違いがわからなかったので調べてまとめてみました。ソースは https://www.amazon.co.jp/dp/4797375957www.amazon.co.jp です。 以下 std:: は省略しています error_code このクラスはエラーの種類を表すクラスです。 OSなどのシステムや低レイヤのAPIのエラーは整数値でエラーコードが定義されている場合があります。このクラスはエラーコードを表す整数値と、その整数値がどのエラーの分類なのかを表すオブジェクト ( これがerror_category )を受け取ります。 システム等に依存したエラー

    std::error_code, std::error_category, std::error_conditionの違い - C++と色々
  • Type Erasure Any編 - C++と色々

    の例題がboost::anyの簡易実装だったので、見ながら書いてみたやつ貼り。 #include <iostream> #include <typeinfo> using std::cout; using std::endl; class Any { public: //デフォルトコンストラクタ Any(); //テンプレートコンストラクタ template<class Type> Any(const Type& value); //デストラクタ ~Any(); //コピーコンストラクタ Any(const Any& rhs); //代入演算子 Any& operator=(const Any& rhs); //暗黙的なキャスト template<class Type> operator Type() const; //明示的なキャスト template<class Type> frie

    Type Erasure Any編 - C++と色々
  • 1