SlideShare ist ein Scribd-Unternehmen logo
1 von 46
Downloaden Sie, um offline zu lesen
C++11概要 ライブラリ編

H.24/05/26
Egtra
Boost.勉強会 #9 つくば
注意
• 網羅はしていません
  – 規格を(N3337.pdfも可)を読む
  – cpprefjpを書く・読む
Misc
スマートポインタ
• unique_ptr
  – 以下の上位互換
  – std::auto_ptr
  – boost::scoped_ptr,
    boost::scoped_array
• shared_ptr
   – boost::shared_ptrとほぼ同じ
   – 注意:shared_array版はなし
スマートポインタ
• unique_ptr<int> up(new int(1));
• unique_ptr<int[]> ua(
                   new int[]{1, 2, 3});
• auto sp = std::make_shared<int>(3);
関数オブジェクト
• std::function
• std::ref, std::bind, std::mem_fn
   – ラムダ式があるのでbind不要?
整数型 (C99)
• <cstdint>
• int8_t, uint8_t, …… (16, 32, 64)
• intptr_t, uintptr_t
• その他諸々
コンテナ
新コンテナ
• unordered_*
  – unordered_map<>, ……
  – ハッシュマップ
• array<>
   – 固定長配列 (boost::array風)
• forward_list<>
   – 片方向リンクリスト
コンテナの初期化
• 配列の初期化
• int ra[] = {1, 2, 3};
コンテナの初期化
• 配列の初期化、コンテナでも
• int ra[] = {1, 2, 3};
• std::array<int, 3> a = {1, 2, 3};
• std::vector<int> v = {1, 2, 3};
コンテナへの代入
• a = {1, 2, 3};
• v = {1, 2, 3};
With 構造体

struct Point {
   double x;
   double y;
};
With 構造体

std::vector<Point> vp = {
   {10, 0},
   {0, 20},
};
With 構造体

vp.push_back({0, -20});
vp.insert(v.begin(), {0, 0});
With クラス

std::vector<std::fstream> vf = {
   {"a.cpp"},
   {"a.out", ios_base::binary},
};
With クラス

std::vector<std::fstream> vf = {
   std::fstream("a.cpp"),
   std::fstream(
   "a.out", std::ios_base::binary),
};
With コピー不可の型

class SanJigen :
              boost::noncopyable {
   explicit SanJigen(
                 int x, int y, int z);
};
With コピー不可の型

// 図形
std::vector<SanJigen> figure;

figure.emplace_back(3, 1, 4);

→ figure[0] == SanJigen(3, 1, 4)
map::at,
unordered_map::at

std::map<std::string, std::string>
                    const yome = {
   {"Nyaruko", "Mahiro"},
   {"Kuko", "Nyaruko"},
   {"Hasta", "Mahiro"},
};
map::at,
unordered_map::at

auto x = yome.at("Hasta");

→ x == "Mahiro"
map::at,
unordered_map::at

yome.at("Mahiro");

→……?
map::at,
unordered_map::at

yome.at("Mahiro");

 _人人人人_
 > 突然の死 <
 ̄^Y^Y^Y^Y ̄
(註:std::out_of_range)
map::at,
unordered_map::at

auto const yome2 = yome;

yome2.insert(
     {"Mahiro", "Shantak-kun"});

auto y = yome2.at("Mahiro");
unordered_mapのキー対応

namespace My {
 struct Point {
  int x, y;
 };
 bool operator==(Point, Point);
}
unordered_mapのキー対応
namespace std {
 struct hash<My::Point> {
  std::size_t operator()(
                 Point const& pt) const {
   return ……;
  }
 }; // 特殊化
}
文字列
basic_string: 要素の連続
auto len = GetWindowTextLength(hwnd);

std::basic_string<TCHAR> t(len + 1);
GetWindowText(hwnd, &s[0], len + 1);

s.pop_back(); // !
文字列・数値変換
atoi/atol/strtol類の上位互換

int stoi(const std::string& str,
   std::size_t* idx = 0, int base = 10);
int stoi(const std::wstring& str,
   std::size_t* idx = 0, int base = 10);
文字列・数値変換
// atoiっぽく
auto x = stoi("103");

// strtolっぽく
std::size_t pos;
auto y = stoi("BEEF kue", &pos, 16);
文字列・数値変換
• stoi (int)
• stol (long)
• stoll (long long)
• stoull (unsigned long long)
• stof (float)
• stod (double)
• stold (long double)
文字列・数値変換
文字列へ変換

auto s = std::to_string(201);
auto ws = std::to_wstring(233.1000);
ワイド・ナロー変換
std::wstring_convert<
     std::codecvt<wchar_t, char,
                      std::mbstate_t>>
cvt(new std::codecvt_byname<
  wchar_t, char, std::mbstate_t>(" "));
ワイド・ナロー変換
std::wstring araragi =
                 cvt.from_bytes(' A ');
std::wstring tsukihi =
               cvt.from_bytes("月火");
ワイド・ナロー変換
std::string koyomi
                  = cvt.to_bytes(L'暦');
std::string aryaryagi =
             cvt.to_bytes(L"アララギ");
正規表現
std::regex meruado_kamo(".+@.+");
if (std::regex_match(
    "hoge@example.jp", meruado_kamo))
{
   std::cout << "メルアドかも¥n";
}
メールアドレスの正規表現
(?:(?:(?:(?:(?:(?:[¥x20¥x09]*(?:¥x0D¥x0A))?[¥x20¥x09]+|(?:[¥x20¥x0
9]+(?:(?:¥x0D¥x0A)[¥x20¥x09]+)*))?(¥((?:(?:(?:[¥x20¥x09]*(?:¥x0D¥x
0A))?[¥x20¥x09]+|(?:[¥x20¥x09]+(?:(?:¥x0D¥x0A)[¥x20¥x09]+)*))?(?:(
?:[¥x21-¥x27¥x2A-¥x5B¥x5D-¥x7E]|[¥x01-¥x08¥x0B¥x0C¥x0E-¥x1F¥x7F])|
(?:¥¥(?:[¥x21-¥x7E]|[¥x20¥x09])|(?:¥¥(?:¥x00|[¥x01-¥x08¥x0B¥x0C¥x0
E-¥x1F¥x7F]|¥x0A|¥x0D)))|(?-1)))*(?:(?:[¥x20¥x09]*(?:¥x0D¥x0A))?[¥
x20¥x09]+|(?:[¥x20¥x09]+(?:(?:¥x0D¥x0A)[¥x20¥x09]+)*))?¥)))+(?:(?:
[¥x20¥x09]*(?:¥x0D¥x0A))?[¥x20¥x09]+|(?:[¥x20¥x09]+(?:(?:¥x0D¥x0A)
[¥x20¥x09]+)*))?|(?:(?:[¥x20¥x09]*(?:¥x0D¥x0A))?[¥x20¥x09]+|(?:[¥x
20¥x09]+(?:(?:¥x0D¥x0A)[¥x20¥x09]+)*)))?(?:[A-Za-z0-9!#$%&'*+¥-/=?
^_`{|}~]+(?:¥.[A-Za-z0-9!#$%&'*+¥-/=?^_`{|}~]+)*)(?:(?:(?:(?:[¥x20
¥x09]*(?:¥x0D¥x0A))?[¥x20¥x09]+|(?:[¥x20¥x09]+(?:(?:¥x0D¥x0A)[¥x20
¥x09]+)*))?(¥((?:(?:(?:[¥x20¥x09]*(?:¥x0D¥x0A))?[¥x20¥x09]+|(?:[¥x
20¥x09]+(?:(?:¥x0D¥x0A)[¥x20¥x09]+)*))?(?:(?:[¥x21-¥x27¥x2A-¥x5B¥x
5D-¥x7E]|[¥x01-¥x08¥x0B¥x0C¥x0E-¥x1F¥x7F])|(?:¥¥(?:[¥x21-¥x7E]|[¥x
20¥x09])|(?:¥¥(?:¥x00|[¥x01-¥x08¥x0B¥x0C¥x0E-¥x1F¥x7F]|¥x0A|¥x0D))
)|(?-1)))*(?:(?:[¥x20¥x09]*(?:¥x0D¥x0A))?[¥x20¥x09]+|(?:[¥x20¥x09]
メールアドレスの正規表現
(?:(?:(?:(?:(?:(?:[¥x20¥x09]*(?:¥x0D¥x0A))?[¥x20¥x09]+|(?:[¥x20¥x0
9]+(?:(?:¥x0D¥x0A)[¥x20¥x09]+)*))?(¥((?:(?:(?:[¥x20¥x09]*(?:¥x0D¥x
0A))?[¥x20¥x09]+|(?:[¥x20¥x09]+(?:(?:¥x0D¥x0A)[¥x20¥x09]+)*))?(?:(
?:[¥x21-¥x27¥x2A-¥x5B¥x5D-¥x7E]|[¥x01-¥x08¥x0B¥x0C¥x0E-¥x1F¥x7F])|
(?:¥¥(?:[¥x21-¥x7E]|[¥x20¥x09])|(?:¥¥(?:¥x00|[¥x01-¥x08¥x0B¥x0C¥x0
E-¥x1F¥x7F]|¥x0A|¥x0D)))|(?-1)))*(?:(?:[¥x20¥x09]*(?:¥x0D¥x0A))?[¥
x20¥x09]+|(?:[¥x20¥x09]+(?:(?:¥x0D¥x0A)[¥x20¥x09]+)*))?¥)))+(?:(?:
[¥x20¥x09]*(?:¥x0D¥x0A))?[¥x20¥x09]+|(?:[¥x20¥x09]+(?:(?:¥x0D¥x0A)
[¥x20¥x09]+)*))?|(?:(?:[¥x20¥x09]*(?:¥x0D¥x0A))?[¥x20¥x09]+|(?:[¥x
20¥x09]+(?:(?:¥x0D¥x0A)[¥x20¥x09]+)*)))?(?:[A-Za-z0-9!#$%&'*+¥-/=?
^_`{|}~]+(?:¥.[A-Za-z0-9!#$%&'*+¥-/=?^_`{|}~]+)*)(?:(?:(?:(?:[¥x20
¥x09]*(?:¥x0D¥x0A))?[¥x20¥x09]+|(?:[¥x20¥x09]+(?:(?:¥x0D¥x0A)[¥x20
¥x09]+)*))?(¥((?:(?:(?:[¥x20¥x09]*(?:¥x0D¥x0A))?[¥x20¥x09]+|(?:[¥x
20¥x09]+(?:(?:¥x0D¥x0A)[¥x20¥x09]+)*))?(?:(?:[¥x21-¥x27¥x2A-¥x5B¥x
5D-¥x7E]|[¥x01-¥x08¥x0B¥x0C¥x0E-¥x1F¥x7F])|(?:¥¥(?:[¥x21-¥x7E]|[¥x
20¥x09])|(?:¥¥(?:¥x00|[¥x01-¥x08¥x0B¥x0C¥x0E-¥x1F¥x7F]|¥x0A|¥x0D))
)|(?-1)))*(?:(?:[¥x20¥x09]*(?:¥x0D¥x0A))?[¥x20¥x09]+|(?:[¥x20¥x09]
正規表現
std::regex last_part(
                    "^(?:.*/)+([^/]*)");

std::string src = "/usr/bin/cc";
std::string replace = "$1";
std::string file = std::regex_replace(
                  src, last_part, replace);
日時入出力
auto time = std::time(nullptr);
auto tm = std::localtime(&time);

std::cout.imbue(std::locale(""));
std::cout <<
 std::put_time(tm, "%c") << std::endl;
日時入出力(それBoostで)
ptime pt = second_clock::local_time();

std::locale loc(std::locale(""),
  new time_facet<ptime, char>("%c"));
std::cout.imbue(loc);
std::cout << pt << std::endl;
並行処理関係
Atomic演算 (Windows)
long x;
InterlockedIncrement(&x);
InterlockedDecrement(&x);
auto old =
     InterlockedCompareExchange(
             &x, newValue, comparand);
Atomic演算
std::atomic<int> y;
y++;
y--;

int old = newValue;
bool b = x.compare_exchange_strong(
                    &old, comparand);
非同期実行(スレッド)
int hoge(
      std::string const& arg1, int arg2);

std::future<int> f = std::async(
     std::launch::async, hoge, "rofi", 3);
……
int result = f.get(); // 待機する
非同期実行(現Boost風)
void g(……);
std::thread th(g, ……);

th.join(); // 待機する

Weitere ähnliche Inhalte

Was ist angesagt?

C++でHello worldを書いてみた
C++でHello worldを書いてみたC++でHello worldを書いてみた
C++でHello worldを書いてみたfirewood
 
組み込みでこそC++を使う10の理由
組み込みでこそC++を使う10の理由組み込みでこそC++を使う10の理由
組み込みでこそC++を使う10の理由kikairoya
 
C++ ポインタ ブートキャンプ
C++ ポインタ ブートキャンプC++ ポインタ ブートキャンプ
C++ ポインタ ブートキャンプKohsuke Yuasa
 
BoostAsioで可読性を求めるのは間違っているだろうか
BoostAsioで可読性を求めるのは間違っているだろうかBoostAsioで可読性を求めるのは間違っているだろうか
BoostAsioで可読性を求めるのは間違っているだろうかYuki Miyatake
 
最新C++事情 C++14-C++20 (2018年10月)
最新C++事情 C++14-C++20 (2018年10月)最新C++事情 C++14-C++20 (2018年10月)
最新C++事情 C++14-C++20 (2018年10月)Akihiko Matuura
 
クロージャデザインパターン
クロージャデザインパターンクロージャデザインパターン
クロージャデザインパターンMoriharu Ohzu
 
競技プログラミングのためのC++入門
競技プログラミングのためのC++入門競技プログラミングのためのC++入門
競技プログラミングのためのC++入門natrium11321
 
20141128 iOSチーム勉強会 My Sweet Swift
20141128 iOSチーム勉強会 My Sweet Swift20141128 iOSチーム勉強会 My Sweet Swift
20141128 iOSチーム勉強会 My Sweet Swiftnecocen
 
Ekmett勉強会発表資料
Ekmett勉強会発表資料Ekmett勉強会発表資料
Ekmett勉強会発表資料時響 逢坂
 
Ekmett勉強会発表資料
Ekmett勉強会発表資料Ekmett勉強会発表資料
Ekmett勉強会発表資料時響 逢坂
 
Visual C++で使えるC++11
Visual C++で使えるC++11Visual C++で使えるC++11
Visual C++で使えるC++11nekko1119
 
Van laarhoven lens
Van laarhoven lensVan laarhoven lens
Van laarhoven lensNaoki Aoyama
 
競技プログラミングにおけるコードの書き方とその利便性
競技プログラミングにおけるコードの書き方とその利便性競技プログラミングにおけるコードの書き方とその利便性
競技プログラミングにおけるコードの書き方とその利便性Hibiki Yamashiro
 
不遇の標準ライブラリ - valarray
不遇の標準ライブラリ - valarray不遇の標準ライブラリ - valarray
不遇の標準ライブラリ - valarrayRyosuke839
 
お前は PHP の歴史的な理由の数を覚えているのか
お前は PHP の歴史的な理由の数を覚えているのかお前は PHP の歴史的な理由の数を覚えているのか
お前は PHP の歴史的な理由の数を覚えているのかKousuke Ebihara
 
C++入門?
C++入門?C++入門?
C++入門?tsudaa
 
すごいConstたのしく使おう!
すごいConstたのしく使おう!すごいConstたのしく使おう!
すごいConstたのしく使おう!Akihiro Nishimura
 
Ocaml lecture slides 01 at axsh
Ocaml lecture slides 01 at axshOcaml lecture slides 01 at axsh
Ocaml lecture slides 01 at axshTomofumi Hayashi
 

Was ist angesagt? (20)

C++でHello worldを書いてみた
C++でHello worldを書いてみたC++でHello worldを書いてみた
C++でHello worldを書いてみた
 
組み込みでこそC++を使う10の理由
組み込みでこそC++を使う10の理由組み込みでこそC++を使う10の理由
組み込みでこそC++を使う10の理由
 
C++ ポインタ ブートキャンプ
C++ ポインタ ブートキャンプC++ ポインタ ブートキャンプ
C++ ポインタ ブートキャンプ
 
BoostAsioで可読性を求めるのは間違っているだろうか
BoostAsioで可読性を求めるのは間違っているだろうかBoostAsioで可読性を求めるのは間違っているだろうか
BoostAsioで可読性を求めるのは間違っているだろうか
 
最新C++事情 C++14-C++20 (2018年10月)
最新C++事情 C++14-C++20 (2018年10月)最新C++事情 C++14-C++20 (2018年10月)
最新C++事情 C++14-C++20 (2018年10月)
 
クロージャデザインパターン
クロージャデザインパターンクロージャデザインパターン
クロージャデザインパターン
 
競技プログラミングのためのC++入門
競技プログラミングのためのC++入門競技プログラミングのためのC++入門
競技プログラミングのためのC++入門
 
20141128 iOSチーム勉強会 My Sweet Swift
20141128 iOSチーム勉強会 My Sweet Swift20141128 iOSチーム勉強会 My Sweet Swift
20141128 iOSチーム勉強会 My Sweet Swift
 
Ekmett勉強会発表資料
Ekmett勉強会発表資料Ekmett勉強会発表資料
Ekmett勉強会発表資料
 
Ekmett勉強会発表資料
Ekmett勉強会発表資料Ekmett勉強会発表資料
Ekmett勉強会発表資料
 
Emcpp item31
Emcpp item31Emcpp item31
Emcpp item31
 
Visual C++で使えるC++11
Visual C++で使えるC++11Visual C++で使えるC++11
Visual C++で使えるC++11
 
Van laarhoven lens
Van laarhoven lensVan laarhoven lens
Van laarhoven lens
 
競技プログラミングにおけるコードの書き方とその利便性
競技プログラミングにおけるコードの書き方とその利便性競技プログラミングにおけるコードの書き方とその利便性
競技プログラミングにおけるコードの書き方とその利便性
 
不遇の標準ライブラリ - valarray
不遇の標準ライブラリ - valarray不遇の標準ライブラリ - valarray
不遇の標準ライブラリ - valarray
 
お前は PHP の歴史的な理由の数を覚えているのか
お前は PHP の歴史的な理由の数を覚えているのかお前は PHP の歴史的な理由の数を覚えているのか
お前は PHP の歴史的な理由の数を覚えているのか
 
C++入門?
C++入門?C++入門?
C++入門?
 
すごいConstたのしく使おう!
すごいConstたのしく使おう!すごいConstたのしく使おう!
すごいConstたのしく使おう!
 
C++14 Overview
C++14 OverviewC++14 Overview
C++14 Overview
 
Ocaml lecture slides 01 at axsh
Ocaml lecture slides 01 at axshOcaml lecture slides 01 at axsh
Ocaml lecture slides 01 at axsh
 

Andere mochten auch

エクストリームC++11/14プログラミング
エクストリームC++11/14プログラミングエクストリームC++11/14プログラミング
エクストリームC++11/14プログラミングegtra
 
中3女子が狂える本当に気持ちのいい constexpr
中3女子が狂える本当に気持ちのいい constexpr中3女子が狂える本当に気持ちのいい constexpr
中3女子が狂える本当に気持ちのいい constexprGenya Murakami
 
規格書で読むC++11のスレッド
規格書で読むC++11のスレッド規格書で読むC++11のスレッド
規格書で読むC++11のスレッドKohsuke Yuasa
 
Effective Modern C++ 読書会 Item 35
Effective Modern C++ 読書会 Item 35Effective Modern C++ 読書会 Item 35
Effective Modern C++ 読書会 Item 35Keisuke Fukuda
 
constexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだ
constexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだconstexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだ
constexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだGenya Murakami
 

Andere mochten auch (8)

C++の黒魔術
C++の黒魔術C++の黒魔術
C++の黒魔術
 
エクストリームC++11/14プログラミング
エクストリームC++11/14プログラミングエクストリームC++11/14プログラミング
エクストリームC++11/14プログラミング
 
More C++11
More C++11More C++11
More C++11
 
中3女子が狂える本当に気持ちのいい constexpr
中3女子が狂える本当に気持ちのいい constexpr中3女子が狂える本当に気持ちのいい constexpr
中3女子が狂える本当に気持ちのいい constexpr
 
規格書で読むC++11のスレッド
規格書で読むC++11のスレッド規格書で読むC++11のスレッド
規格書で読むC++11のスレッド
 
Effective Modern C++ 読書会 Item 35
Effective Modern C++ 読書会 Item 35Effective Modern C++ 読書会 Item 35
Effective Modern C++ 読書会 Item 35
 
C++ マルチスレッド 入門
C++ マルチスレッド 入門C++ マルチスレッド 入門
C++ マルチスレッド 入門
 
constexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだ
constexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだconstexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだ
constexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだ
 

Ähnlich wie C++11概要 ライブラリ編

C++0x in programming competition
C++0x in programming competitionC++0x in programming competition
C++0x in programming competitionyak1ex
 
C++によるソート入門
C++によるソート入門C++によるソート入門
C++によるソート入門AimingStudy
 
Boost jp9 program_options
Boost jp9 program_optionsBoost jp9 program_options
Boost jp9 program_optionsnyaocat
 
cp-15. 疑似乱数とシミュレーション
cp-15. 疑似乱数とシミュレーションcp-15. 疑似乱数とシミュレーション
cp-15. 疑似乱数とシミュレーションkunihikokaneko1
 
C++0x 言語の未来を語る
C++0x 言語の未来を語るC++0x 言語の未来を語る
C++0x 言語の未来を語るAkira Takahashi
 
C++0x in programming competition
C++0x in programming competitionC++0x in programming competition
C++0x in programming competitionyak1ex
 
わんくま同盟大阪勉強会#61
わんくま同盟大阪勉強会#61わんくま同盟大阪勉強会#61
わんくま同盟大阪勉強会#61TATSUYA HAYAMIZU
 
Javaセキュアコーディングセミナー東京第2回講義
Javaセキュアコーディングセミナー東京第2回講義Javaセキュアコーディングセミナー東京第2回講義
Javaセキュアコーディングセミナー東京第2回講義JPCERT Coordination Center
 
ノンプログラマーでも明日から使えるJavaScript簡単プログラム 先生:柳井 政和
ノンプログラマーでも明日から使えるJavaScript簡単プログラム 先生:柳井 政和ノンプログラマーでも明日から使えるJavaScript簡単プログラム 先生:柳井 政和
ノンプログラマーでも明日から使えるJavaScript簡単プログラム 先生:柳井 政和schoowebcampus
 
Implicit Explicit Scala
Implicit Explicit ScalaImplicit Explicit Scala
Implicit Explicit ScalaKota Mizushima
 
X hago2 shortcoding 20110827
X hago2 shortcoding 20110827X hago2 shortcoding 20110827
X hago2 shortcoding 20110827uskey512
 

Ähnlich wie C++11概要 ライブラリ編 (20)

C++0x in programming competition
C++0x in programming competitionC++0x in programming competition
C++0x in programming competition
 
Prosym2012
Prosym2012Prosym2012
Prosym2012
 
Cocoa勉強会201208
Cocoa勉強会201208Cocoa勉強会201208
Cocoa勉強会201208
 
C++によるソート入門
C++によるソート入門C++によるソート入門
C++によるソート入門
 
Boost jp9 program_options
Boost jp9 program_optionsBoost jp9 program_options
Boost jp9 program_options
 
cp-15. 疑似乱数とシミュレーション
cp-15. 疑似乱数とシミュレーションcp-15. 疑似乱数とシミュレーション
cp-15. 疑似乱数とシミュレーション
 
C++0x 言語の未来を語る
C++0x 言語の未来を語るC++0x 言語の未来を語る
C++0x 言語の未来を語る
 
C++0x in programming competition
C++0x in programming competitionC++0x in programming competition
C++0x in programming competition
 
llvm入門
llvm入門llvm入門
llvm入門
 
Ssaw08 0916
Ssaw08 0916Ssaw08 0916
Ssaw08 0916
 
C++11のつかいかた
C++11のつかいかたC++11のつかいかた
C++11のつかいかた
 
Slide
SlideSlide
Slide
 
boost tour 1.48.0 all
boost tour 1.48.0 allboost tour 1.48.0 all
boost tour 1.48.0 all
 
わんくま同盟大阪勉強会#61
わんくま同盟大阪勉強会#61わんくま同盟大阪勉強会#61
わんくま同盟大阪勉強会#61
 
Boost.SIMD
Boost.SIMDBoost.SIMD
Boost.SIMD
 
Javaセキュアコーディングセミナー東京第2回講義
Javaセキュアコーディングセミナー東京第2回講義Javaセキュアコーディングセミナー東京第2回講義
Javaセキュアコーディングセミナー東京第2回講義
 
ノンプログラマーでも明日から使えるJavaScript簡単プログラム 先生:柳井 政和
ノンプログラマーでも明日から使えるJavaScript簡単プログラム 先生:柳井 政和ノンプログラマーでも明日から使えるJavaScript簡単プログラム 先生:柳井 政和
ノンプログラマーでも明日から使えるJavaScript簡単プログラム 先生:柳井 政和
 
Implicit Explicit Scala
Implicit Explicit ScalaImplicit Explicit Scala
Implicit Explicit Scala
 
X hago2 shortcoding 20110827
X hago2 shortcoding 20110827X hago2 shortcoding 20110827
X hago2 shortcoding 20110827
 
LLVM最適化のこつ
LLVM最適化のこつLLVM最適化のこつ
LLVM最適化のこつ
 

Mehr von egtra

Visual C++コード分析を支えるSAL
Visual C++コード分析を支えるSALVisual C++コード分析を支えるSAL
Visual C++コード分析を支えるSALegtra
 
Visual C++ 2015の紹介(C++11/14的に)
Visual C++ 2015の紹介(C++11/14的に)Visual C++ 2015の紹介(C++11/14的に)
Visual C++ 2015の紹介(C++11/14的に)egtra
 
Casablanca
CasablancaCasablanca
Casablancaegtra
 
Firefox拡張機能を始める
Firefox拡張機能を始めるFirefox拡張機能を始める
Firefox拡張機能を始めるegtra
 
ATLに見る魔術
ATLに見る魔術ATLに見る魔術
ATLに見る魔術egtra
 
再変換 (K2Editor)
再変換 (K2Editor)再変換 (K2Editor)
再変換 (K2Editor)egtra
 
char32_tとXpressiveと
char32_tとXpressiveとchar32_tとXpressiveと
char32_tとXpressiveとegtra
 
Boost.Range入門
Boost.Range入門Boost.Range入門
Boost.Range入門egtra
 
Boost.Graph入門
Boost.Graph入門Boost.Graph入門
Boost.Graph入門egtra
 

Mehr von egtra (9)

Visual C++コード分析を支えるSAL
Visual C++コード分析を支えるSALVisual C++コード分析を支えるSAL
Visual C++コード分析を支えるSAL
 
Visual C++ 2015の紹介(C++11/14的に)
Visual C++ 2015の紹介(C++11/14的に)Visual C++ 2015の紹介(C++11/14的に)
Visual C++ 2015の紹介(C++11/14的に)
 
Casablanca
CasablancaCasablanca
Casablanca
 
Firefox拡張機能を始める
Firefox拡張機能を始めるFirefox拡張機能を始める
Firefox拡張機能を始める
 
ATLに見る魔術
ATLに見る魔術ATLに見る魔術
ATLに見る魔術
 
再変換 (K2Editor)
再変換 (K2Editor)再変換 (K2Editor)
再変換 (K2Editor)
 
char32_tとXpressiveと
char32_tとXpressiveとchar32_tとXpressiveと
char32_tとXpressiveと
 
Boost.Range入門
Boost.Range入門Boost.Range入門
Boost.Range入門
 
Boost.Graph入門
Boost.Graph入門Boost.Graph入門
Boost.Graph入門
 

C++11概要 ライブラリ編