C++と色々

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

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

型とオブジェクトと値と変数

C++

C++のエッセンスを読んでいて、C++における型とオブジェクトと値と変数の定義が興味深かったので引用メモします。 SBクリエイティブ:C++のエッセンス のP5 §1.5型と変数と算術演算 より すなわち、宣言は、以下に示すような、名前付きの実体に対する、型の指…

「Boost.勉強会 #19 東京」に参加しました

2015/12/05に行われたBoost.勉強会 #19 東京に参加してきました。 connpass.com 朝10時からと、起きられるか大変不安でしたが、無事起きられて安堵しました。 会場としてなったIIJさんからお水を頂きました。ありがとうございます。 最初に@cpp_akiraさんか…

Visual C++ 2015 Update 1でC++にmoduleが試験的に実装された

要約 12月1日のUpdate1でVisual C++にmoduleが試験的に実装されました channel9.msdn.com このmoduleの文法はおおよそ http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4214.pdf と近いものになっています。 moduleとは javaのpackage/importや、…

Visual Studio CodeのRunnerを試してみた

mattn.kaoriya.net こちらの記事で紹介されているRunnerを試しに使ってみました。 Visual Studio Marketplace Runnerのインストールが完了したら、Visual Studio CodeのUser Settingsから、setting.jsonを編集します。 runner.languageMapというキーのオブジ…

MinGWのg++でgtestをビルドする

前提条件(私が成功した時の環境) MinGWがインストールされていること MinGWのgcc, g++などがcmdにパスが通っていること cmakeがインストールされていること、cmdにパスが通っていること python2.7がインストールされていること、cmdにパスが通っていること …

Windows8.1で日本語ユーザフォルダを英語に直す

Windows8.1でローカルアカウント作成時に、ダイアログに促されるままMSアカウントと連携すると、ユーザフォルダ名がMSアカウントの名前になります。 大抵MSアカウント名は日本語で登録しているので、フォルダ名も日本語になってしまいます。 わざわざ説明す…

for_each_argument 前半

C++

こちらの動画 www.youtube.com で紹介されているイディオムを自分なりに解釈を加えてまとめてみようと思います。長いので前半後半に分割する予定です。 for_each_argument C++14から入った、ジェネリックラムダを用いて、色々な型の変数を走査するfor_eachを…

Windowsで多少マシなターミナル環境

Windowsでcmdよりは多少マシなターミナル環境を整えました。今使ってるPCが壊れた時にそれを復元できるように自分向けに構築手順をまとめます。 注意 レジストリを操作します。ここに書かれたレジストリの操作を真似した結果あなたのPCがおかしくなっても責…

Visual C++でNuGetで簡単にboostインストール

注意 Visual Studio 2015 RCで動作を確認しました。他のVSでは確認していません。 Visual C++プロジェクトで右クリックをして、「NuGetパッケージの管理」をクリックします。 検索フォームにboostと入力します。少し待つと検索結果が出てくるので、画面右に…

GWの日記

4月24日夜、私物ノートPCが死ぬ 29日、ノートPC入院する 5月1日、友人とゲーセンとカラオケで遊ぶ 2日、友人とドミニオンで遊ぶ 3日、友人と飲み会をする 4日、友人とプロ野球観戦に行く 5日、友人とゲーセンとカラオケで遊ぶ 6日、友人と映画鑑賞に行く プ…

Aggregates 集成体

C++

以下staticデータメンバと明示しない限り、非staticデータメンバを単にデータメンバと表現します。 Aggregates とは Aggregates(以下、集成体)は配列と、以下の条件を満たしたクラスです。 ユーザ定義のコンストラクタ(コピー、ムーブ含む)が無いこと。つま…

CLionでDXライブラリを動かす

前提としてWindowsOSであり、CLionとMinGWはインストール済みとします。(cmakeはCLionインストール時に一緒に入ります) 私の環境は Windows 8.1 CLion 1.0 MinGW 不明 g++は4.8.1でした DxLib 3.13d でした。CLionは www.jetbrains.com から落とせます。MinG…

インデックスアクセス可能なシーケンスの各要素にindex_sequenceを用いて戻り値voidな関数を適用する

C++

素敵なタイトルが思いつきませんでした。 結論 以下のリンクに書いてある内容について触れています c++ - Pretty-print std::tuple - Stack Overflow c++ - Iterating on a tuple... again - Stack Overflow c++ - What does this variadic template code do…

初期化キャプチャでは可変長引数テンプレートはキャプチャできない

C++

初期化キャプチャ(init-capture)で、可変長引数テンプレート(variadic templates)をキャプチャしようと思って調べてのですが、できないようです。キャプチャデフォルト(capture-default)と単純キャプチャ(simple-capture)でキャプチャすることは出来ます。 …

boost::fusion::vectorで異なる型のコンテナ

動的な多態性を持った型のオブジェクトをコンテナで扱いたい場合、基本クラスの参照型または基本クラスのポインタ型のコンテナを使うことができます: #include <iostream> #include <memory> #include <vector> struct A { void disp() const { do_disp(); } private: virtual void do_</vector></memory></iostream>…

部分適用された関数

C++

ScalaにかこつけたC++の紹介 Scalaには部分適用された関数というものがあります。Scalaでは必要な引数を渡して関数を呼び出すことを、関数を引数に適用する(apply)と表現します。例えば: def sum(a: Int, b: Int, c: Int) = a + b + c という関数があったと…

C++にこんな変数宣言があればいいのに

C++

前置き 最近Scalaを勉強しています。Scala勉強している時に、変数宣言周りでC++でもこう書けたらいいなと思うことが2つあったので晒してみます。 変数宣言・定義時の型の後置 関数の戻り値の型が後置できるのだから、変数の型も後置で来てもいいじゃないか、…