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 / 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...>
namespace alol{
template<class...T>
class poly_lambda
{
struct stop{};
public:
void operator()(stop){}
};
template<class F, class ...T>
namespace alol{
template<class...T>
class poly_lambda
{
struct hoge{};
public:
void operator()(hoge){}
};
template<class F, class ...T>
@Fuyutsubaki
Fuyutsubaki / alol.hpp
Created August 6, 2015 15:23
Advanced Lambda operaring Library
#include"alol.h"
struct F
{
template<class T>
int operator()(T&&)
{
return 0;
@Fuyutsubaki
Fuyutsubaki / typesafe print
Created June 17, 2015 15:43
typesafe print
#include<sprout/array.hpp>
#include<iostream>
#include<utility>
template<char...c>
struct String{
constexpr auto operator[](std::size_t n)const{
char s[]={c...,'\0'};
return s[n];
}
};
template<int>struct Int{};
template<int N>
struct flag {
friend constexpr int adl_flag (flag<N>);
};
// NOTICE noexcept(adl_flag (flag<N> {}))を用いた実装はClangで動かないからこの実装になった
template<int N, int = adl_flag (flag<N> {})>
constexpr bool c_ (int, flag<N>) {return true;}
template<int N>
constexpr bool c_ (float, flag<N>) {return false;}
@Fuyutsubaki
Fuyutsubaki / local_type_hash.hpp
Last active August 29, 2015 14:07
local_type_hash
#include<iostream>
#include<type_traits>
template<class>
struct wrap{};
template<std::size_t N, class T, class ...R>
struct A
:A<N + 1, R...>
{
@Fuyutsubaki
Fuyutsubaki / polynomial.hpp
Last active August 29, 2015 14:07
簡易多項式。計算速度とか精度とか気にしない
#include<array>
template<class T, std::size_t N>
class Polynomial
{
std::array<T, N + 1> data;
using value_type = T;
public:
template<class T,class ...U>
Polynomial(T x, U ...y)