ゆき社長

シーゲンガーのお勉強 ゲームプログラマ、ゲーマー、色々!

C言語関連

json11 int64_t

C++におけるC++ライブラリの選択肢は色々ある 前は picoJsonを愛用していて、今でも十分に 小さく使いやすい ヘッダのみで利用できるので、場合によっては今でも使う けど、json11が評判いいし使っています 実際に使いやすい ところが json11は uint32、int6…

json11 int64_t

C++におけるC++ライブラリの選択肢は色々ある 前は picoJsonを愛用していて、今でも十分に 小さく使いやすい ヘッダのみで利用できるので、場合によっては今でも使う けど、json11が評判いいし使っています 実際に使いやすい ところが json11は uint32、int6…

ちょっと便利な enum class (scoped enum)

ちょっとしたコネタレベルだけど C++11では enumのかわりに enum class あるいは enum struct を使うと良いという話 地味に便利なんだよ。 例えば 今まで enumは、ネームスペースを持っていなかったので 他のシンボルと名前がかぶるので namespaceを作ったり…

配列の参照を返す関数

まー 基礎的な事なんだけど C言語の文法って不思議なんです。 主に関数ポインタ関連ですけど 関数プロトタイプは Cでは int add( int x, int y ); ですよね。でもGoでは func add(x int, y int) int と、一般的に知られてる C言語の文法から大きくかえたのは…

std::random 事始め

とある事情があり std::random を使うことに libcのrandもあるんだけど、C++11には新しく乱数ライブラリが入りました 通常のrandは、線形合同法等の古いアルゴリズムを使っているため、乱数に偏りが出たり規則性が出る、循環が短い 等々問題点が多いので ち…

CLion

C++のコードを書く時、今までは専ら Windows+VisualStudioでした Macになってから、エディタに困っていました XCODEって 重いし使い勝手あまりよろしくないし、インデントが嫌い やはり VisualStudioに慣れてる身としてはね・・・ という事で CLionを評価し…

歌舞伎座.teck 8

http://kbkz.connpass.com/event/13905/ 歌舞伎座.teck 8で発表してきました そもそもの経緯は、C++勉強会に参加したかったけど定員オーバーで 発表者枠しかなかったので・・・ そして 発表内容を見ると C++業界で有名な人、暗黒魔法使い、VM業界で有名な人…

最強英語勉強法!

最強の英語勉強法を考えた。 もちろん アメリカで仕事するのが一番だけど とりあえず 日本で手軽に勉強するには 英語ネイティブのオープンソースプロジェクトのコントリビュータになる事! プログラミングで使う英語が学べるし、コンピュータ言語はわかるん…

近況

最近の近況です C++とJavaのゲームサーバの開発を一括で請け負っています 最初はお客さんより通信ライブラリを頂けるとの事で Javaを1名、C++を私+2名程度で考えていましたが お客さんのライブラリが、マルチスレッド型で速度が全然出ないのが予想できたの…

boost::asioは shared_ptrでセッション管理すると楽という話

http://qiita.com/YukiMiyatake/items/f4641c54151a18c362f9 boost::asio のサンプルの解析 要点を絞ると、boost::asioで非同期に通信をする場合に オブジェクトの生成と破壊のタイミングが直感と反する sessionを管理する場合に shared_ptrを使うと比較的簡…

C++でTCP/IP通信 part1 boost::asio

http://qiita.com/YukiMiyatake/items/456e95f7d2fa79e463db boost::asio けっこう使い方難しい。同期で使うのは簡単なんだけど 非同期(ノンブロッキング)で使うのは そこそこ難しそうなので お勉強はじめました いちおう Qiitaに毎週1個記事を書こうと思…

コピーコンストラクタ&代入演算子&ムーブコンストラクタ&ムーブ代入演算子

C++って言語仕様が多くて大変なので 勉強&復習しながら メモ残します ってことで、結構難しい コンストラクタちゃんです。 本当はコンストラクタだけで 5,6個はTipsあるのですが とりま コンストラクタの種類 class Cがあった場合 C(); // デフォルトコ…

範囲に基づくforループ (range-based) for

C++は古い言語ですが 拡張されどんどん近代化改装が行われています C++03、C++11 ときて、もうすぐC++14がきます。 もちろん C++の後の数字は 西暦年ですね。 ってことで C++11は 2011年に決定された言語仕様ということになります 先ほどサンプル書いた中で…

unordered_map、unordered_multimap

ちょっとわけあって、C++のリファレンスなるものを 生意気にも書いている そんなわけで、今まで適当に使ってきた STLの勉強にもなって ありがたい C++11 になって、std::unordered_map、std::unordered_multimap というコンテナが増えた。 std::map 等は、キ…

cpprefjp

C++ゲンガーの総本山 cpprefjp C++標準化委員会で憧れの アキラさん主催する、C++のリファレンスサイトです ちょっとご縁がありまして、こちらの作業を手伝うことにしましたが プログラム以外の部分で色々とつまづいておりますw もしかしたら、ここを見てcp…

FFT 始めました! part.1

こんばんわ 自称スーパーハカーアイドル ちはやです ここ数年風邪ひいてない、オレバカ確定wwwww ってつぶやいて、まわりから 「ちはやさん頭いいよ!10まで数えられるもん!」 って 慰めてもらった翌日 100年に一度の風邪をひきやがりましたよ! こん…

VisualStudio2013 Boost1.54 インストール的な

ってことで とりあえず VisualStudio2013のExpressをインストールしました このExpressってのは ただなんですよね。ほんとお得! でも 少し前までは毎回ちゃんと買ってたんですよ MSDN(年間20万でOSやDDKなども毎月送られてくる) も入ってたんですよ! バカ…

C++の仮想関数の仕組み&静的に呼ぶ方法

C++における関数のオーバーライド、ポリモーフィズムは 知ってる人には常識だけど他のオブジェクト指向言語の人は悩む事が多い baseクラスから subA subB クラスを派生させ printメソッドをオーバーライドさせ ポリモーフィズムで 実行させる例 class base {…

32ビットのmemset

memsetはメモリの初期化によく使うけど 8ビット単位でしか処理できないよね? たとえば3D計算とかしてると 1.0f ( 0x3f800000 ) で初期化したいって時に forループで設定してしまうよね? いい関数知ってる人いたら教えて下さい。。。 ぱっと考えて大きなデ…

if( A & 0x00ffffff == B & 0x00ffffff )

先輩のソースみてたら if( A & 0x00ffffff == B & 0x00ffffff ) って書いてあった。やりたい事は、下位24ビットのみで イコール判定 でもなんか 違和感感じた 頭の古いわたしには if((A^B) & 0x00ffffff ) ってソースが一番に浮かぶ if((A-B) & 0x00ffffff )…