Tag
C++
C++タグの記事一覧です。
記事
CMakeでCTestを使うときに最初に設定しておくべきこと
CMakeでテストを追加するときに、enable_testing、add_test、ctestの実行方法を最小構成で整理します。
CMakeで実行ファイルとライブラリをinstallするときの設定
CMakeでinstall(TARGETS)を使って実行ファイル、ライブラリ、ヘッダーを配置する基本設定を整理します。
CMakeで実行ファイルの出力先を分けるときの設定
CMakeでRUNTIME_OUTPUT_DIRECTORY、LIBRARY_OUTPUT_DIRECTORY、ARCHIVE_OUTPUT_DIRECTORYを使って成果物の出力先を整理する方法をまとめます。
CMakeで共有ライブラリのRPATHを設定するときに見ること
CMakeで共有ライブラリを使うときに実行時ライブラリが見つからない問題と、BUILD_RPATH、INSTALL_RPATHの基本を整理します。
CMakeでコンパイルオプションをtargetごとに設定する方法
CMakeで警告オプションや最適化オプションをtarget_compile_optionsでターゲットごとに設定する考え方を整理します。
C++で関数引数をconst参照にするか値渡しにするか
C++で関数引数をconst T&、T、T&&のどれにするか、読み取り、コピー、ムーブの観点から整理します。
C++で値がないかもしれない戻り値にstd::optionalを使う
C++で検索結果や変換結果が存在しない可能性をstd::optionalで表す方法、nullptrや例外との使い分けを整理します。
C++でstd::moveを使うときに気をつけること
C++のstd::moveが実際には移動処理を行うわけではないこと、move後のオブジェクトの扱い、return時の注意点を整理します。
C++でunique_ptrとshared_ptrを使い分ける目安
C++でstd::unique_ptrとstd::shared_ptrをどう使い分けるか、所有権とライフタイムの考え方から整理します。
C++でvectorに要素を追加するときのreserveとemplace_back
C++のstd::vectorでreserve、push_back、emplace_backをどう使うか、再確保と要素追加の観点から整理します。
SwiftのクロージャとselfのキャプチャをC++ラムダ感覚で整理する
Swiftのclosure、trailing closure、escaping、selfキャプチャを、C++のlambda captureと比べながら整理します。
Swiftの計算プロパティをC++のgetter感覚で読むときに気をつけること
Swiftのcomputed propertyを、C++のgetter/setterやメンバ変数の感覚と比べながら、stored propertyとの違いを整理します。
SwiftのenumはC++のenum classよりsum typeとして見ると分かりやすい
Swiftのenum、associated values、switchを、C++のenum classやstd::variantの感覚と比べながら整理します。
Swiftの関数引数でラベルとinoutに詰まったときに見ること
Swiftの関数引数ラベル、外部引数名、_、inoutを、C++の関数呼び出しや参照渡しの感覚と比べながら整理します。
SwiftのGenericsとwhere句をC++テンプレート感覚で読む
SwiftのGenerics、型制約、where句を、C++テンプレートやconceptsの感覚と比べながら整理します。
Swiftの@MainActorをUIスレッドの所有権として見る
Swiftの@MainActor、MainActor.run、UI状態更新を、C++のメインスレッド制約の感覚と比べながら整理します。
SwiftのOptionalをC++のnullptrやstd::optionalと比べて整理する
SwiftのOptional、nil、if let、guard let、!を、C++のnullptrやstd::optionalの感覚と比べながら整理します。
SwiftのprotocolとextensionをC++のinterface感覚から整理する
Swiftのprotocol、extension、default implementationを、C++の抽象クラスや自由関数の感覚と比べながら整理します。
C++が分かる人向けにSwiftのstructとclassの違いを整理する
Swiftのstructとclassの違いを、C++の値型、参照、コピー、ミュータブル操作の感覚と比べながら整理します。
SwiftのthrowsとtryをC++例外と比べて整理する
Swiftのthrows、try、do-catch、Resultとの違いを、C++例外の感覚と比べながら整理します。
CMakeでsrcとappを分けるときに設定しておくべきこと
CMakeでsrcとappを分けたいときに、add_subdirectory、add_library、target_link_librariesをどう設定するかを実用例ベースで整理します。
CMakeのクロスコンパイルでfind_packageがホストを見に行くときの設定
CMakeのクロスコンパイルでfind_packageやfind_libraryがホスト環境を見に行くときに確認するCMAKE_FIND_ROOT_PATH_MODE_*の設定を整理します。
CMakeのクロスコンパイルでsysrootを設定する理由
CMakeのクロスコンパイルでCMAKE_SYSROOTを設定する理由、ヘッダーやライブラリをターゲット環境から探す考え方を整理します。
CMakeでクロスコンパイルするときのtoolchain fileの書き方
CMakeでクロスコンパイルするときに使うtoolchain fileの最小構成、CMAKE_SYSTEM_NAME、CMAKE_C_COMPILER、CMAKE_CXX_COMPILERの設定を整理します。
CMakeでFetchContentとfind_packageを使い分ける目安
CMakeで外部ライブラリを扱うときに、FetchContentとfind_packageをどう使い分けるか、プロジェクト内で依存関係を固定する場合と環境に任せる場合で整理します。
CMakePresets.jsonで最初に設定しておくべきこと
CMakePresets.jsonでconfigurePreset、buildPreset、binaryDir、cacheVariablesを設定して、ビルド手順を共有しやすくする方法を整理します。