C++と色々

主にC++やプログラムに関する記事を投稿します。

2016-01-01から1年間の記事一覧

std::variant

C++

C++17にはstd::variantというライブラリが追加されます。 variantは組み込みのunionよりリッチなインターフェイスを持った型安全なunionです。*1 Visual Studio 2017にも入りましたので簡単なサンプルを書いてみました #include <variant> #include <iostream> #include <string> struct</string></iostream></variant>…

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/479737</system_error>…

出力するスタティックライブラリのファイル名、ディレクトリを変える

d.hatena.ne.jp

bash on windowsでruby on rails動かしてみた

rbenv, bundler, railsをインストールしてlocalhost:3000でアクセスできるようになるところまで はじめに、bash自体の初期設定を以下の記事を参考に行います qiita.com apt-getで必要なパッケージを入れます。libssl-dev libffi-dev libreadline-dev makeはr…

C++ Testing Framework banditの紹介

C++

github.com 概要 banditはC++11以降を前提としたC++のユニットテストのフレームワークです。 Human Friendlyらしいです。MITライセンスです。 導入 Releases · joakimkarlsson/bandit · GitHub からzipかtar.gzでダウンロードするか git cloneして使うと良い…

Asioで非同期Http通信

C++

Boost.Asioから切り離したAsioライブラリがあります。 asio C++ library 名前空間が違うぐらいでほとんどBoost.Asioと同じように使えます。Boost.AsioがBoost.SystemErrorやBoost.DateTimeに依存しているのに対し、独立して動くという点が嬉しいです。 試し…

コンパイル時ズンドコキヨシ

C++

ズンドコキヨシ with C++14 - C++と色々 の続きです。コンパイル時にズンドコキヨシをやってみました。 static_assert で、ちゃんとシーケンスの最後の5つがズンズンズンズンドコになっているかを検証しています。Sprout.RandomとBoost.MPLを使用しています…

ズンドコキヨシ with C++14

C++

これ qiita.com なぜかC++版が無かったので。コードゴルフとかやらずに、ファンクタとイテレータで実装してみた。C++11では古くて動きません #include <algorithm> #include <array> #include <iostream> #include <iterator> #include <random> #include <string> #include <utility> struct zundoko_generator { static con</utility></string></random></iterator></iostream></array></algorithm>…

C++でP2Pプログラム書いてみたかった

ユーザにお互いにグローバルIPを教え合うという操作をさせずにP2P通信ってどうやるんだろうと思い、調べました。 STUNサーバやTURNサーバと通信を行い、自身のグローバルIPを取得する、ということを知りました。 それらのサーバと通信を行うライブラリを調べ…