こんにちは。ナナオです。

最近AtCoderなどでコーディングをしているのですが、やはり主流な言語はC++のようで、大体のひとがC++を使っています。

ということで、僕も今更ながらC++に入門してみようと思います。

環境構築

とりあえずパッケージ管理に何を使おうか調べたところ、vcpkgとconanの2つが使えるということですが、クロスプラットフォームであることからconanにしようと思います。

C/C++用パッケージマネージャのconanを使ってみた #Conan - Qiita

pipからインストールできるようですが、pyenvを使っている都合でpythonのバージョン切り替えをしたら使えないみたいなことがあると面倒くさいのでbrewからインストールします。

brew install conan

インストールが完了すると、conanコマンドが使用可能になります。

❯ conan --version
Conan version 2.9.2

チュートリアルにしたがって、まずはconanでパッケージを作成してみます。

Create your first Conan package — conan 2.11.0 documentation

新しくディレクトリを作成して、そこでconanコマンドを実行します。

mkdir cpp_playground && cd cpp_playground
conan new cmake_lib -d name=cpp_playground -d version=1.0

また、conan自体にプロファイルを設定してあげる必要があるようなので、それも合わせてしておきます。

Besides the conanfile.txt, we need a Conan profile to build our project. Conan profiles allow users to define a configuration set for things like the compiler, build configuration, architecture, shared or static libraries, etc. Conan, by default, will not try to detect a profile automatically, so we need to create one. To let Conan try to guess the profile, based on the current operating system and installed tools, please run: conanfile.txtの他に、プロジェクトをビルドするにはConanプロファイルが必要だ。 Conanプロファイルは、コンパイラ、ビルド・コンフィギュレーション、アーキテクチャ、共有ライブラリやスタティック・ライブラリなどのコンフィギュレーション・セットを定義することができる。 Conanはデフォルトではプロファイルを自動検出しようとしないので、プロファイルを作成する必要があります。 そのため、プロファイルを作成する必要があります。現在のオペレーティング・システムとインストールされているツールに基づいて、コナンにプロファイルを推測させるには、以下を実行してください:

Build a simple CMake project using Conan — conan 2.11.0 documentation

conan profile detect --force

あとはビルドの際に必要なcmakeが入っていなかったので追加しました。

sudo apt install cmake

(cmakeってなんだ?って感じですが、とりあえずcppのビルドが便利になるツールくらいに覚えておきました。)

C++初心者がMacでCMakeを利用してみる | iret.media

あとはとりあえず以下のコマンドでビルドとテストを同時に行ってくれます。

> conan create .

# ...中略...

======== Testing the package: Executing test ========
cpp_playground_2/1.0 (test package): Running test()
cpp_playground_2/1.0 (test package): RUN: ./example
cpp_playground_2/1.0: Hello World Release!
  cpp_playground_2/1.0: __x86_64__ defined
  cpp_playground_2/1.0: _GLIBCXX_USE_CXX11_ABI 1
  cpp_playground_2/1.0: __cplusplus201703
  cpp_playground_2/1.0: __GNUC__11
  cpp_playground_2/1.0: __GNUC_MINOR__4
cpp_playground_2/1.0 test_package

なんか動いてるっぽいです。

もっと簡単にやりたいんじゃ!!

ここまでやって思いました。

こんなん競プロでいちいちやってられんわ、と。

プロジェクトが大きければ恩恵もあるでしょうけど、僕がやりたいのはあくまで競技プログラミングの方なので、もっと簡単に実行できる方法がないか探します。

ということで、VSCode上から簡単に実行できる拡張機能をインストールします。

Code Runner - Visual Studio Marketplace

これさえあれば、この通り簡単に実行できちゃいます。

結論

競プロにおいて、conan入れる努力は必要ありませんでした。。

とりあえずこんな感じで雑にcppに入門?してみました。

もっと構文とか覚えなくちゃ。。