Development

const 概要

これは,C++プログラマであるかを見分ける10の質問 - Life like a clown の「const の機能について概要を説明せよ」と言う質問に対する回答的な記事です.こんな時ですが,できるだけ平常更新を続けます.C++ の const には大きく分けて 2つの役割があります…

overload と override と hiding

これは, C++プログラマであるかを見分ける10の質問 - Life like a clown の 「overload と override と hiding の違いについて説明せよ」と言う質問に対する回答的な記事です.これらの差については,本の虫: C++におけるoverloadとoverrideとhiding 辺りで…

C++ のキャスト

これは,C++プログラマであるかを見分ける10の質問 - Life like a clown の 「*_cast およびCスタイルのキャストそれぞれについて概要を説明せよ」と言う質問に対する回答的な記事です.この辺りからしばらくただの説明的なものになるのでざっと書いていきま…

iterator の役割

これは,C++プログラマであるかを見分ける10の質問 - Life like a clown の 「iterator の役割について説明せよ」 と言う質問に対する回答的な記事です.iterator の詳細については Iterator library - cppreference.com 辺りを参照してもらうとして,ここで…

C++プログラマであるかを見分ける10の質問

「優れたPerlプログラマを見分ける27の質問」の日本語訳 - Islands in the byte stream, Javaプログラマであるかを見分ける10の質問 - やさしいデスマーチ を見ながら C++ だとこれくらいかなぁと取りあえず作ってみました.前半は単純な機能の説明,後半は…

ストレスなく JavaScript をロードするためのパターン

最近,真面目に JavaScript を書くようになったので何か1冊読んでおこうかなぁと本屋で立ち読みしていたところ,JavaScript パターン と言う本が面白そうだったので,買って読んでみることにしました.この本を選んだ理由は,他の章の内容も気になっているの…

レジストリ関連の Win32API の扱い

x86/x64,char/wchar_t など様々な設定でビルドする場合,レジストリ関連の Win32API は少し注意して扱う必要があるようです. REG_DWORD REG_DWORD が一番嵌りました.std::size_t 辺りを使用している場合,(Visual Studio 2008 では) x86 は uint32_t のよ…

スピンコントロールの使い方

すぐ忘れてしまうのでメモ.GUI デザイン部分は ResEdit Resource Editor を使用する事を想定しています. ダイアログ上に Edit Control と Spin Control を作成する. Dialog → Tab order wizard で Spin Control を取り付ける Edit Control のタブオーダー…

Windows のコンテキストメニューにアイコンを表示する方法

下記のように,Windows でファイルなどを右クリックした際に表示されるコンテキストメニューにアイコンが表示されている事がありますが,これを綺麗に実現しようとすると凄く大変だったと言う話.@rofi が頑張ってくれたものですが. 概要 コンテキストメニ…

プログラミング言語別の推薦入門書

と言う記事を書いてみたかったと言うお話.何となく「プログラミング言語毎の推薦入門書一覧とかあると便利かなぁ」と思ったのですが,最初の C++ でいきなり躓きました.「入門書」は何かと人気な分野でいろんな本がばんばん発売されるせいもあって,どれ読…

C++er に贈るコード片

この記事は,C++ Advent Calendar jp 2010 : ATND 参加記事です.これまで C++ のコードを書いてきた中で,「あぁなるほど」と思ったコード片を紹介していきます.せっかくなのでクリスマスっぽいタイトルで.あ,クリスマスは中止でしたっけ.各 Advent Cal…

Programmer's Advent Calendar

巷では,Advent Calendar と言うものが流行だそうです.私も C++ の方で参加表明をしたので,C++ Advent Calendar jp 2010 : ATND で 1 日記事を投稿します. 本来、アドベントカレンダーというのは、イエスの降誕祭を待ち望み、12月1日からクリスマスま…

「全てのプログラマが読むべき本」関連記事を元にしたランキング

Tommyjp.com と言う記事を(恐らく)発端として,ここ 1週間くらい「プログラマが読むべき本」関連の記事をたびたび見かけました.せっかくなのでまとめようと思ったのですが,量が多すぎて blog に載せるには微妙だったので,全てのプログラマが読むべき本 …

GUI プログラミング覚書

ここ最近,真面目に GUI を持つアプリケーションを書く機会が増えたので,現状までに気を付けないといけないなと感じたことをメモ.GUI アプリでまともに作ったものがまだ 2 つとかその程度なので,まだまだ足りない部分や勘違いも多そうですが気づいたらそ…

constexpr 登場

C++0x の機能の一つである constexpr が gcc 4.6 に実装されたようです. GCC 4.6でconstexpr動いた! - Faith and Brave - C++で遊ぼう 本の虫: gccにconstexprが実装された constexpr が導入される事で,switch 文の case の箇所に関数が使えるようになる…

Boost.勉強会 #3 関西

Boost.勉強会 #3 無事終了.今回は地元開催だったので参加するのが楽だったのですが迷いましたw 初っ端発表なのに遅刻したら洒落にならないなぁとヒヤヒヤしながら何とか10分前に到着.発表は OAuth based on Boost.Asio のような話をしてきました.タイト…

サムネイル画像の生成と表示

今,所用で「サムネイル画像を一覧表示」する機能を作っています.取り合えず表示だけさせようと思ってシングルスレッドで走らせると(やはり)体感速度(スクロールすると引っかかりが生じるなど)に問題がありました.体感速度の改善に関しては,当初「取…

Windows GUI wrapper for webpconv

JPEGより約40%コンパクト:Google、Web高速化を目指し新画像フォーマット「WebP」を発表 - ITmedia エンタープライズ と,Google が新しい画像フォーマットを発表したようで賑わっていました.A new image format for the Web | WebP | Google Developers …

.NetFramework 4 のみで 2.0 向けアプリケーションを動作させる

今年の 4月に Microsoft から .NetFramework 4 がリリースされましたが,.NetFramework 4 はこれまでの 2.0 〜 3.5 とは「別物」と認識されるようです.そのため,.NetFramework 4 しかインストールされていない環境で,.NetFramework 2.0 向けにビルドされ…

Managed code な dll を exe に結合する

カスタマイズ可能な TabControl - Life like a clown のようにカスタマイズされた GUI パーツを探す事があるのですが,こういった GUI パーツはソースコードではなく dll として提供されているものも結構ありました.GUI パーツのようなものは,exe を作成す…

カスタマイズ可能な TabControl

昨今はタブベースなアプリケーションへの需要が増しているので,何らかのデスクトップ・アプリケーションを作る際にもタブ化が課題となってきます.これが .NetFramework の場合,WPF を使用すれば問題とならないようなのですが System.Windows.Forms.TabCon…

Boost.勉強会 #2 雑感

Boost.勉強会 #2 終了.「あぁ使えそう」と言う話から「へ,へんたいだー」と言う話まで様々な話が聞けて非常に楽しかったです.各種資料などの一覧は,Boost.勉強会#2を開催したよ - Faith and Brave - C++で遊ぼう から辿れます. Boostライブラリ一周の旅…

連続ページを実現する

Adobe Reader などのアプリケーションでよく見られる,全てのページを縦に並べてスクロールで移動する所謂「連続ページ」の実現方法を考えていたのでメモ.ListView などを使用してもよかったのですが,ScrollableControl の上に PictureBox を載せると言う…

マウスホイールによるスクロール

Windows フォームアプリを作成する場合,マウスホイールによる画面のスクロール機能は自力で実装する必要があるようです.実現する際には,メインフォームの MouseEnter と MouseWheel イベントにそれぞれ以下のようなイベントハンドラを指定します. using …

#include の魔力

何気なく呟いた言葉が確変状態になっていました。それで、反応を眺めていると「何をやってるか分からない」と言うものがいくつかあったので、一応簡単な補足説明を載せておきます。#include は指定したファイルの内容をその位置に追加します。 1, 2, 3, 4, 5…

git で強制的に pull する方法

ようやく悩みが解消されたのでメモ.Visual Studio 辺りのプロジェクト・ファイル群を丸ごと git リポジトリで管理していると,(自動生成されるファイルなどの関係で)手動では何も変更を加えていない(ビルドしただけなど)にも関わらず git pull 時に衝突…

パラメータと引数

プログラミング用語における混同しやすい事で有名な話題の一つに、「パラメータ (parameter)」と「引数 (argument)」の使い分けがあります。簡単に言うと、関数などの宣言部に記述するものを「パラメータ」、関数を呼び出す際に実際に指定する式や値を「引数…

プログラムの可読性に関する検討・名前

プログラムの可読性に関する検討 - Life like a clown の続き.今回は,「名前」についてです. 一貫した命名規則を使用する 名前は最も主観に依存する部分が大きく,しばしば宗教論争の火種にもなるので,深追いは危険な領域です.そのため,名前について最…

Library for libraries

C++は何を間違えたのか: 人生を書き換える者すらいた。より.2009/12 のBoost.勉強会で一番記憶に残ってるのが,id:faith_and_brave がプレゼン中に何度か使っていた「Library for libaries」と言う言葉でした.この言葉には,Boost などが提供するライブラ…

プログラムの可読性に関する検討

目次 はじめに(※この記事) 名前 式と文 一貫性と慣用句 関数マクロ マジックナンバー コメント 長さ(行数,1行の文字数) はじめに http://d.hatena.ne.jp/honjo2/20100518/1274178222 を読んでプログラムの「可読性」について考えていたら長くなりそうだ…