2013-01-01から1年間の記事一覧

using と using namespace

C++

Twitterでこういうコードを見かけた。 #include <utility> namespace N { using namespace std; class C {}; void swap(C&, C&) {} void f() { int n1 = 1; int n2 = 2; swap(n1, n2); // compile Error } } int main() { N::f(); return 0; } これはコンパイルエラー</utility>…

make_append_tuple を書いた

template の練習がてら書いてみようと思ったらウンコードが完成した。 tupleをくっつけるだけにしようと思っていたのだが、面白く無いのでめちゃくちゃにしてやった。 後悔はしていない。 まずはそれを見て貰いたいと思う。 #include <iostream> #include <type_traits> #include <tuple> n</tuple></type_traits></iostream>…

GCC Bug 58046 - template operator= in SFINAE class

コンパイルエラーになって欲しかったのにICEになりやがったのでバグレポ。 SFINAE 使ってたらなぜかバグりました。でも少し変えたら動くんですよねー。 詳細はリンク先を参照ください。 バグレポの書き方とか教えてもらえばよかったかなぁ…http://gcc.gnu.or…

Boost.Log 追記モード・ユーザー定義の severity

Boost.Logはファイルに書き出せるわけですが、追記モードも可能です。 ついでに、自分で定義した severity を書きだす方法もどーぞ。 #include <boost/log/utility/setup/file.hpp> #include <boost/log/utility/setup/common_attributes.hpp> #include <boost/log/trivial.hpp> #include <boost/log/attributes.hpp> #include <boost/log/expressions.hpp> #include </boost/log/expressions.hpp></boost/log/attributes.hpp></boost/log/trivial.hpp></boost/log/utility/setup/common_attributes.hpp></boost/log/utility/setup/file.hpp>

C# で素数列挙した -C# 勉強中

C#

C#の勉強中なので、まずは基本中の基本、素数の列挙をやりました。 もっとかっこよく書けるぞ!って人はコメントください。 using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { class…

Universal Reference を知るべき複数の理由

C++

復習第2弾。 universal reference って名前は知らなくていいので、C++のこれらの挙動だけは知っててほしいです。 前の記事と合わせてどうぞ。Universal Reference は以下 URefs と略させて頂きます。 URefs とオーバーロード class some_class { public: tem…

Universal Reference is 何

C++

universal reference という文字が見えたけど聞いたことなかったのでまとめました。 知識としては皆さんご存知だと思いますので復習程度に見ていただければ幸いです。 知らなかった人はこの記事で入門しましょう! Scott Meyers氏による universal reference…

Boost.勉強会 #12 大阪に行って来ました

はじめに 寝屋川市の大阪電気通信大学でBoost.勉強会 #12 が開催されました。 僕は発表者として行きましたが、今回もC++erがたくさん集っていたようです。 ちなみに初参加だったので、少し緊張しました。発表の順番とかタイトル一覧はこちら Togetterのまと…

C++ なんとかvalues

C++

C++には lvalue やら rvalue やらたくさんありますが、混乱している人もいるかもしれないのでめちゃくちゃ簡単にまとめておきます。 多分間違ってるところがあると思うので、その時は教えて下さい。よろしくお願いします。 lvalue 簡単にいえば左辺にして代…

C++ Template Metaprogramming の Exercise 4-2

C++

Variadic Templates Verで書いた。 struct error {}; template< bool B, typename ... Args > struct logical_and_; template< typename head, typename ... tail > struct logical_and_<false, head, tail...> { typedef mpl::false_ type; }; template< typename head, typename </false,>…

mpl::equalに渡すところをstd::is_sameにしてしまった

ちょっとハマったのでメモ。 ある日、以下の様なコードを書いてました。 typedef mpl::vector_c<int, 1, 2, 3> foo; typedef mpl::transform<foo, mpl::plus<_1, mpl::int_<1>>>::type bar; typedef mpl::vector_c<int, 2, 3, 4> expected; int main() { BOOST_STATIC_ASSERT(( std::is_same<bar, expected>::value )); } てっきり mpl::t</bar,></int,></foo,></int,>…

xrandr で 1920x1080 が出てくれない時の対処法

http://samuelmartin.wordpress.com/2012/05/29/enabling-resolutions-in-ubuntu-12-04-lubuntu-12-04/ ここに書いてあるとおり、まずターミナルで gtf 1920 1080 60と入力すると、 # 1920×1080 @ 60.00 Hz (GTF) hsync: 67.08 kHz; pclk: 172.80 MHz Modeli…

Boost.Contract の出力先を変更する

あけましておめでとうございます。今年もよろしくお願いします。さて、新年一発目の記事はタイトルにあるとおりです。 そのコードが以下になります。 //main.cc #include <contract.hpp> #include <boost/exception/all.hpp> #include <iostream> #include <fstream> class my_exception : public boost::exception, pub</fstream></iostream></boost/exception/all.hpp></contract.hpp>…