2009-05-01から1ヶ月間の記事一覧
リンクするライブラリが分からなくなる。
無言で死ぬ。なーぜーだー #define _WIN32_WINNT 0x0501 #define __USE_W32_SOCKETS #include <iostream> #include <string> #include <boost/asio.hpp> using namespace std; using namespace boost::asio; int main() { ip::tcp::iostream s("www.example.com", "http"); s << "GET / HTTP/1.</boost/asio.hpp></string></iostream>…
C++ Coding Standards―101のルール、ガイドライン、ベストプラクティス (C++ in‐depth series)作者: ハーブサッター,アンドレイアレキサンドレスク,浜田光之,Herb Sutter,Andrei Alexandrescu,浜田真理出版社/メーカー: ピアソンエデュケーション発売日: 200…
#include <iostream> #include <string> using namespace std; template<class T> class AutoPtr { T *p_; public: AutoPtr(T *p) { cout << "new:" << this << endl; p_ = p; } ~AutoPtr() { cout << "delete:" << this << endl; if (p_) { cout << "!!delete object!!" << endl; delet</class></string></iostream>…
このソースが一応、cygwinでもビルドできた。 #include <iostream> #include <tr1/functional> using namespace std; int count1(int n) { return ++n; } int count2(int &n) { return ++n; } int count3(int *n) { return ++(*n); } int main() { int n1 = 0, n2 = 0, n3 = 0; tr1::fu</tr1/functional></iostream>…
多分、問題ない…と思う。 class Foo { static const int bar[]; }; const int Foo::bar[] = {1, 2, 3}; int main() { return 0; } 実態の定義にstaticをつけるとエラー。 class/structで使う修飾子だから?
使う機会はなさそうな。 #include <iostream> #include <new> using namespace std; class Foo { int i_; public: Foo() : i_(0) { cout << "Foo(0)" << endl; } Foo(int i) : i_(i) { cout << "Foo(" << i_ << ")" << endl; } Foo(const Foo& foo) { cout << "copy constru</new></iostream>…
#include <iostream> using namespace std; template <int N, int _3 = N % 3, int _5 = N % 5> struct FizzBuzz { FizzBuzz() { FizzBuzz<N - 1>(); cout << N << " "; } }; template <int N, int _5> struct FizzBuzz<N, 0, _5> { FizzBuzz() { FizzBuzz<N - 1>(); cout << "Fizz "; } }; template <int N, int _3> struc…</int></n></n,></int></n></int></iostream>
http://storehouse.sakura.ne.jp/viewvc/viewvc.cgi/gflags/?root=svn 一応、VCでもビルドできた。 #include <iostream> #include "gflags/gflags.h" #include "gflags/gflags_completions.h" DEFINE_bool(big_menu, false, "Include 'advanced' options in the menu l</iostream>…
http://q.hatena.ne.jp/1243223376 VCが多いせいかも。その他が気になる。
便利なのか微妙なところだ…。 #include <iostream> #include <vector> using namespace std; void f(vector< vector<int> >& vv_) { vector< vector<int> > vv = vv_; for (vector< vector<int> >::const_iterator i = vv.begin(); i != vv.end(); i++) { vector<int> v = *i; for (vector<int>::const_i</int></int></int></int></int></vector></iostream>…
http://msdn.microsoft.com/ja-jp/library/cc440199(VS.71).aspx ふむふむ。
typedefにテンプレートは使えないので、継承で何とかしてみる。 #include <iostream> #include <vector> using namespace std; template<typename T> class vecvec : public vector< vector<T> > {}; template <class T> void func(vecvec<T> vv) { for (vecvec<T>::const_iterator i = vv.begin() ; i != vv.</t></t></class></t></typename></vector></iostream>…
structを使ってみる。 #include <iostream> #include <vector> using namespace std; template<class T> struct vecvec { typedef vector< vector<T> > type; }; void func(vecvec<int>::type& vv) { for (vecvec<int>::type::const_iterator i = vv.begin() ; i != vv.end() ; i++) { for (vector<int>::c</int></int></int></t></class></vector></iostream>…
http://sparsehash.rubyforge.org/ リリースしました。ファイルはCodoReposに置いてます。 http://coderepos.org/share/browser/lang/ruby/ruby-sparsehash
http://storehouse.sakura.ne.jp/viewvc/viewvc.cgi/ruby-sparsehash/ext/sparsehash.cpp?root=svn&view=markup Linux上だと実用的な速度に見えなくもない。 [root@andLinux ruby-sparsehash]# ruby test.rb SparseHashMap 1000000 Sparsehash::SparseHashMa…
http://storehouse.sakura.ne.jp/tpp/ Firefoxは常時立ち上げているので、検索窓からTwitterに投稿する検索プラグインを作ってみた。追記 これ、検索と間違えて投稿してしまうなぁ…追記2 期待していなかった副作用として、選択した箇所を右クリックで投稿で…
http://storehouse.sakura.ne.jp/viewvc/viewvc.cgi/ruby-sparsehash/sparsehash.cpp?revision=2640&root=svn&view=markup テンプレート、強力だなー。 key_compareの実装の仕方があっているのかどうか…。 rnum= 100 10000 1000000 Hash 0.454 sec. / 0.168 …
Sparse Hashに興味があったので、Rubyバインディングを作ってみた。http://storehouse.sakura.ne.jp/viewvc/viewvc.cgi/ruby-sparsehash/?root=svn #include "google/sparse_hash_map" #include "google/dense_hash_map" #include "sparsehash_internal.h" n…
一応、アクセス速度も測ってみる。 require 'sparsehash' require 'timeout' include Sparsehash [100, 10000, 1000000].each do |rnum| [Hash, DenseHashMap].each do |clazz| puts("#{clazz}: #{rnum}") hash = clazz.new (0...rnum).each do |i| buf = sp…
charを使えば少しは早くなるかもと思って、少し修正。 #include "google/sparse_hash_map" #include "google/dense_hash_map" #include "sparsehash_internal.h" #include <cstring> namespace { template <class T> struct Sparsehash { typename T *m; static void rb_sparse</class></cstring>…
1.9でruby_errinfoがrb_errinfo()になったらしい。 Tue Jan 2 10:29:54 2007 Eric Hodel <drbrain@segment7.net> * ext/zlib/zlib.c: fix to compile on YARV ruby_errinfo -> rb_errinfo() Mon Jan 1 08:07:06 2007 Koichi Sasada <ko1@atdot.net> * ext/tk/tcltklib.c: fix to compile on YARV r</ko1@atdot.net></drbrain@segment7.net>…
ジェネレータを使えば、呼び出し側トリガでread_bodyを回せるなぁ…と思って、少し頭をひねってみる。 #!/usr/bin/env ruby1.9 require 'net/http' require 'uri' require 'enumerator' class WebEnum def initialize(uri) @uri = URI.parse(uri) @http = Net…
Zip/Rubyには、ProcオブジェクトをZIPのストリームとしてファイルを開くという、無駄な機能があるので、少し活用してみる。 #!/usr/bin/env ruby1.9 require 'net/http' require 'uri' require 'enumerator' require 'zipruby' class WebEnum def initialize…
http://tenderlovemaking.com/2009/05/07/fat-binary-gems-make-the-rockin-world-go-round/ しばらくはgemとパッケージ名を分けるけど、アーロンさんの案には賛成。 なんか手伝えないかな…。
http://google-sparsehash.googlecode.com/ APIは普通のMapと変わらない感じ。 #include <iostream> #include <google/sparse_hash_map> using namespace std; using namespace google; int main() { typedef sparse_hash_map<const char *, const char *> cmap; cmap m; m["foo"] = "hoge"; m["bar"] = "piyo"; m["zoo"] = </const></google/sparse_hash_map></iostream>…
http://redmine.ruby-lang.org/issues/show/1063 今回のリリースでは直ったのかな?
http://rubypan.org/ なにこれ?
これか? 時間があったら追ってみよう。
https://wiki.mozilla.org/Performance This page is meant to provide a starting point for developers who want to improve performance in Gecko and Firefox. Leak Toolsのページはもうちょいよく読もう。