C++
RapidJsonはC++のJsonパーサーです。Tencentによるオープンソースとなっています。 github.com GitHubのページにも書いてありますが、特徴としては RapidXmlにインスパイアを受けた その名(Rapid)の通り、速い メモリに優しい ヘッダーファイルのみ 特に一番…
プライベートのPCはMacでPararells Desktop上でWindowsを動かしているため、CLionとResharper+Windowsを比較してみました。 あくまでも個人的な感想ですが使い勝手としては、Visual Studio 2019 + Resharper + Windowsの方が良いです。 Windowsも動かせると…
LNK2019 未解決の外部シンボル impglewBindBuffer が関数 "public: thiscall VertexArray::VertexArray(float const ,unsigned int,unsigned int const ,unsigned int)" (??0VertexArray@@QAE@PBMIPBII@Z) で参照されました 以下の記事に助けられました atel…
以前にMac + CLion + OpenGLは試しましたが、Windows側、つまりVisual Studio 2019 + Windows + OpenGLも試すことにしました。 以下記事を参考にしました。 qiita.com 以下のコードを試す。 programmer.help #include <gl/glew.h> #include <glut.h> #include <GLFW/glfw3.h> #include <glm/glm.hpp> ヘッダ</glm/glm.hpp></glfw/glfw3.h></glut.h></gl/glew.h>…
OpenGL自体はデフォルトでMacに入っていますので、OpenGL自体をインストールすることは不要ですが、他に設定が必要です。 基本的に以下の記事を参考にすればOKです。 OpenGL environment configuration under Mac CLion つまづいたがcmakeのファイル以下はOp…
CLionでC++ファイルを生成すると、以下のような記述が挿入されてしまいます。 // // Created by UserName on 2021/03/03 // 変更したいなあと探し回りました。 File and Code Templates - C File Headerより編集可能です。
WindowsにおけるC++のSimple Media Direct Layerの導入方法メモ。 Visual Studio 2019でNuGetを導入して、以下のプロジェクトに設定を行います。 コンソールアプリを選択 NuGetでsdlをインストール プロジェクトの設定 - C++ $(SolutionDir)packages\sdl2.2.…
SDLを動かしてみたいなーということで、Macでも動くなら、MacでCLionやってみるか、と。 慣れないことはするものではないですね、みたいなことになりました。慣れないことだから挑戦するべきではあるのですが。 公式ドキュメントがあっさりしているので、日…
C#とアンマネージドなC++のコードの間の値の受け渡しをするための仕組みがInterop。相互運用になります。 C#を扱うものとしては理解しておきたいので、これを機会に実際に手を動かして勉強することにしました。 docs.microsoft.com docs.microsoft.com 特に…
仕事でC++も触るので参加するぞと思っていたのですが、やっと第7回で参加できました。 caddi.connpass.com 途中参加の私はお構いなしで、特に勉強会の説明もなしにスタート。 まあ、参加していなかった私がよくない。結構コアな話。 テーマは「type erasure…
中古で「Windowsプロフェッショナルゲームプログラミング 」というのを読みました。 books.google.co.jp 2002年(!)と日韓ワールドカップが開催されていた頃の本です。 もう昔の本ですね。 やねうらお氏 今では無料体験でプロのゲームが遊べます。 が、ひ…
C#では、dotMemoryという有償ツールでメモリーリーク調査をしていました ですが、Unmanagedなメモリーについてはタッチできないので、UMDHでのメモリーリーク調査が必要になることがあるかなと勉強してみることにしました。 やや古い記事ですが、下記がとて…
久しぶりにC++をやっていて、大事なことを忘れていました。 以下のソースはコンパイルエラーとなります。 #include <iostream> using namespace std; int main() { cout << "半径10の円の面積:" << getCircleArea(10) << endl; return 0; } // コンパイルエラー double</iostream>…
C#やPythonなどの最近の言語では int a; と変数を定義して、出力させれば「0」が返ってきます。 が、C++では、保証されてません。 #include <iostream> int main() { // 初期化しない int a; std::cout << a << std::endl; return 0; } 43650794という桁外れな値が返却</iostream>…
C++の場合、以下のようにオブジェクトを代入したらコピーになります。 MyClass obj2 = obj1; obj2とobj1は別のオブジェクトです。 #include <iostream> using namespace std; class MyClass { public: int data; }; int main() { MyClass obj1 = MyClass(); obj1.data </iostream>…
C++の場合、以下のようにオブジェクトの変数宣言しただけで、オブジェクトが生成されることがあるのに気づいて驚きました。 MyClass obj1; #include <iostream> using namespace std; class MyClass { public: int data; MyClass() { data = 0; } }; int main() { MyCl</iostream>…
ヘッダーファイルとソースファイルの名前は同じにするものだと思っていました。 ヘッダーファイルがa.hであれば、ソースファイル(*.cpp)がa.cppという形です。 C++の本を読んでいたのですが、そうでなくてもコンパイルは通るようです。 a.cppに以下のような…
C++では、GoogleTestで単体テストができますがCppUnitも存在します。 docs.microsoft.com テスト対象のコード Calculation.h #pragma once inline int add(int a, int b) { return 5; // あえて間違えたコード } テストプロジェクトの生成 テストプロジェク…
Effective C++ 第3版を読んでいたのですが、なかなか味わいのある本です。オススメです。 www.maruzen-publishing.co.jp ただ、C++に語っているだけではなく、プログラミングについて考えさせられる内容になっています。 一度でもC++を齧ったことのある方に…
C++に単体テストフレームワークであるGoogleTestがあるので試してみることにしました。 github.com MSDNに記事があるからそれでいいんじゃん、なのですが、つまづいたのでメモです。 docs.microsoft.com 環境 Visual Studio 2019 手順 Consoleアプリケーショ…
仕事上、C++を使うのですが、C#ではExceptionを継承した例外がスローされるので try { throw new Exception("なんか例外") } catch(Exception e) { Console.WriteLine(e.ToString()); } などで、だいたい何が起きたのか把握できるのです。 が、C++では数値で…
C++についておさらいしたかったので、DirectXを使ったC++を試すことにしました。 docs.microsoft.com 開発環境について サイトではVisual Studio 2015ですが、Visual Studio 2019で開発しました UWPとC++によるゲーム開発を導入 ユニバーサルWindowsが開発で…
Visual Studioの支援機能によるものですが、C#の書きやすい点として、///とスラッシュ3つで自動的にメソッドやプロパティのコメントを入力するフォーマットが生成される点にあります。 仕事上、C#だけでなく、C++を書くシーンもあるので、C#と同様に///でコ…