オブジェクト指向プログラミングには Mixin という手法があります。 これを使えば、自作のクラスを比較可能な(Comparable)クラスにすることが簡単に出来ます。 今回は Comparable Mixin を例に C++ での Mixin のやり方について説明します。 Mixin とインターフェース Mixin の前提として、 多重継承の問題点を把握しておく必要があります。 その辺の話や Mixin の概要に関しては以下の記事をみていただくとして、 C++ に限定して簡単に説明していきます。 多重継承禁止とインターフェース, Mix-in の許可 | プログラマーズ雑記帳 多重継承の問題を避けるための代表的な方法はインターフェースです。 class IComparable { public: virtual int Compare(const IComparable &other)
今回は Python の Windows 環境におけるインストールと、 そのパッケージ管理プログラムである pip の使い方についてです。 Python.org Python とは Python はスクリプト言語の中ではトップクラスでメジャーな言語です。 ただ、特徴として際立って良いと感じるところはありません。 速度と C の親和性では Lua の方が上ですし、 書きやすさやオブジェクト指向言語としての質は Ruby に劣ります。 科学技術計算の分野でも Julia や R 言語ほどの専門性はありません。 しかし、ダメな部分もほとんどなく、ハイレベルでバランスのとれた言語だと思います。 また、シェアが広いというのはそれだけで大きな利点といえます。 文法としてオフセットルールと呼ばれるインデントによるブロックを採用していて、 大きな特徴ですが賛否が分かれるところです。 個人的にはかなり「
Emacs のデフォルトのキーバインドって非常に押しづらい上に覚えづらいです。 でも、それって大した問題ではありません。 Emacs は自分好みにキー設定をいじれるところに醍醐味があります。 しかも、他のエディタでは設定できないようなトリッキーな設定も可能です。 そこで、今回は私が使っている Emacs のキー設定を紹介したいと思います。 誰でも気に入るようなものではありませんが、ハマると Emacs 以外のエディターでは満足できなくなるのは請け合いです。 なお、 Emacs でキーバインドを設定する場合、 Emacs Lisp の知識が必要になってきます。 キーの設定方法などもっとよく知りたい場合は、以前の記事を参考にしてください。 キーバインディング - 環境設定のための Emacs Lisp 入門 | プログラマーズ雑記帳 特徴 私のキー設定の最大の特徴は使わない文字を一つつぶし、そ
Emacs Lisp 入門の第 8 回です。 設定に絞った Emacs Lisp の入門なので、制御構造は必要ないかと思い、前回で終了していました。 しかし、 OS など環境の違う場合に同じ設定ファイルを使おうとすると、条件分岐は必要になってきます。 そこで、今回、 elisp での条件分岐について追加しました。 条件分岐の式 条件分岐の式の基本は if です。 (if 条件式 真の式 偽の式1 偽の式2 :) 条件式は真ならば式の 2 番目の引数として渡した式が評価され、 偽ならば 3 番目以降が順に評価されます。 ただし、 if は偽の時は複数書けるのですが、真で評価する式には 1 つしか書けません。 こういった場合、 progn で複数書けます。 (if 条件式 (progn 式1 式2 :)) ただ、ちょっと書くのが面倒なので、真の時だけ渡した式を順に評価する when も用意され
Emacs ではデフォルトのままだとスクロールする時、ガクガクと動く感じがします。 その調整も含めて、今回は Emacs でのスクロールの挙動とその変更方法について説明します。 カーソル移動によるスクロール なぜ、ガクガクとスクロールする感じになるかというと、 Emacs では画面端になって、スクロールする際に、 画面中央にカーソルがくるようにするためです。 これはこれで、なるべく画面の中央で編集ができるため、良い点もあります。 ただ、 Word など他のアプリと挙動が違うので、ちょっと気持ち悪く感じます。 ステップ量 中央に移動する挙動を変えるには scroll-conservatively の値を変更します。 この値のデフォルトは 0 であり、これを 1 にすると、 スクロールは 1 行となり、自然な感じになります。 (setq scroll-conservatively 1) ちなみ
Node.js を使うと PC 上で JavaScript を実行できるようになります。 ただ、 JavaScript はもともとクライアントサイドの言語のため、 ファイルを直接操作するなどの API はありません。 そこで Node.js はプログラムとして動作させるために必要な各種 API をモジュールとして用意しています。 その標準モジュールに関する記事を書いてみました。 標準モジュールと API Node.js の API を提供するモジュールは Node.js とともに標準でインストールされています。 それらの多くも使用する場合には require によるロードは必要ですが、 npm でのインストールを行うことなく、そのまま使うことができます。 Node.js の Windows へのインストールと npm の使い方 | プログラマーズ雑記帳 ちょうど C, C++ の標準ライブ
C 言語などでビットの定義を行う場合、 ビットシフト(<<)も使いますが、 16 進数で表記することも多いです。 何故 16 進数で記述するかというと 16 進数は 2 進数に変換しやすいためです。 C 言語でゴリゴリ書くのが主流だった時代は、 結構みんな独自の計算方法を持っていて、すぐに 2 進数に変換していました。 しかし、最近ではこの変換をできない人が増えてきた気がします。 そこで今回は私がやっている暗算で 16 進数を 2 進数に変換する方法を紹介したいと思います。 ただ、魔法のような便利な方法があるわけではなく、掛け算における九九のように暗記よる部分が多いです。 進数表記の基礎 まず最初に進数表記について簡単に説明します。 進数表記の種類としては 16, 10, 8, 2 進数などがあり、 通常、私達が使っているのは 10 進数です。 2, 8 進数などの場合、たまに 2, 8
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く