
本サイトcpprefjpは、プログラミング言語C++のリファレンスを提供するWebサイトです。 最新C++バージョンのリファレンスを提供していきます。 運営方針 本リファレンスサイトは、C++言語の最新のリファレンスを常に提供し続けることを目標にしています。 各クラス、関数にはそれぞれ1つ以上のサンプルコードを付けていく方針です。 本サイトでは、他サイトおよび規格書の直接的な翻訳ではなく、編集者の調査と考えに基づいた解説を提供していきます。 HTMLデータのダウンロード cpprefjp.github.io-master.zip ローカルで閲覧できるHTMLを用意しています。 スポンサーシップ cpprefjp - Open Collective このプロジェクトは、持続的な活動のため、ユーザーの方々からのご支援をお待ちしております。上記Open Collectiveのプロジェクトでスポン
この記事は「Nim Advent Calendar 2021」の16日目の記事として登録させてもらっています。 C++のdynamic_cast C++にはdynamic_castというキャストがあり、これを使うと安全にダウンキャスト*1を行うことができます。 ここでいう「安全」とは、ダウンキャストの失敗を判断できるということです。 #include <stdio.h> class Base { public: virtual ~Base(){} }; class Derived : public Base {}; int main() { Derived* derived = new Derived; Base* base1 = derived; Base* base2 = new Base; printf( "dynamic_cast<Base*>(base1) = %p\n", dy
概要 プログラム開発当初から過度のパフォーマンス最適化を行うのは良くないと言われている。 プログラムソースの柔軟性が失われる可能性があるし、必要無いかもしれない最適化に時間を費やすのは開発工数管理的に好ましくないからだ。 プログラムがある程度動作するようになり、パフォーマンスが悪い(実行速度が遅すぎる)場合は、 処理時間計測を行い処理時間を要している箇所を探しだし、アルゴリズムやデータ構造の変更などのパフォーマンス・チューニングを行う必要がある。 予備調査として、色々なアルゴリズム・データ構造を採用した場合の処理時間計測を行い、 どれが最適か、どのような性質があるかを知ることも重要である。 本稿では、上記のような目的のためにプログラムの処理時間を計測する方法について説明する。 場合によっては、ストップウォッチを片手にプログラムを実行し、処理時間を計測することもあるかもしれないが、 精度が1
top C++ 高速化 処理時間の計測 2018-06-19 - 2018-07-13 (update) mode save 高速化の解説一覧:[link:高速化] プログラムの高速化は,処理のボトルネックの分析から始まります. そして,分析の基本は処理時間の計測です.ここでは,その方法について解説します. *時間計測用の関数 clock関数,QueryPerformanceCounter関数,std::chrono について紹介します. ** clock C/C++で処理時間の計測を行う時,time.h で定義されている clock()関数が良く利用されます. {# #include <stdio.h> #include <time.h> int main() { clock_t start = clock(); // 何かの処理 clock_t end = clock(); const
c++で処理時間等を計測する際,clock()やtimeGetTime(), GetTickCount()等を用いていたものの, clock()は精度が10msec程度(処理系依存)なため使い勝手があまり良くなく,GetTickCountは精度は良いもののwinmm.lib(windows系)で用意されている関数のためxcode等で使えない. std::chrono 一方std::choronoはプラットフォームに依存せず,使い勝手もよい(精度は1msec程度の模様). 使い方は #include <iostream> #include <chrono> int main(){ std::chrono::system_clock::time_point start, end; // 型は auto で可 start = std::chrono::system_clock::now(); /
標準ライブラリのclock関数を呼び出すと、プログラム開始時点から現在までの経過時間をクロック単位で取得できます。処理開始直前と直後にclock関数を呼び出して、その返却値の差を求めれば、処理に要したクロック数が得られます。 /* 処理に要した時間を計測 */ #include <time.h> #include <stdio.h> int main(void) { clock_t start, end; start = clock(); /* 何らかのか処理を行う */ end = clock(); printf("計算時間は%.2f秒です", (double)(end - start)/CLOCKS_PER_SEC); return (0); } なお、CLOCKS_PER_SECマクロは、clock関数が返却する1秒あたりのクロック数です。この値で割ることによって秒単位への変換を行い
1.doxygenとは Doxygen は、C++、C、Java、Objective-C、Python、IDL (Corba、Microsoft 風) 向けのドキュメンテーションシステムです。 PHP、C#、Dにもある程度対応しています。 http://www.doxygen.jp/ と、公式サイトで説明されている通り、ドキュメント生成を行うためのシステムです。 ※ライセンスはGPLで、無料で使うことができます。 ※OSはLinux, Windows, Macで使うことができます。 下図はドキュメント生成のざっくりとした流れです。 まずは、doxygenスタイルのコメントの記述方法からまとめていきたいと思います。 2.doxygenスタイルのコメント記述方法(とサンプルコード) 2-1 基本 doxygenはすべてのコメントをドキュメント化するのではなく、特定の形式で記述されたコメントのみ
Cocos2d-xとRx.cppでリアクティブプログラミングを始めるためのライブラリCocosRxを作りました。 https://github.com/gamako/CocosRx はじめに Rx.cppというC++用のリアクティブプログラミングのライブラリがあります。 Cocos2d-xで使うには、少なくともイベントをObservableとして扱えないと始まりません。とっかかりとしてタッチイベントと、フレーム更新のイベントをObservableにするライブラリをつくってみました。これだけでもいくらか遊べると思います。 ただし、Cocos2d-xで(というかc++で)リアクティブプログラミングをすることに意味があるのかはわかりません。もしかしたら、とても不毛なことをしているのかもしれませんがw 導入方法 Cocos2d-xのプロジェクトと一緒に/Classes以下のcppをコンパイルしてく
こんにちは!みなさん、ハートビート、してますか? 本日は ThreadHeartBeat の紹介です。 さて、突然ですが、Blueprint で以下のようなループ処理を書いて実行してみましょう。 すると、ループ処理は中止されて以下のようなワーニング&ログが表示されます。 これは、意図しない無限ループ処理を検知し、修正しやすくするための仕組みです。 Blueprint のスタックトレースが表示されるため、どこで無限ループになってしまっているかが分かりますね。 ちなみに、無限ループとして扱われるループ回数は、 [Project Settings] の [Maximum Loop Iteration Count] で変更することができます。 それでは、C++ でこんなコードを書いて実行してみましょう。 #pragma once #include "CoreMinimal.h" #include
はじめに UE4のアニメーション通知(AnimNotify)機能の一つであるPlay Particle Effect(UAnimNotify_PlayParticleEffect)を使って、キャラクタの動きに合わせてエフェクトを再生するようにすることは一般的かと思います。例えば走っているキャラの足が地面に着いた時に砂煙を出したり、攻撃モーション中に火花や軌跡を出したり… https://docs.unrealengine.com/ja/Engine/Animation/Sequences/Notifies/index.html#playparticleeffect しかし、大量のキャラクタが動き回るコンテンツの場合、大量のエフェクトが同時に生成・再生されることによる処理負荷が問題になることが多いです… そこで、本記事では 以前に紹介した Spawn Emitter~ノードの Pooling
この記事はUnreal Engine 4 (UE4) #2 Advent Calendar 2019の14日目の記事です。 qiita.com はじめまして、くぼっちです。 アドカレ、ブログ投稿共に初めてのため暖かい目で見ていただけると助かります。 目次 目次 はじめに 注意事項 バージョンに関して 置換ツールに関して Undoに関して Plugin作成 Build.csの設定 .uplugin の設定 処理の実装 BlueprintNodeReplacer.h BlueprintNodeReplacer.cpp CreateFunctionNode(関数ノードの生成) ReplaceNodePinLinks(ピンの置換) ReplaceFunctionNode(関数ノードの置換) ReplaceBlueprintFunctionNode(BPで使用する置換処理) Blutilityを作る
この記事は何? この記事はUnreal Engine 4 Advent Calender 2019その2の6日目の記事です。 qiita.com UE4 C++でのコンパイルビルド時のエラーの対応メモです。 慣れればエラーを見てどんな問題が起こっているのかわかるのですが、慣れていないと原因がわかりづらいです。 そんなエラー文からどのような対応をすればよいのかのメモになります。 2020/01/14:少し追記しました。 この記事は何? クラス名.cpp(1): error : Expected クラス名.h to be first header included. 関数名 inconsistent dll linkage ~関数が未定義 error LNK2019: unresolved external symbol 関数名 error LNK2019: unresolved extern
この記事はUnreal Engine 4(UE4) Advent Calendar 2019の4日目の投稿記事です qiita.com はじめに 元々UE4C++でのゲームAIについて書いていましたが、諸事情により完成しませんでした・・・ なので大したネタじゃないです、すみません 変わりにUE4をC++で開発していて「え?これでインスタンス取得できるの?」と思ったGet系をまとめてみました 初心者向けでよろしくお願いします 公式ドキュメントのどこかに書かれているかもしれないですけど、まぁご容赦ください Asset系取得 FObjectIterator Module include CoreUObject #include "UObject/UObjectIterator.h" ディレクトリにあるAssetを全検索して名前で引っ張ってこれるので「大丈夫なのかこれ?正しいのか?」と不安になるコ
※この記事はC++20を相談しながら調べる会 #3の成果として書かれました。 P1152R4 : Deprecating volatileを読み解く過程に生じたvolatileについての調査(脱線)メモです。ほぼ文章です。 C++におけるvolatileの効果 マルチスレッドとvolatile 用途と副次的効果 アウトオブオーダー実行とvolatile 参考文献 謝辞 C++におけるvolatileの効果 C++におけるvolatile指定の効果は次のように規定されています(6.9.1 Sequential execution [intro.execution])。 Reading an object designated by a volatile glvalue ([basic.lval]), modifying an object, calling a library I/O fun
概要 状況の例として、 Blueprint へ特定のアクターを引っ張り出させる次のような実装を提供したいとする。 設計上必ず1つ AMySpecialActor が配置されていて、 // 定義はどうあれ、どこかに定義され1つだけは常に配置される AMySpecialSomething アクター UCLASS() class AMySpecialSomething: public AActor { GENERATED_BODY() }; それを Blueprint からさくっと引っ張れる機能提供を C++ コードで実装したい、と: 動作しない、少し惜しい実装 UCLASS() class UMySpecialUtility : public UBlueprintFunctionLibrary { GENERATED_BODY() public: UFUNCTION( BlueprintCal
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く