2016-05-29-01-swapとmoveの移動について - project-enigma

2016-05-29-01-swapとmoveの移動について

>> Site top >> weblog >> 月別アーカイブ >> 2016年05月のlog >> 2016-05-29-01-swapとmoveの移動について

最終更新日付:2016/05/29 12:49:37


swapとmoveの移動について

2016 年 05 月 29 日

CL-STL の中には swapmove というのがある。現在検討中の CL-IOSTREAM にも同じモノがあり、CL-STL は将来 CL-IOSTREAM に依存することになる。このままではマズいので、共通の基盤ライブラリである CL-OPERATOR あたりに移動しようかと考えている。今回はそんな話。

基本的な話は単純で、両者を CL-OPERATOR に移設するだけの話だ。move はいわゆるムーブ演算なので CL-OPERATOR に置くことに不自然さは感じない(というか、最初からそうするべきだった)。ただ、STL アルゴリズムにも move があり、それは移動させるわけにはいかないため、オーバーロードの defgeneric にあたる宣言だけを移動させることになる。また、swap を CL-OPERATOR に置くのはいささか不自然に感じる。これらがまず引っ掛かっているポイント。

とはいえ、これらは CL-OVERLOAD の仕組みを使ったオーバーロード関数(またはマクロ)なので、宣言を移動させることについても、defmethod にあたるメソッド実装を CL-STL に残すことについても特に問題ないだろうと見ている。というか、問題があれば CL-OVERLOAD を直すよな。自分で作ったものだし。

では、わざわざここでこんなことを書いたのは何故だろう? 実は、「swap を CL-OPERATOR に置くのは不自然に感じる」というのも、書き始めてから気付いたことなので、それは理由ではない。では何だろう? 多分なのだけれど、軽くビビっているのではないかと思う。既存の(割と大きな)機能がライブラリ間を移動するというのは決してインパクトのない修正とは言えない。また、それが対処として最善なのかというところで今ひとつ自信がない。だから整理し、検討する手段として書いているんだろうな。さて、どうしようか。

 

コメント

このページにコメントする

 

このページのタグ

Page tag : STLとその移植

Page tag : Common Lisp

 

 


Copyright(C) 2005-2017 project-enigma.
Generated by CL-PREFAB.