C++
序文 OpenSiv3Dなど、ユーザーが使いやすいように考えて作られたC++製Windowsアプリケーション開発用フレームワークは、複雑なシグネチャを持つ WinMain() を隠してくれる。 # include <Siv3D.hpp> // WinMain()を書く必要がない // int WINAPI WinMain(HINSTANCE hInst</siv3d.hpp>…
本記事はai_9684_dctソロ Advent Calendar 2020 3日目の記事です。 Pythonには「デコレータ」という、関数に追加の機能を修飾するシンタックスシュガーが存在する。 def decorator_sample(func): def wrapper(*args, **kwargs): print(f'Arguments: {args}')…
Visual Studio 2019のバージョンを16.8に上げてから、DirectX12のコードをビルドしてみたら、これまでコンパイルできていたものができなくなっていた。そのコードがこれ。 hr = m_device->CreateCommittedResource( &CD3DX12_HEAP_PROPERTIES(D3D12_HEAP_TYP…
C++20から導入されるコンセプトは、requires節を使用して、型に対してあるメンバ関数の実装を要求することが出来る。 そのメンバ関数に対して、const関数であることを要求できないかと考え、実装してみた。 #include <type_traits> template <typename T> concept Drawable = requires</typename></type_traits>…
モチベーション Pythonのfor文は、C++でいうところのRange-based for文、C#で言うところのforeachと同等の動作をする。つまり、 for (int i = 0; i < 10; i++) {} のようなforが存在しない。 Pythonのfor文において、iterable objectをenumerate メソッドに…
Cppmap で紹介されていたC++用単体テストフレームワークであるCatchをVisual Studio 2019で使ってみたので、その導入に関するメモ。 github.com はじめに 説明のために、Visual Studio 2019 (以下VS2019) で、空のプロジェクトを作成。整数を受け取り2倍の値…
std::bindを使っていたらある問題に遭遇した。 void func(int a){ std::cout << a * 10 << std::endl; } int main(){ using namespace std::placeholders; auto fuction = std::bind(func, _1); function(2); } std::bindを使ってライブラリで用意されている…
@wanotaitei さんが開発しているDungeon Template Library(以後DTL) がUE4で使えそうだったので使ってみた。 DTL(ランダム地形生成ライブラリ)とUE4で遊んでみる会 #UE4 #UE4Study pic.twitter.com/un9FMRTf1e— ai (@ai_9684_dct) May 17, 2019 github.com…
OpenSiv3Dのリファレンスにはブロック崩しのサンプルがある。 https://scrapbox.io/Siv3D/%E3%83%96%E3%83%AD%E3%83%83%E3%82%AF%E3%81%8F%E3%81%9A%E3%81%97 このサンプルでは玉が壁 or ブロックに衝突した時、玉の速度ベクトルのX成分もしくはY成分を反転…
<cfloat>ヘッダ中にあるDBL_EPSILONを使えば誤差も考慮して2つのdouble値の等価比較ができる。 float型ならFLT_EPSILONを使えばよい。 #include <cmath> #include <cfloat> //double型のaとbを誤差考慮して比較する bool NearlyEqual(double a, double b) { return abs(a - b) < DB</cfloat></cmath></cfloat>…
先々週のABCからAtCoderを始めた。 前回参加時はたまたまTwitterを見ていた時にコンテスト開催中だということに気づき、折角だしやるか、と衝動的に参加したため、VS2017で書いて、動くかどうかは実際提出してみて試す、なんて非効率な事をしていた。 折角や…
UE4エディタ上でUActorComponent継承クラスを作ると子Blueprintクラスが作れない問題。 自動生成されたコードはこんな感じ UCLASS( ClassGroup=(Custom), meta=(BlueprintSpawnableComponent) ) class UTestActorComponent : public UActorComponent { GENER…
最近Qt5を触ってるのでそのメモ。 QListViewにQStringListModelを突っ込み、リストビューを作るのはそんなに難しくない。 #include "mainwindow.h" #include <QLayout> #include <QString> #include <QStringListModel> MainWindow::MainWindow(QWidget *parent) : QWidget(parent) { QListView *</qstringlistmodel></qstring></qlayout>…
といっても昔大学の講義の時に取ってたのだが。当面はSiv3D/OpenSiv3Dでの開発に利用すると思う。 github.com VS2017でリポジトリ作成時、以下のエラーメッセージが表示された。 リモート リポジトリの複製を作成中にエラーが発生しました: Git failed with …
プログラマー志望なのにUE4のBPに頼り切りでほとんどコーディングしないのは如何なものかなーと思い最近時間が空いた時はC++ポケットリファレンスを読むようにしている。で、そろそろ何かC++で作りたいなーでもいきなりDirectX/OpenGL直で触るのはハードル高…