でらうま倶楽部

バカってゆうか、ゲームを作る事しか能の無いプログラマの、面白おかしな日々を綴ってみる実験。

boost

boost 1.69.0 を試してみたよ。

30

コード書いとる?

気づけばboostライブラリも随分と新しくなっていたので、隙間時間に更新してみました。
そこでboost 1.67.0→1.69.0でいくつかハマった点を共有しまーす。


最初にここに目を通しておけばよかった!という内容ですので、お急ぎの方はリリースノートを呼んでください(苦笑)


いつものようにboost1.69.0をビルドして、Cinder0.9.1をビルドして、拙アプリをビルド...あれ? この警告が出ますか...


これはライブラリをビルドした際に「内部シンボルが全て公開状態なのか、必要なものだけ公開状態なのか」の設定があって、アプリからリンクした時に2つの設定が混在していまっせ!という趣旨の警告です。えーそれって随分前に統一していたハズなのにー!

これリリースノートに「設定を変更しました」と書いてありました。すいませんすいません。という訳でCinderのビルド設定とアプリの設定を同じに変更して終了!

Build Settings内の「Symbols Hidden by Default」Yesに変更するだけです。

あともう一点! Cinder0.9.1のビルド中にエラーになりました... マジか...

これリリースノートに「boost::Logicに破壊的変更を加えたよ!!」って書いてありました!すいませんすいません。という訳で static_cast を加えて無事ビルド通過。

警告も出力されなくなり、無事新しいboostに更新できました!!


最後に、boost::systemはヘッダオンリーになったので、当該ライブラリファイルをリンクする必要はもうありません。素晴らしい!

ではまた次回!!

C++11の初期化子リストでboost::anyはどうするの??

photo

にっこにっこにー!!

コード書いとる??

C++11の初期化子リストが便利過ぎる件についてはこないだブログに書きました。

んで、構造体に boost::any が入ってる場合にどうすれば…

ってなった。けど無事解決。
 
#include <vector>
#include <string>
#include <boost/any.hpp>


int main() {

  std::vector<boost::any> hoge{
    int{ 0 },
    double{ 0.5 },
    std::string{ "fuga" },
  };
  
}

って書けるのね。

何を今更と思わるけどすっげー嬉しかったので!!


ではまた次回!!

人生初北海道は素晴らしい体験の連続だった

photo1

今日もコード書いとる??

Boost勉強会@札幌に参加してきました(さっそくの資料等の更新、感謝)

初羽田!! 初北海道!! 初札幌!! 初すすきの!! 初大通!!

そして北海道大学の学食「牛とろ丼」がスンゲーうまかった。ほんのり生肉っぽい牛肉のたたき(??)に醤油ダレのかかった一品。

photo2

コアップガラナさいこう!!


あれ?? 何の話だったっけ…??


そうそう、勉強会。ぜひこの記事を読んでくれてるあなたも発表して欲しいと思っています。

プログラミングの参考書を読んだら、自分でコード書いてみたりするよね??


入力したら即出力!!

ダイエットの基本は「入力 < 出力」!!


自分の体験した事、考えている事を相手に伝えるいい訓練にもなるので、是非。

ギターは弾かなくていいと思いますw

ではまた次回!!

boost::any って参照で取り出せるんだ…

30
こんにちは!!

今日もプログラム書いてる??

オレもC++書き始めて3年目。 すこしずつだけど、boostも使い始めてる。

てかboost便利すぎ!!

とくにboost::anyがお気に入りで、これを使うとC++でNSArrayやNSDictionaryっぽいのが実現できて重宝してる。

んで、ふと気づいたんだけど…

#include <iostream>
#include <boost/any.hpp>


struct Hoge {
  Hoge() :
    value(0)
  {
    std::cout << "Hoge()" << std::endl;
  }
  
  ~Hoge() {
    std::cout << "~Hoge()" << std::endl;
  }

  int value;
};


int main() {
  boost::any value = Hoge();

  {
    std::cout << "Test 1" << std::endl;
    auto v = boost::any_cast<Hoge>(value);
    v.value += 1;
  }
  
  {
    std::cout << "Test 2" << std::endl;
    auto& v = boost::any_cast<Hoge&>(value);
    v.value += 1;
    
    std::cout << v.value << std::endl;
  }    
  
  {
    std::cout << "Test 3" << std::endl;
    auto& v = boost::any_cast<Hoge&>(value);
    v.value += 1;
    
    std::cout << v.value << std::endl;
  }    
}

おおお!! コピーで取り出すだけじゃなくて、参照でも取り出せるがね!!!!(名古屋弁)

なんだよー、みんな。教えてよwww

けっこういろんな箇所で std::vector とか コピーで取り出してて恥ずかしかったわー(名古屋弁)


もちろんiOSでも使えるboost。ただ、ビルドするのが大変なので、ヘッダファイルだけで使えるのを丸ごと自分のプロジェクトのソースフォルダにコピーして使ってるんだけどな!! ワッハッハ!!(実はcpp_akiraさんにそう教えて貰ったのは内緒)


ではまた次回!! 
記事検索
電子書籍発売中

「チュートリアル形式で始めるOpenAL」
サウンド怖くない。C++による8つのチュートリアルで始めるOpenALプログラミング。さああなたも、自作アプリに魅力的な音効を添えてみませんか??
⇒Kindle版 ⇒iBooks版


「iPhoneアプリ『ういろう』のレシピ」
ゲームってどうやって作ってるの?? 拙アプリ『ういろう』の製作過程を本にまとめました。もちろんソースコードつき
⇒Kindle版 ⇒iBooks版


『チュートリアル形式で始めるOpenGL[2D編]』
OpenGL怖くない。C++による16のチュートリアルで始めるOpenGLプログラミング[2D編]。さああなたも、ゲーム作りを始めてみませんか?
⇒Kindle版 ⇒iBooks版
自作ゲーム配信中

『Puzzle & Monarch』
「君主候補となって国作り!! ただし制限時間は90秒。」森を作って道をつないで...あなただけの国を作ってみませんか??
⇒AppStore


『BRICK & TRIP』
咄嗟の判断に、あなたの指先はついてこれるか?! 爽快フリックアクション!! 様々な難関をくぐり抜けて旅の終着点を目指そう!!
⇒AppStore


『ういろう』
名古屋土産ういろうがiPhoneで大活躍?! 白ういろうを守れるのはあなただけ。ひゅーん、ぼよよーん!!
⇒AppStore ⇒LITE版


『こなへん』
ヒマラヤ山脈、大西洋、世界で一番深い湖… それって地球のどこにあるのか知ってるかな?『全方位直感地理クイズ』という新ジャンルに挑戦!あ、それ。地球をくーるくるw
⇒AppStore ⇒LITE版


『GEOSPOT』
ヒマラヤ山脈、大西洋、世界で一番深い湖… それって地球のどこにあるのか知ってるかな?『全方位直感地理クイズ』という新ジャンルに挑戦!あ、それ。地球をくーるくるw
⇒Windows ⇒Mac


『TieGunner』
マウス片手に大宇宙へ飛び立とう!『しっぽシューティング』というジャンルを作って頂きました^^; WinでもMacでも動きます。ソースもあるでよw
⇒Windows ⇒Mac
QRコード
QRコード
  • ライブドアブログ