はかせのラボ

私の頭の中を書いていく雑記ブログです

boost 噂のやつを使ってみる

あいさつ

どうも、はかせです。
今回はC++の勉強をしてる時に色んなとこで聞いた
boostってやつを入れて使ってみます。

boostを入れる

まずはここからboostをダウンロードします。
www.boost.org
私はWindowsユーザーなので一番下の
boost_1_69_0.zipをダウンロードしました。

ダウンロードしたら落としたものを
Cドライブの直下に解凍します。
(ちょっと時間かかります)

この段階でパスを通せば機能が使えるようです。
ただライブラリがいるような機能を使いたい場合はビルドする必要があります。

この操作はコマンドプロンプトを管理者権限で使って行います。
コマンドプロンプトを管理者権限で使う時は
右クリックして管理者権限で実行を選べば出来ます。

管理者権限でコマンドプロンプトを実行したら
boostファイルへ移動しbootstrap.batを実行します。

このバッチを行うとb2.exeという
boostをビルドするexeファイルが出来ます。
そうしたら以下のコマンドを打ってライブラリのビルドを行います。
(見やすいよう改行を入れていますが改行をしないでください)

//x86
b2.exe toolset=msvc-14.1 link=static runtime-link=static,
shared --build-dir=build/x86 address-model=32 -j5 install 
--includedir=C:\"ダウンロードしたboostのバージョン"\include
--libdir=C:\"ダウンロードしたboostのバージョン"\stage\lib\x86

//x64
b2.exe toolset=msvc-14.1 link=static runtime-link=static,
shared --build-dir=build/x64 address-model=32 -j5 install 
--includedir=C:\"ダウンロードしたboostのバージョン"\include
--libdir=C:\"ダウンロードしたboostのバージョン"\stage\lib\x64

今回私はboost_1_69_0を落としてきたので
"ダウンロードしたboostのバージョン"のところには
boost_1_69_0を入れました。

コマンドプロンプトに打ち込んだらエンターキーを押してビルド開始です。
ちなみにめちゃめちゃ時間かかります。
実行中に夕飯済ますなりお風呂入るなりして時間をつぶしましょう。

VisualStudio2017で使えるようにする

ここまできたらあともう一息です。
やることは単純でパスを通します。
f:id:hakase0274:20190202225203p:plain
f:id:hakase0274:20190202225214p:plain

はい、これで設定は完了です。

なんとなくタイマー機能を使ってみる

正直動作確認さえ取れればよかったんですが、
boostってアップデートが頻繁に入るのと
書き方に癖があるからかネットのコピペしても動かないことが多いです。

なのでネット上でなるべく記述量が少ないものを探し
(アプデの影響が少なく、書き方に癖が出にくいから)
timerに行き着いたので使ってみます。

#include "pch.h"
#include <iostream>
#include <Windows.h>
#include <boost/version.hpp>
#include <boost/timer/timer.hpp>

int main()
{
	boost::timer::cpu_timer timer;
	while (true)
	{
		std::cout << "待機中" << std::endl;
		if (GetAsyncKeyState(VK_RETURN))break;
	}
	auto result = timer.format();
	std::cout << result << std::endl;
	getchar();
}

エンター押すまで無限ループで回して押したら結果を表示します。
f:id:hakase0274:20190202225623p:plain

どうやらちゃんと動いているようで安心しました。

あとがき

今回はboostを使ってみました。
色々なところで
「boostはいいぞ」とか
C++の勉強をしたいならboostのコード読め」とか
言われていたので使ってみました。

実際読んでみましたがまぁわからんですw
私の能力不足も大いにありますが、
配布しているということでコメントが全然ないんですよね。
コメントがないコードの読みにくさったらやばいですね(語彙力)

これからも色んなものの合間で読みながらやっていこうと思います。
(boostの勉強でおすすめのサイトとかあったら教えてください)

それでは今回はこの辺でノシ