Skip to content

Instantly share code, notes, and snippets.

@hisui
hisui / fswatch.rb
Created May 10, 2012 13:23
更新ファイル監視に…
require "Win32API"
class FilesystemWatcher
FILE_NOTIFY_CHANGE_FILE_NAME = 0x00000001
FILE_NOTIFY_CHANGE_DIR_NAME = 0x00000002
FILE_NOTIFY_CHANGE_ATTRIBUTES = 0x00000004
FILE_NOTIFY_CHANGE_SIZE = 0x00000008
FILE_NOTIFY_CHANGE_LAST_WRITE = 0x00000010
@hisui
hisui / hoge.m
Created May 31, 2012 12:04
ないわ
#define DEF_CLASS(NAME, SUPERCLASS) \
NAME : SUPERCLASS \
@end \
@implementation NAME
@interface DEF_CLASS(MyInternalClass, NSObject)
{
int m_hoge;
}
- (void)run
@hisui
hisui / trie.rb
Last active October 5, 2015 21:47
IDリストから、与えられた文字列がIDリスト中あるかチェックする関数のコードを生成
# coding: utf-8
# ASCIIのIDのリストから、与えられた文字列がリストにあるかどうかをチェックする関数のコードを生成します。
#
# 例:
# ---- hoge.txt ----
# HOGE 1
# HIGE 2
# HOGA 3
#
# -------------------
@hisui
hisui / QzCacheMap.h
Created June 9, 2012 06:58
Objective-C(+ARC)で弱参照キャッシュ
#import <Foundation/Foundation.h>
// QzCacheMapにキャッシュさせる為には、これを継承させる
@interface QzCacheEntry : NSObject
@end
@interface QzCacheMap : NSObject
- (id)initWithCapacity:(size_t)capacity;
@hisui
hisui / ternary-op.php
Created August 8, 2012 04:27
マジか
function id($msg, $val)
{
echo "call:$msg", PHP_EOL;
return $val;
}
$ret =
id("A", true) ? id("A'", "a") :
id("B", false) ? id("B'", "b") : id("C", "c") ;
echo $ret, PHP_EOL;
@hisui
hisui / objc.m
Created November 7, 2012 18:35
Xcode4.5+iOS6 Simulator にて..
NSRegularExpression *const rx =
// 内側の「.*?」を「.*」にするとフリーズ
[[NSRegularExpression alloc] initWithPattern:@"((.*?)*?)X"
options:0
error:nil];
[rx firstMatchInString:@"1a"
options:0
range:NSMakeRange(1, 1)]; // ここで落ちる(´;ω;`)
@hisui
hisui / matrix.cpp
Created December 4, 2012 15:46
C++TMPで逆行列を計算(する人を作る)
// リスト構造
template<int N, typename Cdr> struct cons {};
struct nil {};
// リストから特定の要素を除去
template<int N, typename List> struct exclude { typedef nil val; };
template<int N, typename Cdr> struct exclude<N,cons<N,Cdr>>
{
typedef typename exclude<N,Cdr>::val val;
};
@hisui
hisui / wrap.cpp
Created December 9, 2012 08:34
( ..)φメモメモ
// こんな感じのがあった時の話..
extern void call_later(void(*fun)(void*), void *arg);
#include <stdio.h>
#include <tuple>
template<typename Fun> void run(void *arg)
{
(*(Fun*) arg)();
}
@hisui
hisui / hoge.cpp
Created December 10, 2012 20:40
なんでエラー?
// Apple clang version 4.1 (tags/Apple/clang-421.11.66) (based on LLVM 3.1svn)
#include <iostream>
#include <memory>
struct hoge_0
{
virtual void call() = 0;
};
template<typename Func>
@hisui
hisui / overload_by_functor.cpp
Created December 21, 2012 11:50
関数オブジェクトのシグニチャーでオーバーロード
#include <type_traits>
#include <functional>
#include <utility>
#include <iostream>
namespace
{
struct wildcard { wildcard(...); };
template<typename ...Args> inline auto invoke(wildcard, Args &&...args) -> wildcard;