yohhoyの日記(別館)

もうちょい長めの技術的メモをしていきたい日記

C++ MIX #5に参加しました

C++

2019/9/4に開催されたイベント C++ MIX #5 にて、“20分くらいでわかった気分になれるC++20コルーチン” というタイトルで20分ほど話す機会をいただきました。(Boost.勉強会を含めると5年6ヶ月(!)ぶり3回目) スライド資料 20分くらいでわかった気分になれる…

C++ミューテックス・コレクション -みゅーこれ- 実装編

C++

マルチスレッド処理にて排他制御を実現する同期プリミティブ、ミューテックス(Mutex) をC++でたくさん実装してみました。ミューテックスを道具として使うのではなく、ミューテックスそのものを作るお話です。github.com ライブラリ概要は “C++ミューテックス…

C++ミューテックス・コレクション -みゅーこれ- 紹介編

C++

マルチスレッド処理にて排他制御を実現する同期プリミティブ、ミューテックス(Mutex) をC++でたくさん実装してみました。ミューテックスを道具として使うのではなく、ミューテックスそのものを作るお話です。 YAMC C++言語ヘッダオンリー・ライブラリ YAMC (…

メモリモデル?なにそれ?おいしいの?

C++

この記事はC++ Advent Calendar 2014の21日目にエントリしています。 内容はC++メモリモデルと逐次一貫性についての概説記事となっています。 flickr / nomadic_lass もくじ 忙しい人のための「C++メモリモデル」 C++メモリモデル一問一答 ソフトウェアから…

条件変数 Step-by-Step入門

多くのプログラミング言語では、マルチスレッド処理向け同期プリミティブとして「ミューテックス(mutex)」と「条件変数(condition variable)」を提供しています*1 *2。ミューテックスは排他制御機構として有名ですし、その動作もロック(lock)/アンロック(un…

Boost.勉強会 #14に参加しました

C++

2014/3/1に開催されたイベント Boost.勉強会 #14 東京 にて、“新しい並列for構文のご提案”というタイトルで30分ほど話す機会をいただきました。(1年7ヶ月ぶり2回目) スライド資料 新しい並列for構文のご提案 from yohhoy 感想とか 今回作ったスライド資料…

gistにソースコードを放っておいたらOSSプロジェクトで活用されていた件

C

タイトル通り。プログラミング言語Cの最新規格C11で採用されたスレッドサポートのエミュレーションライブラリをgistに放置していたら、汎用OpenGL実装The Mesa 3D Graphics Libraryに取り込まれました(2014年2月現在のGit版として)。2014-05-07追記:MesaL…

スレッドセーフという幻想と現実

C++

この記事はC++ Advent Calendar 2013の15日目にエントリしています。 内容はC++標準ライブラリとスレッドセーフに関する解説になります。 flickr / rennasverden もくじ What's スレッドセーフ? スレッドセーフという幻想 基本型とデータ競合 C++標準ライブ…

volatile教、あるいはvolatile狂

かつてのMicrosoft Visual Studio .NET 2003のC/C++コンパイラ(MSVC7.1)には、「volatile変数にオレオレ定義の意味を与えて最適化を行う」というアグレッシブすぎるオプションが存在したという昔話。 どんなもの? このオプションでは、volatileキーワードに…

FizzBuzz化ストリーム

C++

インターネット上で定期的に話題にのぼる「FizzBuzz問題」を、C++言語で変な風に解いてみたというお話。今ではすっかり有名になったFizzBuzz問題ですが、元々はJeff Atwood氏による2007年の記事Why Can't Programmers.. Program?(青木靖氏による日本語訳)…

本当は怖くないムーブセマンティクス

C++

この記事はC++ Advent Calendar 2012の15日目にエントリしています。 内容はC++11「ムーブセマンティクス」の入門記事となっています。 もくじ ムーブセマンティクス再考 シンタックス vs. セマンティクス コピー vs. ムーブ ムーブのもつ2つの意味 C++11の…

Boost.勉強会 #10 に参加しました

C++

2012/7/28に開催されたイベント Boost.勉強会 #10 東京 にて、“C++ Transactional Memory言語拡張の紹介”というタイトルで20分ほど話す機会をいただきました。 スライド資料 C++ Transactional Memory言語拡張の紹介 from yohhoy 質疑応答 下記は発表後に行…

UnVisualBasic 6.0

この記事は2001年頃に書いた文章をそのまま転記し、はてなブログ用に体裁を整えたものです。Visual Basic 6.0を前提としていますが、当時からネタ記事なので悪しからず。プロジェクト一式はこちら: https://gist.github.com/yohhoy/3054269 まえがき 往々に…

OLE Drag & Dropを実装する

この記事は2001年頃に書いた文章をそのまま転記し、はてなブログ用に体裁を整えたものです。Windows2000+Win32 SDK+C言語を前提としており、2012年現在では内容が陳腐化している箇所もあります。(当時の)ソースコードはこちら: https://gist.github.com…

C++スレッド遅延開始の実装5パターン

局所的に「スレッド開始を遅延させる」ネタが盛り上がっていたので、C++とBoostライブラリを用いた色々な実装方法をまとめてみました。この記事で対象とするのは、下記コードにある2つの要件を満たす実装方法です。 (1) スレッドを管理するオブジェクトXのコ…

Boost.Contextでファイバーライブラリを実装してみた

Boost 1.50.x候補のBoost.Contextライブラリを利用して、一風変わったファイバーライブラリを作ってみたというお話です。(注意:Boost.ContextはBoost 1.49.0の正式リリースには含まれないため、svnレポジトリのtrunkからチェックアウトする必要アリ)注意…

article title here!

This is a placeholder.