Skip to content

Instantly share code, notes, and snippets.

@Fuyutsubaki
Fuyutsubaki / hoo.cpp
Created June 7, 2016 18:02
なぜか動かない
#include<type_traits>
template<class T>
struct S
{
template <class F, typename std::enable_if<
std::is_void<decltype(std::declval<F>()(std::declval<T>()))>::value
>::type* = nullptr>
void then(F f)
{}
@Fuyutsubaki
Fuyutsubaki / hoo.cpp
Created June 5, 2016 16:26
get valu json like message on siv3d
namespace msglike
{
using Val = s3d::JSONValue;
namespace develop
{
class stop {};//そこまでよ!!!
class none {};
@Fuyutsubaki
Fuyutsubaki / Generic_lambda_If.hpp
Last active January 3, 2016 23:39
ジェネリックラムダ2つを受け取りどちらか1つを返す関数型言語のif式っぽいの
//sample http://txt-txt.hateblo.jp/entry/2014/01/21/180633
#include<boost\variant\variant.hpp>
#include<type_traits>
#include<utility>
template<class F1,class F2>
class BiGenLambda
{
template<class F>
@Fuyutsubaki
Fuyutsubaki / unique_ptr_Holder.hpp
Created January 17, 2014 16:03
Mini Garbage Collection on C++ 小さなガベージコレクション
#pragma once
#include<memory>
#include<unordered_map>
#include<initializer_list>
#include<type_traits>
/*
**sample**
struct A
@Fuyutsubaki
Fuyutsubaki / Type2ValueMap.hpp
Created January 12, 2014 07:46
型から値をだすmap Type to Value map on C++
#include<boost\any.hpp>
#include<unordered_map>
#include<typeindex>
#include<iostream>
#include<string>
class Type2ValueMap
{
public:
template<class T>
@Fuyutsubaki
Fuyutsubaki / DebugTimer.hpp
Created December 27, 2013 06:44
デバックタイマー。呼び出された回数と時間を教えてくれる
#pragma once
#include<chrono>
#include<string>
#include<list>
class DebugTimer
{
struct Data
{
Data(const std::string&id)
@Fuyutsubaki
Fuyutsubaki / memfunc2class
Last active December 31, 2015 20:09
使用するメンバ関数をクラスに通知する(ようにみせかける)方法
#include<iostream>
#include<vector>
#include<string>
//VSでのみ動作を確認
template<class T>
class Piyo
{
public:
void print()
{
@Fuyutsubaki
Fuyutsubaki / tuple_foreach.hpp
Created September 27, 2013 16:37
for each of tuple
#pragma once
#include<tuple>
namespace deteil{
template<class Tuple,class Visitor>
class _tuple_foreach
{
public:
void operator()(Tuple & tuple, Visitor& visitor)
@Fuyutsubaki
Fuyutsubaki / Fact.h
Created August 5, 2013 15:34
prologの事実みたいなことをC++でもしたい
#pragma once
#include<tuple>
#include<vector>
namespace proloog
{
class None{};
class Var{};
template<class... X>
@Fuyutsubaki
Fuyutsubaki / make_poly.hpp
Created August 9, 2015 05:45
ordered overload function oject
namespace alol{
template<class...T>
class ordered_poly_lambda
{
struct stop{};
public:
void operator()(stop){}
};
template<class F, class ...T>
class ordered_poly_lambda<F, T...>