「継承」で説明した通り、C#ではクラスの多重継承を認めていません。すなわち、どんな型も基底クラスは1つだけです。制限なしの多重継承は実装のコストが結構高く、メリットに対してコストが見合わないというのが一般的な見方です。ここでは、その多重継承にかかるコストについて説明していきます。 オブジェクトのメモリ レイアウト 単一継承時のメモリ レイアウト 多重継承を認めた場合のメモリ レイアウト ダイヤモンド問題 実際にほしかったものはインターフェイス オブジェクトのメモリ レイアウト 多重継承を認めた場合に問題となるのは、オブジェクトのメモリ レイアウトです。そこでまず、このメモリ レイアウトについて軽く説明しておきます。 実行時型情報で少し触れていますが、クラスや構造体などの複合型は、実行時にはメモリ上でどうレイアウトされるかが決まっています。 例えば、以下のようなクラスがあったとします。 cl
サイボウズ・ラボの光成です。 先日、社内で主にLinux上でC/C++を用いている開発者向けの講義をしました。 「こんなことができる」と知ってもらい、興味を持てば各自で勉強してもらおうと広く浅くツールを紹介しました。 gtags, ASan, Valgrind, addr2line, cppcheck, SystemTap, perfなどです。 興味があれば講義資料「C/C++プログラマのための開発ツール」をごらんください。 コンパイラオプション 受講者には新人やサイボウズ・ラボユースの学生もいたので基本的なところから紹介しました。 C/C++コンパイラを使うときはできるだけ警告オプションをつけるのが望ましいです。 警告が出るのは自分のコードの書き方に不備があることが多いからです。 gccやclangでは-Wall -Wextraは基本としてそれ以外にも有用なオプションがあります(C++用
Today there was a question on /r/C_Programming about the effect of C’s const on optimization. Variations of this question have been asked many times over the past two decades. Personally, I blame naming of const. Given this program: void foo(const int *); int bar(void) { int x = 0; int y = 0; for (int i = 0; i < 10; i++) { foo(&x); y += x; // this load not optimized out } return y; } The function
2012年01月23日19:30 カテゴリアルゴリズム百選iTech algorithm - JPEGminiの仕組みを推理する なぜコンピュータの画像は リアルに見えるのか 梅津信幸 JPEGの仕組みをおぼろげに知っている人ほど、むしろこれみて「ありえない」と思ったのではないのでしょうか。 JPEGmini - Your Photos on a Diet! でもよーく考えてみると、これでいけるという方法を発見というか再発見したので。 なぜJPEGminiがありえなさそうに見えるかは、以下に集約されます。 「なぜコンピュータの画像はリアルに見えるのか」 P.131 たとえば「ここは文字」「ここは背景の空」などと、ユーザーが自由に品質を設定できれば、さらによい画像になるはずです(できれば、それもコンピュータが自動で決めてくれるとうれしいのですが)。 同書も指摘しているように、JPEG 200
1 NetAgent Co., Ltd. http://www.netagent.co.jp Kenji Aiko 2 API • .dll .so jmp call • Linux UNIX Windows API 3 API • Detours • IAT Import Address Table • DLL • SSDT SystemServices … 4 Windows CryptoAPI 1/2 • ADVAPI32.dll API • Windows2000 • • • Windows SSL CryptoAPI 5 Windows Crypt APIs 2/2 • Crypt*** ADVAPI32.dll Crypto ………………. 6 1/4 • SSL CryptoAPI Crypto SSL Demo 1 IE SSL 7 SSL IE SSL https Wir
ICSE 2016勉強会に参加するために論文リストを確認していたら、40年間のC言語のプラクティスの変遷を追った論文がおもしろかったので紹介する。 対象の論文 論文: The Evolution of C Programming Practices: A Study of the Unix Operating System 1973–2015 論文中で使われれたデータ: https://github.com/dspinellis/unix-history-repo 要約 過去40年間のUnixのソースコードを分析し、コーディングスタイルの変化を調査した。その結果、以下のことが分かった。 新しい言語機能は価値のあるものならば採用される レジスタ割り当てをコンパイラに任せるようになる スペースをどこにいれるかなどのコードの書き方が統一されていく 分析対象 1972年以降にリリースされた計66個
Genesis“So how do you know whether someone’s read a post already?” asks Sarah, Medium’s legal counsel. We’re at dinner for my birthday, yet somehow have gotten onto the topic of work yet again. Sarah is referring to Medium’s personalised reading list — a recommendation system that I helped build — which suggested new and interesting posts to users when they visited Medium’s homepage. I sigh. I’m h
Yet another big problem of the Internet era tackled by Mathematics. Looping GIFs are a very popular form of art on the Web, with two dedicated forums on Reddit (r/perfectloops and r/cinemagraphs) and countless Tumblr pages. Finding and extracting well-looping segments from a movie requires much attention and patience, and will likely leave you like this in front of your computer: To make things ea
This notebook accompanies my talk on "Data Science with Python" at the University of Economics in Prague, December 2014. Questions & comments welcome @RadimRehurek. The goal of this talk is to demonstrate some high level, introductory concepts behind (text) machine learning. The concepts are demonstrated by concrete code examples in this notebook, which you can run yourself (after installing IPyth
Made by Magnus Wolffelt and contributors Version 1.6.5 Source code on GitHub Run tests
Pulling the Curtain on Airport Security Billy Rios Xssniper@gmail.com @xssniper How to get put on the no-fly list… Why are you doing this? • Just an average Joe • Interest in ICS, Embedded and Medical devices • I travel a lot Lessons Learned by a Young Butterbar • Show respect • Accept Responsibility • Trust, but Verify Show me the Money… (budget.house.gov) • > 50,000 people at more than 400 airp
The book is also known as RE4B and "Understanding Assembly Language". Written by Dennis Yurichev. News: Demographics of reverse engineering. How to start learning reverse engineering in 2023. Download PDF files English Russian French German Japanese Italian Polish Chinese (published by PTPress, 2017) vol1, vol2, more info. There is also partial translation: as a single HTML file; epub file. Korean
https://www.youtube.com/watch?v=qURhXHbxbDU&list=UUKrD_GYN3iDpG_uMmADPzJQ 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約2時間前 RTB (Real-time Bidding) のテクノロジーを利用した広告リターゲッティングのプラットフォームを提供するAdRollのエンジニア、Brian TroutwineのErlang Factory 2014での講演。InfoQで紹介されてました。 前提条件 1日最大420億件のトランザクション。(スライドの数値は誤りとのこと。)相当な並列処理が必要。 遅延(= 取引の完了期限)は100ms以下 Firm real-time system(遅延すると計算結果の価値はなくなるが、システム全体にとっては
わかりやすさを追求したらマンガになりました。 マンガでわかる「配信広告の運用でマネタイズを行う際にeCPMを過信してはいけない理由」の紹介です。 マーケティング部にて広告事業を担当しているdrillです。社内ではアドネットワーク・SSP等の配信広告の運用によるマネタイズを主な業務として行っています。 配信広告の収益性を判断するために、1,000impあたりのコスト(メディアサイドでは収益)である「eCPM」を指標とすることは多いと思いますが、各配信広告サービス管理画面のeCPMだけにとらわれると正確な収益の比較・検証が行えない場合があるので気をつけましょう、という内容の記事です。 (eCPM=1,000impあたりのコスト、メディアサイドでは1,000impあたりの収益) リクエスト送信数に対するimp数の乖離 メディア側が広告のJSタグを呼び出したり、アプリから広告SDKにcallを送っ
One of the big challenges you might face when learning a language like Haskell which favors immutability or purity is that suddenly all of the algorithms you once kept at your side have… well, by-and-large they’ve vanished. Many “imperative” algorithms rely upon mutable memory to work and it can be a challenge to remove that dependency. Usually in the process you’ll learn quite a bit about purely
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く