C++ ときどき ごはん、わりとてぃーぶれいく☆

Wonder Rabbit Projectのなかのひとのブログ。主にC++。

C++11

GCC4.7.1: C++11 と OpenMP のちょっと惜しい関係

C++11から言語仕様のスレッディング周りが強化され、thread、atomic、mutexなどなど言語標準機能として扱える様になり、ちょっとやそっとやそれなりの用途でもintel TBBやBoost.Threadに頼らずにマルチスレッディングソフトウェアを開発し易くなりました。 …

Boost.MultiArray メモ

std::valarrayだと基本的には1次元のデータ構造に対してスライスを考えて多次元要素集合としてアクセスする事になる。Boost.MultiArrayなら基本的には多次元のデータ構造に対して必要ならば1次元のRAWなデータ構造も用いる事ができる。多くの場合は後者の方…

Android NDKを使う前に知っておいた方が良いメモ

執筆時点のAndroid NDK(r19)について。 知って措いた方良い事 JNIのCバインディングとC++バインディングはまったく別物 APIの名前は同じ挙句にC++版でも名前空間つこうて無かったりで、ありがちなC/C++対応と言いつつ実はCっていうパターンかと思いきやC++バ…

CMakeの公式チュートリアルをC++11脳で読み進めるにゃ・w・

cmakeについて漸く自分でも使ってみようと思いチュートリアルをC++11仕様に勝手に脳内変換しながら読むなどしていた。C++11erがcmakeを学習する際に初めに困る事は恐らく「g++にstd=c++11を渡す方法」だと思う。cmakeを習得済みならば困る事は無いはずだが、…

C++11 <thread> GCC 4.6.2 は -pthread 付けないとダメよ

GCC4.6.2ではC++11のが凡そサポート済みという事になっている。ところが簡単なテストコードを書いてビルドしてみると std::system_error 例外がスローされる。whatには"Operation not permitted"。実はビルドする際に -std=c++0x の他に -pthread を付けない…

ブレースによる初期化と初期化リスト

#include <iostream> struct hoge_type{ hoge_type(int){ std::cout<<"A\n"; } hoge_type(std::initializer_list<int>&&){ std::cout<<"B\n"; } }; int main(){ int v = 1; auto a = hoge_type(v); auto b = hoge_type(std::move(v)); auto c = hoge_type{v}; auto d = hoge</int></iostream>…