
vcpkgはMicrosoftがオープンソースで開発している、Windows用のC++パッケージマネージャです。コマンドラインから使用したいライブラリをインストールするだけで、面倒くさいインクルードパスの設定、ライブラリディレクトリの設定、依存ファイルの設定などを行わずに簡単にライブラリを使用することができる優れものです。vcpkgのGitHubリポジトリvcpkgは公式で大量のパッケージが用意されていますが、さすがにネット上に存在する...
vcpkgはMicrosoftがオープンソースで開発している、Windows用のC++パッケージマネージャです。コマンドラインから使用したいライブラリをインストールするだけで、面倒くさいインクルードパスの設定、ライブラリディレクトリの設定、依存ファイルの設定などを行わずに簡単にライブラリを使用することができる優れものです。vcpkgのGitHubリポジトリvcpkgは公式で大量のパッケージが用意されていますが、さすがにネット上に存在する...
最近、自作のライブラリが依存しているライブラリをvcpkgに管理させようと、vcpkgに標準では含まれていないライブラリ用のPortファイルを作成しています。vcpkgはマイクロソフトがオープンソースで開発しているWindows用C++パッケージマネージャです。vcpkgのGitHubリポジトリvcpkgのPortファイルはcmake形式となっており、Portファイルを作成する中でいくつかつまずいた点があったので、書いておきます。CMakeCMakeについてつまず...
VisualStudioで使える、便利な拡張機能にVisualAssistがあります。Visual Assist公式ページVisualAssistはVisualStudioのリファクタリングなどの機能を強化する拡張機能で、C++やC#などに対応しています。C#についてはVisualStudioの標準機能だけでも機能がそこそこ充実しているのですが、C++については不足しているので(個人的な感想)、VisualAssistは重宝しています。最近この拡張機能のライセンスが切れてしまったのですが、僕...
Windows&C++用のパッケージ管理ツールとして、マイクロソフトが公開しているVcpkgというツールがあります。VcpkgはGitHubに公開されており、クローンすることですぐに使えます。GitHub「Vcpkg」C++の代表的なライブラリであるBoostLibraryももちろんVcpkgを使ってインストールできるのですが、新しいバージョンのBoostLibraryをVcpkgを用いてインストールしようとした所、エラーによりインストールできない問題が発生しまし...
前回に続いて、関数の任意の引数型を取得するメタ関数を思いついたので書いておきます。VC14を用いましたが、C++11に対応したコンパイラであればコンパイル可能なはずです。 ソースコード //テンプレートパラメータの指定した位置の型を取得 template<int N,typename... T> struct get_template_param { //引数の数が足りない using type = void; }; //テンプレートパラメータが一つ以上の時の部分特殊化 ...
思いついたので、気晴らしに書いてみました。VC14で確認しましたが、C++11に対応したコンパイラなら使えるはずです。 概要 タイトルの通り、関数の引数の数を取得するための関数です。 関数テンプレートの型推論を利用して、引数に渡された関数ポインタの引数型を可変長テンプレート引数Args...で受け取り、そのサイズをsizeof...演算子で取得しています。 コンパイル時に計算されるconstexpr関数なので、テンプ...
思い立ったので書きますが、静的型付けプログラミング言語の僕の個人的な好みはC++>C#>D>>C=Java、(おまけで)ActiveBasicです。 C++が一番好きな理由は、知れば知るほど何でもできる(気がする)ようになっていく(気がする)からです。 どこまでも続く果てしない言語仕様が僕達を待っています。長いコンパイル時間で休憩することができます。メモリ破壊による意味不明なバグは僕達の有限な時間を容赦なく奪い去ります。わかりづら...
長時間プログラミングをしていると文字とにらめっこすることになるので、どんなフォントを使うのかはそこそこ重要です。特にプログラミングの場合は等幅でiとlやI、0とoなどの区別がつきやすいフォントを選ぶことになるかと思います。 僕は今までConsolasを使っていたのですが、飽きたので変えることにしました。そこで、参考までにVisualStudioのエディタのフォントを変更する方法を書いておこうと思います。パソコンに入って...
※2016/6/11 記事の内容に誤りがあったので修正いたしました。 先日VisualStudio2015 Update1が公開されたのでアプデートしました。 アップデートは問題なく完了し、以前のVisualStudio2015で使用していたプロジェクト(正確に言うと2013で作成したプロジェクトを2015向けに変換したもの)を開いてみました。しばらく使って問題も特に起こっていないと思ったら…… なぜかチームエクスプローラーの「変更」の項目に、変更や追加を行...
C++でバイナリデータ(テキストでないデータ。画像や音楽など)を扱う方法について、以前調べたことをまとめておこうと思います。 std::filestreamを使ってバイナリデータとしてファイルをを開く C++では一般的にstd::fstreamを使用してファイルを扱います。std::fstreamでファイルを開くには、コンストラクタにファイルパスを渡すか、fstream::open関数にファイルパスを渡すことで行います。 バイナリデータとして...