2008-09-09から1日間の記事一覧

調子に乗って

もうちょっと楽にならないか考えてみる template < class T > struct CompareMixin { public: bool operator<( const T& x ) const { return static_cast<const T*>(this)->totuple() < static_cast<const T*>(&x)->totuple(); } }; struct Foo : public CompareMixin<Foo> { int m0; </foo></const></const>…

operator

lexicographical_compareをtupleに適用するような何かってないですか?operator struct Foo { Bar* m0; Baz* m1; Zot* m2; bool operator<( const Foo& x ) const { return lc( make_tuple( m0, m1, m2 ), make_tuple( x.m0, x.m1, x.m2 ) ) < 0; } };こんな…

多値続き

ググったらBugzillaでなんかやってたX86のABIでレジスタが余ってなかったらだめとかなんとか 他にもいろいろ問題あるみたいで 要するに多値はまともに機能してなさそう 実装変えるか

多値

超必死こいて多値の実装をしていたわけですが、 よくみたらLLVMの多値( Multiple Return Value => MRV )って 2.3で新しく入った機能なのね!!! でもって、 require leaf; fun foo( n: int ): int, char { n, n@char; } fun main(): int { var a, b = foo(3…