ムラサメ研究ブログ

主にゲームやプログラミングのログ

C++

クラスのコンストラクタを可変長テンプレートにして ごにょごにょ

C++

前回なやんだ続きではあります 関数テンプレートは暗黙的インスタンス化可能だが、クラステンプレートは不可能 ならば コンストラクタを可変長テンプレートすればいいじゃない [Wandbox]三へ( へ՞ਊ ՞)へ ハッハッ #include<iostream> #include<sstream> using namespace std; struct</sstream></iostream>…

関数テンプレートは暗黙的インスタンス化できる

C++

[Wandbox]三へ( へ՞ਊ ՞)へ ハッハッ で終わりなんだけど、少し悩んでやっぱ無理そうだったのでメモ 関数テンプレートで実装出来るのだが、使い勝手や最適化など考えて 関数オブジェクトにしたかったが 関数とクラスの テンプレートの違いで出来なかった 追記:や…

右辺値参照~完全転送まで100%理解するぞ! part5 参照の圧縮(reference collapsing)

右辺値参照の山場の一つ Universal Referenceまであと一歩 参照の圧縮とは UniversalReferenceそのものだが 参照は(const等のストレージクラス除き)2種類しかない X& (左辺値参照)、X&&(右辺値参照) X&&& 等はエラーですし X& && 等、参照を重ねる事は出来…

右辺値参照~完全転送まで100%理解するぞ! part4 Universal Reference その前に

こうやって 人に見せようと書く事は自分の理解になる 復習DEATH 前回の復習。右辺値参照を関数の引数にするには 一見コピーに見えるが void hoge( X x ) とプロトタイプすればよい 呼び出し側で hoge( std::move(x) ) とすればムーブコンストラクタが使われ…

右辺値参照~完全転送まで100%理解するぞ! part3 関数呼び出し

いまいちまだ 納得していない部分もある(理解不足 実践的な関数呼び出し 右辺値参照はムーブセマンティクスのために使われる ムーブセマンティクスは主に ・ 所有権の移動 ・ コピーのコストを削減(ポインタのすげ替え) で使われる 所有権の移動 コピーさ…

右辺値参照~完全転送まで100%理解するぞ! part2 VisualStudioの罠

はじめに おまけ。 右辺値参照を理解するうえで大きな妨げになった VisualStudioでの挙動(バグ?? 詳細希望) 左辺値は暗黙で右辺値参照にキャスト出来ない バグ? の前に基礎から 左辺値(参照)は 左辺値にのみ 右辺値(参照)は 右辺値にのみ 暗黙キャスト…

右辺値参照~完全転送まで100%理解するぞ! part1 右辺値参照とは

TL;DR はじめに、私が右辺値参照を調査したのは、何番煎じかわからない 解説をしたいわけではなく VisualStudioでの動作の違い、universal referenceの特殊化したときの動き、複数の引数をuniversal referenceしたとき デフォルト引数・・・ など、応用した…

Vulkanほんと入門!

はじめに 3D APIは複数あります OpenGL系 OpenGL、OpenGLES、WebGL等 色々と出ているがどれもがクロスプラットフォーム 現状 Windows、Linux、Mac、Android、iOS、Web が動くのはこれしかない コンシュマーゲーム機でも採用されている 現在 WebGL1.0(GLES2.…

boost::bind (std::bind)を理解する

C++

はじめに C++で仕事をしていますが、C++って人によって理解度が違います 今回の案件はBoost.Asioで作れという指定なので、どうしてもC++色が強くなります stream、string、functional、bind、rambda はたまた triboolやtuple、各種コンテナと 他の作業員がC+…