再帰深度を抑えたtuple的コンテナの構築 - ここは匣 コレの最後の部分を逆に動かしたら指定された方だけに対応するhash関数が作れるのではとか考えてみたVSとClangでは動いたというのに。2対1だけど規格的にどっちが正しいのかわからない 間違ってる気さえ…
(追記)こっちも読め。こっちのがいい 再帰深度を抑えたtuple的コンテナの構築 - ここは匣 (追記終わり)調査環境はVS2013のみ たぶんO(log N)で動く コード中のstd::tupleはtype_listの代わりに使った。std::tupleを入れると実は対数オーダーにならないんじゃ…
https://gist.github.com/Fuyutsubaki/e798e6c8d9265d020b4d これ template<size_t N ,class Func> class drop_functor { template<class F> drop_functor(F&&f); template<class...T> auto operator()(T&&...args); }; template<size_t N,class Func> auto make_drop(Func&&func) ->drop_functor<N, Func>; N個dropして関数を適用して</n,></size_t></class...t></class></size_t>…
夜 (fimbul11) on Twitter さんの Template Meta Programming入門から応用までの367ページ当たり見ながら書いた 深度O(logN)で動くvalue_at的な関数http://melpon.org/wandbox/permlink/i0YgUwd8wdsJBDJE gccとClangで動作確認。VSではstd::index_sequenceが…
一時オブジェクトとはこれである x+y; Type(); 要するに変数に関連付けられていないオブジェクトのことであるこいつ等の寿命は式が終わるまで、つまりセミコロンが出てくるまでである void f(const std::string&s); //main //fを処理する段階ではまだ生きて…
template<class> struct rhs { friend int operator*(int x, rhs){ return 2; } }; template<class T> rhs<T> make(T){ return rhs<T>(); } using R = decltype(42 * make(42)); int main(){} 自身が右辺に来る二項演算子を クラス内でオーバーロードした テンプレートクラスを テ</t></t></class></class>…
本日2014年 2011年から早3年。C++11も浸透してきた、してきてる、してきて欲しいなという時分ですね 冬椿です。ファミレスに行ったらカレーがメニューから消えてました。こんばんはC++11で追加された機能の一つに『右辺値参照』というものがあります こいつ…
某社に面接に行ってきました。 で、そこで「reverse関数書いて(意訳)」と言われたので書いてきた void reverse(std::string& str) { size_t N = str.size(); for (size_t i = 0; i < N/2; ++i) std::swap(str[i], str[N - 1 - i]); } こんなの。CodeIQなら★…
VisuakStudio2013のバグ?エイリアステンプレートにエイリアステンプレートを使うとC2955エラーを吐く - TXT.TXTの問題をちゃんと分析しなおした テストコードはーい template<size_t N> struct Index{ static const size_t value = N; }; template<class T> using foo = typena</class></size_t>…
なんかむらむらする。プログラムを書くっていう日じゃない のでちょっと自作ライブラリtupleple::type_list::mapについて書きたいまず何がやりたいか、サンプルを書く using tuple=std::tuple<void,int,char>; using result=map<std::add_pointer,tuple>::type; static_assert(std::is_same<result,std::tuple<void*,int*,char*>>::value,</result,std::tuple<void*,int*,char*></std::add_pointer,tuple></void,int,char>…
現在私はtuplepleという、boost.fusionのC++11版になりたいタプル操作ライブラリを作っている 作り始めた理由はちょっと込み入ったことをしようと思うと必ずタプル操作が必要になったからだで、製作途中でindex_tuple_idiomというのを思いついた 厳密に言う…
なんかVSバグ?タグ作ったほうが良い気がした タイトルの通り #include<tuple> #include<type_traits> #include<iostream> struct C { template<size_t n> struct inner { using type = int; }; template<size_t ...N> static std::tuple<typename inner<N>::type...> f();//← template<size_t ...N> struct g { std::tuple<typename inner<N>::type...…</typename></size_t></typename></size_t></size_t></iostream></type_traits></tuple>
就活中。C++かけるところで働きたい。この際C++じゃなくてもいい。冬椿です [std::function<R(Args...)>] から [std::function<R(std::tuple<Args...>)]に変換する関数を書いたおよそ40行。短いことはいいことだ //サンプル int func(int a, int &b, int c) { std::cout << a << b << c; return</r(std::tuple<args...></r(args...)>…
この問題解決は不具合があります。この問題についてはこちらをご覧ください VisualStudio2013のバグ?alias templateにT::valueやT::typeやvariadic-templateを使うと不都合が起こる - TXT.TXT テストコード #include<iostream> #include<typeinfo> namespace test { template<class T> st</class></typeinfo></iostream>…
前回(【C++雑記】半日ほどstd::functioinのジェネリック版について考えてたけどどう考えても難しい - TXT.TXT) のだとあんまりにもあんまりなので、ナンカもうそれっぽい事が出来ればいいやとIf関数を作ってみた https://gist.github.com/Fuyutsubaki/853670…
新年から「できない|難しい」ネタ。世知辛いですね。あけましておめでとうございますツイッター見てたらこんなコードが流れてきた poly_function<void(_1)> f = [](auto x) {}; https://twitter.com/cpp_akira/status/424244741245378560C++14で追加されたジェネリック</void(_1)>…
プログラミングあるある プログラムが遅いけど思い当たる節が多過ぎてどこがネックかわからないなのでこんな感じにに動くクラスを作ってみた template<class T> using debug_timer = typename DebugTimer::Timer<T>; int main() { std::vector<int> v = Make10000();//10000の</int></t></class>…
このコードを見てほしい printは使用するメンバ関数を出力し、funcは適当な処理を行う int main(){ Foo foo; foo.print(); //func1 func2 func3 foo.func1(); foo.func3(); foo.func2(); } 出力>>func1 func2 func3 int main(){ Foo foo; foo.print(); //fun…
ゲームプログラミング等における画像などリソースの管理がわからない - TXT.TXT の続き。ワカリマセーンワカリマセーン で、 前回あげた方法の何が自分的に気に食わないかというと、自分では必要ない画像を自分が使うクラスが必要らしいということで読み込ま…
ゲームプログラミングあるある。リソース管理がだるい 何がだるいね?というといまいちスマート感に欠ける辺りがとてもだるい 管理法1:管理しない とてもKOOLなメソッド。とても直観的、とても奇麗。そしてとても...Big♥ class A{ Texture texture;//=Textur…
お疲れ様でした。当日ブースに来て下さった方ありがとうございます もう2週間近くたってますね。いろいろあってまだAIMS本以外戦利品に手を付けていません。夏コミの戦利品もまだ積んであります。嗚呼 ところで今回イベント初参加でした。イベント処女でし…
お値段無料にて「シカクイ」頒布いたします。A-47 TXT.TXTです シカクイってどんなげーむ? ~すごく分りづらい説明~ シカクイはライフゲーム(人生ゲームに非ず)をベースに作られた物理パズルゲームです ~わかりやすい説明~ ①クリックします②吹き飛びます③…
爆ぜるSTGは諸事情により延期となりました。申し訳ございません 当日はゆる不和癒し系パズルゲームを頒布します。したいな。間に合わせます。いきてる。どっこい生きてる!! パズルゲーム…?
進捗どうですか進捗だめです冬椿です。現実逃避して自由度の高いVisitorパターンを作ってました ビジターパターンって void accept(Visitor&visotor) こんな感じ。自由度がない。戻り値戻せないし引数引けないし。籠のなかの小鳥のよーだ。ドレードレー 奴隷…
ふと、継承されたクラスとスマポのカスタムデリータについて気になったので調べてみた
C++11時代はtuple操作がいろいろイケメンだと女の子にモテモテだと聞いて tupleって抽象化された構造体だよねー
デジゲ博*1にサークル参加が決まりました A-47『TXT.TXT』です サークル側としてのイベントは初参加です。所謂サークル処女です 自爆系STG出したいねー 頑張るよー 進歩だめです。ダーメダメダメダメ人間 *1:http://digigame-expo.org/
boost::spirit怖すぎとか言いながらずっと作ってた。spiritV3来るって噂もあるけど知りません ソース
ふとstd::bindでコンストラクタをbind出来ないかと思いまして using namespace std::placeholders; struct X{ X(int x, std::string s){ } }; std::bind(X, 3, _1);//出来ない std::bind(X::X, 3, _1);//出来ない std::bind(static_cast<X(int x, std::string s)>(X), 3, _1);//できね</x(int>…
先日ふと 「std::tieがあるのでこれを使って9割自動比較演算子のオーバーロードを作ろう」とか考えまして、途中で「boost::operatorsでいいじゃん」と気が付きまして