Suche senden
Hochladen
C++11概要 ライブラリ編
•
5 gefällt mir
•
2,981 views
egtra
Folgen
Technologie
Business
Melden
Teilen
Melden
Teilen
1 von 46
Jetzt herunterladen
Downloaden Sie, um offline zu lesen
Empfohlen
C++でのゲームプログラミングをしたときのお話 札幌C++勉強会 #4 〜スタートゲームプログラミング〜
C++でのゲームプログラミングをしたときのお話 札幌C++勉強会 #4 〜スタートゲームプログラミング〜
勝成 鈴江
ゲーム開発者のための C++11/C++14
ゲーム開発者のための C++11/C++14
Ryo Suzuki
Map
Map
kikairoya
C++ Template Meta Programming の紹介@社内勉強会
C++ Template Meta Programming の紹介@社内勉強会
Akihiko Matuura
templateとautoの型推論
templateとautoの型推論
MITSUNARI Shigeo
Pfi Seminar 2010 1 7
Pfi Seminar 2010 1 7
Preferred Networks
C++コミュニティーの中心でC++をDISる
C++コミュニティーの中心でC++をDISる
Hideyuki Tanaka
Emcjp item21
Emcjp item21
MITSUNARI Shigeo
Empfohlen
C++でのゲームプログラミングをしたときのお話 札幌C++勉強会 #4 〜スタートゲームプログラミング〜
C++でのゲームプログラミングをしたときのお話 札幌C++勉強会 #4 〜スタートゲームプログラミング〜
勝成 鈴江
ゲーム開発者のための C++11/C++14
ゲーム開発者のための C++11/C++14
Ryo Suzuki
Map
Map
kikairoya
C++ Template Meta Programming の紹介@社内勉強会
C++ Template Meta Programming の紹介@社内勉強会
Akihiko Matuura
templateとautoの型推論
templateとautoの型推論
MITSUNARI Shigeo
Pfi Seminar 2010 1 7
Pfi Seminar 2010 1 7
Preferred Networks
C++コミュニティーの中心でC++をDISる
C++コミュニティーの中心でC++をDISる
Hideyuki Tanaka
Emcjp item21
Emcjp item21
MITSUNARI Shigeo
C++でHello worldを書いてみた
C++でHello worldを書いてみた
firewood
組み込みでこそC++を使う10の理由
組み込みでこそC++を使う10の理由
kikairoya
C++ ポインタ ブートキャンプ
C++ ポインタ ブートキャンプ
Kohsuke Yuasa
BoostAsioで可読性を求めるのは間違っているだろうか
BoostAsioで可読性を求めるのは間違っているだろうか
Yuki Miyatake
最新C++事情 C++14-C++20 (2018年10月)
最新C++事情 C++14-C++20 (2018年10月)
Akihiko Matuura
クロージャデザインパターン
クロージャデザインパターン
Moriharu Ohzu
競技プログラミングのためのC++入門
競技プログラミングのためのC++入門
natrium11321
20141128 iOSチーム勉強会 My Sweet Swift
20141128 iOSチーム勉強会 My Sweet Swift
necocen
Ekmett勉強会発表資料
Ekmett勉強会発表資料
時響 逢坂
Ekmett勉強会発表資料
Ekmett勉強会発表資料
時響 逢坂
Emcpp item31
Emcpp item31
mitsutaka_takeda
Visual C++で使えるC++11
Visual C++で使えるC++11
nekko1119
Van laarhoven lens
Van laarhoven lens
Naoki Aoyama
競技プログラミングにおけるコードの書き方とその利便性
競技プログラミングにおけるコードの書き方とその利便性
Hibiki Yamashiro
不遇の標準ライブラリ - valarray
不遇の標準ライブラリ - valarray
Ryosuke839
お前は PHP の歴史的な理由の数を覚えているのか
お前は PHP の歴史的な理由の数を覚えているのか
Kousuke Ebihara
C++入門?
C++入門?
tsudaa
すごいConstたのしく使おう!
すごいConstたのしく使おう!
Akihiro Nishimura
C++14 Overview
C++14 Overview
Akira Takahashi
Ocaml lecture slides 01 at axsh
Ocaml lecture slides 01 at axsh
Tomofumi Hayashi
C++の黒魔術
C++の黒魔術
Daichi OBINATA
エクストリームC++11/14プログラミング
エクストリームC++11/14プログラミング
egtra
Weitere ähnliche Inhalte
Was ist angesagt?
C++でHello worldを書いてみた
C++でHello worldを書いてみた
firewood
組み込みでこそC++を使う10の理由
組み込みでこそC++を使う10の理由
kikairoya
C++ ポインタ ブートキャンプ
C++ ポインタ ブートキャンプ
Kohsuke Yuasa
BoostAsioで可読性を求めるのは間違っているだろうか
BoostAsioで可読性を求めるのは間違っているだろうか
Yuki Miyatake
最新C++事情 C++14-C++20 (2018年10月)
最新C++事情 C++14-C++20 (2018年10月)
Akihiko Matuura
クロージャデザインパターン
クロージャデザインパターン
Moriharu Ohzu
競技プログラミングのためのC++入門
競技プログラミングのためのC++入門
natrium11321
20141128 iOSチーム勉強会 My Sweet Swift
20141128 iOSチーム勉強会 My Sweet Swift
necocen
Ekmett勉強会発表資料
Ekmett勉強会発表資料
時響 逢坂
Ekmett勉強会発表資料
Ekmett勉強会発表資料
時響 逢坂
Emcpp item31
Emcpp item31
mitsutaka_takeda
Visual C++で使えるC++11
Visual C++で使えるC++11
nekko1119
Van laarhoven lens
Van laarhoven lens
Naoki Aoyama
競技プログラミングにおけるコードの書き方とその利便性
競技プログラミングにおけるコードの書き方とその利便性
Hibiki Yamashiro
不遇の標準ライブラリ - valarray
不遇の標準ライブラリ - valarray
Ryosuke839
お前は PHP の歴史的な理由の数を覚えているのか
お前は PHP の歴史的な理由の数を覚えているのか
Kousuke Ebihara
C++入門?
C++入門?
tsudaa
すごいConstたのしく使おう!
すごいConstたのしく使おう!
Akihiro Nishimura
C++14 Overview
C++14 Overview
Akira Takahashi
Ocaml lecture slides 01 at axsh
Ocaml lecture slides 01 at axsh
Tomofumi Hayashi
Was ist angesagt?
(20)
C++でHello worldを書いてみた
C++でHello worldを書いてみた
組み込みでこそC++を使う10の理由
組み込みでこそC++を使う10の理由
C++ ポインタ ブートキャンプ
C++ ポインタ ブートキャンプ
BoostAsioで可読性を求めるのは間違っているだろうか
BoostAsioで可読性を求めるのは間違っているだろうか
最新C++事情 C++14-C++20 (2018年10月)
最新C++事情 C++14-C++20 (2018年10月)
クロージャデザインパターン
クロージャデザインパターン
競技プログラミングのためのC++入門
競技プログラミングのためのC++入門
20141128 iOSチーム勉強会 My Sweet Swift
20141128 iOSチーム勉強会 My Sweet Swift
Ekmett勉強会発表資料
Ekmett勉強会発表資料
Ekmett勉強会発表資料
Ekmett勉強会発表資料
Emcpp item31
Emcpp item31
Visual C++で使えるC++11
Visual C++で使えるC++11
Van laarhoven lens
Van laarhoven lens
競技プログラミングにおけるコードの書き方とその利便性
競技プログラミングにおけるコードの書き方とその利便性
不遇の標準ライブラリ - valarray
不遇の標準ライブラリ - valarray
お前は PHP の歴史的な理由の数を覚えているのか
お前は PHP の歴史的な理由の数を覚えているのか
C++入門?
C++入門?
すごいConstたのしく使おう!
すごいConstたのしく使おう!
C++14 Overview
C++14 Overview
Ocaml lecture slides 01 at axsh
Ocaml lecture slides 01 at axsh
Andere mochten auch
C++の黒魔術
C++の黒魔術
Daichi OBINATA
エクストリームC++11/14プログラミング
エクストリームC++11/14プログラミング
egtra
More C++11
More C++11
京大 マイコンクラブ
中3女子が狂える本当に気持ちのいい constexpr
中3女子が狂える本当に気持ちのいい constexpr
Genya Murakami
規格書で読むC++11のスレッド
規格書で読むC++11のスレッド
Kohsuke Yuasa
Effective Modern C++ 読書会 Item 35
Effective Modern C++ 読書会 Item 35
Keisuke Fukuda
C++ マルチスレッド 入門
C++ マルチスレッド 入門
京大 マイコンクラブ
constexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだ
constexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだ
Genya Murakami
Andere mochten auch
(8)
C++の黒魔術
C++の黒魔術
エクストリームC++11/14プログラミング
エクストリームC++11/14プログラミング
More C++11
More C++11
中3女子が狂える本当に気持ちのいい constexpr
中3女子が狂える本当に気持ちのいい constexpr
規格書で読むC++11のスレッド
規格書で読むC++11のスレッド
Effective Modern C++ 読書会 Item 35
Effective Modern C++ 読書会 Item 35
C++ マルチスレッド 入門
C++ マルチスレッド 入門
constexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだ
constexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだ
Ähnlich wie C++11概要 ライブラリ編
C++0x in programming competition
C++0x in programming competition
yak1ex
Prosym2012
Prosym2012
MITSUNARI Shigeo
Cocoa勉強会201208
Cocoa勉強会201208
Satoshi Oomori
C++によるソート入門
C++によるソート入門
AimingStudy
Boost jp9 program_options
Boost jp9 program_options
nyaocat
cp-15. 疑似乱数とシミュレーション
cp-15. 疑似乱数とシミュレーション
kunihikokaneko1
C++0x 言語の未来を語る
C++0x 言語の未来を語る
Akira Takahashi
C++0x in programming competition
C++0x in programming competition
yak1ex
llvm入門
llvm入門
MITSUNARI Shigeo
Ssaw08 0916
Ssaw08 0916
Atsushi Tadokoro
C++11のつかいかた
C++11のつかいかた
amusementcreators
Slide
Slide
Takefumi MIYOSHI
boost tour 1.48.0 all
boost tour 1.48.0 all
Akira Takahashi
わんくま同盟大阪勉強会#61
わんくま同盟大阪勉強会#61
TATSUYA HAYAMIZU
Boost.SIMD
Boost.SIMD
Akira Takahashi
Javaセキュアコーディングセミナー東京第2回講義
Javaセキュアコーディングセミナー東京第2回講義
JPCERT Coordination Center
ノンプログラマーでも明日から使えるJavaScript簡単プログラム 先生:柳井 政和
ノンプログラマーでも明日から使えるJavaScript簡単プログラム 先生:柳井 政和
schoowebcampus
Implicit Explicit Scala
Implicit Explicit Scala
Kota Mizushima
X hago2 shortcoding 20110827
X hago2 shortcoding 20110827
uskey512
LLVM最適化のこつ
LLVM最適化のこつ
MITSUNARI Shigeo
Ähnlich wie C++11概要 ライブラリ編
(20)
C++0x in programming competition
C++0x in programming competition
Prosym2012
Prosym2012
Cocoa勉強会201208
Cocoa勉強会201208
C++によるソート入門
C++によるソート入門
Boost jp9 program_options
Boost jp9 program_options
cp-15. 疑似乱数とシミュレーション
cp-15. 疑似乱数とシミュレーション
C++0x 言語の未来を語る
C++0x 言語の未来を語る
C++0x in programming competition
C++0x in programming competition
llvm入門
llvm入門
Ssaw08 0916
Ssaw08 0916
C++11のつかいかた
C++11のつかいかた
Slide
Slide
boost tour 1.48.0 all
boost tour 1.48.0 all
わんくま同盟大阪勉強会#61
わんくま同盟大阪勉強会#61
Boost.SIMD
Boost.SIMD
Javaセキュアコーディングセミナー東京第2回講義
Javaセキュアコーディングセミナー東京第2回講義
ノンプログラマーでも明日から使えるJavaScript簡単プログラム 先生:柳井 政和
ノンプログラマーでも明日から使えるJavaScript簡単プログラム 先生:柳井 政和
Implicit Explicit Scala
Implicit Explicit Scala
X hago2 shortcoding 20110827
X hago2 shortcoding 20110827
LLVM最適化のこつ
LLVM最適化のこつ
Mehr von egtra
Visual C++コード分析を支えるSAL
Visual C++コード分析を支えるSAL
egtra
Visual C++ 2015の紹介(C++11/14的に)
Visual C++ 2015の紹介(C++11/14的に)
egtra
Casablanca
Casablanca
egtra
Firefox拡張機能を始める
Firefox拡張機能を始める
egtra
ATLに見る魔術
ATLに見る魔術
egtra
再変換 (K2Editor)
再変換 (K2Editor)
egtra
char32_tとXpressiveと
char32_tとXpressiveと
egtra
Boost.Range入門
Boost.Range入門
egtra
Boost.Graph入門
Boost.Graph入門
egtra
Mehr von egtra
(9)
Visual C++コード分析を支えるSAL
Visual C++コード分析を支えるSAL
Visual C++ 2015の紹介(C++11/14的に)
Visual C++ 2015の紹介(C++11/14的に)
Casablanca
Casablanca
Firefox拡張機能を始める
Firefox拡張機能を始める
ATLに見る魔術
ATLに見る魔術
再変換 (K2Editor)
再変換 (K2Editor)
char32_tとXpressiveと
char32_tとXpressiveと
Boost.Range入門
Boost.Range入門
Boost.Graph入門
Boost.Graph入門
C++11概要 ライブラリ編
1.
C++11概要 ライブラリ編 H.24/05/26 Egtra Boost.勉強会 #9
つくば
2.
注意 • 網羅はしていません
– 規格を(N3337.pdfも可)を読む – cpprefjpを書く・読む
3.
Misc
4.
スマートポインタ • unique_ptr
– 以下の上位互換 – std::auto_ptr – boost::scoped_ptr, boost::scoped_array • shared_ptr – boost::shared_ptrとほぼ同じ – 注意:shared_array版はなし
5.
スマートポインタ • unique_ptr<int> up(new
int(1)); • unique_ptr<int[]> ua( new int[]{1, 2, 3}); • auto sp = std::make_shared<int>(3);
6.
関数オブジェクト • std::function • std::ref,
std::bind, std::mem_fn – ラムダ式があるのでbind不要?
7.
整数型 (C99) • <cstdint> •
int8_t, uint8_t, …… (16, 32, 64) • intptr_t, uintptr_t • その他諸々
8.
コンテナ
9.
新コンテナ • unordered_*
– unordered_map<>, …… – ハッシュマップ • array<> – 固定長配列 (boost::array風) • forward_list<> – 片方向リンクリスト
10.
コンテナの初期化 • 配列の初期化 • int
ra[] = {1, 2, 3};
11.
コンテナの初期化 • 配列の初期化、コンテナでも • int
ra[] = {1, 2, 3}; • std::array<int, 3> a = {1, 2, 3}; • std::vector<int> v = {1, 2, 3};
12.
コンテナへの代入 • a =
{1, 2, 3}; • v = {1, 2, 3};
13.
With 構造体 struct Point
{ double x; double y; };
14.
With 構造体 std::vector<Point> vp
= { {10, 0}, {0, 20}, };
15.
With 構造体 vp.push_back({0, -20}); vp.insert(v.begin(),
{0, 0});
16.
With クラス std::vector<std::fstream> vf
= { {"a.cpp"}, {"a.out", ios_base::binary}, };
17.
With クラス std::vector<std::fstream> vf
= { std::fstream("a.cpp"), std::fstream( "a.out", std::ios_base::binary), };
18.
With コピー不可の型 class SanJigen
: boost::noncopyable { explicit SanJigen( int x, int y, int z); };
19.
With コピー不可の型 // 図形 std::vector<SanJigen>
figure; figure.emplace_back(3, 1, 4); → figure[0] == SanJigen(3, 1, 4)
20.
map::at, unordered_map::at std::map<std::string, std::string>
const yome = { {"Nyaruko", "Mahiro"}, {"Kuko", "Nyaruko"}, {"Hasta", "Mahiro"}, };
21.
map::at, unordered_map::at auto x =
yome.at("Hasta"); → x == "Mahiro"
22.
map::at, unordered_map::at yome.at("Mahiro"); →……?
23.
map::at, unordered_map::at yome.at("Mahiro"); _人人人人_ >
突然の死 <  ̄^Y^Y^Y^Y ̄ (註:std::out_of_range)
24.
map::at, unordered_map::at auto const yome2
= yome; yome2.insert( {"Mahiro", "Shantak-kun"}); auto y = yome2.at("Mahiro");
25.
unordered_mapのキー対応 namespace My {
struct Point { int x, y; }; bool operator==(Point, Point); }
26.
unordered_mapのキー対応 namespace std {
struct hash<My::Point> { std::size_t operator()( Point const& pt) const { return ……; } }; // 特殊化 }
27.
文字列
28.
basic_string: 要素の連続 auto len
= GetWindowTextLength(hwnd); std::basic_string<TCHAR> t(len + 1); GetWindowText(hwnd, &s[0], len + 1); s.pop_back(); // !
29.
文字列・数値変換 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);
30.
文字列・数値変換 // atoiっぽく auto x
= stoi("103"); // strtolっぽく std::size_t pos; auto y = stoi("BEEF kue", &pos, 16);
31.
文字列・数値変換 • stoi (int) •
stol (long) • stoll (long long) • stoull (unsigned long long) • stof (float) • stod (double) • stold (long double)
32.
文字列・数値変換 文字列へ変換 auto s =
std::to_string(201); auto ws = std::to_wstring(233.1000);
33.
ワイド・ナロー変換 std::wstring_convert<
std::codecvt<wchar_t, char, std::mbstate_t>> cvt(new std::codecvt_byname< wchar_t, char, std::mbstate_t>(" "));
34.
ワイド・ナロー変換 std::wstring araragi =
cvt.from_bytes(' A '); std::wstring tsukihi = cvt.from_bytes("月火");
35.
ワイド・ナロー変換 std::string koyomi
= cvt.to_bytes(L'暦'); std::string aryaryagi = cvt.to_bytes(L"アララギ");
36.
正規表現 std::regex meruado_kamo(".+@.+"); if (std::regex_match(
"hoge@example.jp", meruado_kamo)) { std::cout << "メルアドかも¥n"; }
37.
メールアドレスの正規表現 (?:(?:(?:(?:(?:(?:[¥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]
38.
メールアドレスの正規表現 (?:(?:(?:(?:(?:(?:[¥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]
39.
正規表現 std::regex last_part(
"^(?:.*/)+([^/]*)"); std::string src = "/usr/bin/cc"; std::string replace = "$1"; std::string file = std::regex_replace( src, last_part, replace);
40.
日時入出力 auto time =
std::time(nullptr); auto tm = std::localtime(&time); std::cout.imbue(std::locale("")); std::cout << std::put_time(tm, "%c") << std::endl;
41.
日時入出力(それ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;
42.
並行処理関係
43.
Atomic演算 (Windows) long x; InterlockedIncrement(&x); InterlockedDecrement(&x); auto
old = InterlockedCompareExchange( &x, newValue, comparand);
44.
Atomic演算 std::atomic<int> y; y++; y--; int old
= newValue; bool b = x.compare_exchange_strong( &old, comparand);
45.
非同期実行(スレッド) int hoge(
std::string const& arg1, int arg2); std::future<int> f = std::async( std::launch::async, hoge, "rofi", 3); …… int result = f.get(); // 待機する
46.
非同期実行(現Boost風) void g(……); std::thread th(g,
……); th.join(); // 待機する
Jetzt herunterladen