コグノスケ


2018年 4月 10日

外部イテレータ

イテレータには、

C++ 方式
集合の要素を指す
Java 方式
集合の要素の「間」を指す

この 2つがあるみたいで(他にもある?)、どらちもパーフェクトではありません。

C++ 方式
end が特殊(参照できない、ある Iterator の begin と Reverse Iterator の end は一致しない)
Java 方式
Random Iterator が定義できない(?)少なくとも Java には無い

C++ も Java も書いたことがある身としては、別にどちらの方式でも困らないと思っていたのですが、Java で Random Iterator が使いたいときは、どうしたら良いのかわかりませんでした。

リストのインデックスを内包し、リストの要素の型を取るジェネリッククラスでも作れば良いのだろうか…??

メモ: 技術系の話は Facebook から転記しておくことにした。

編集者: すずき(更新: 2018年 4月 14日 21:39)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2018年 4月 14日

C 言語のデフォルト機能と標準機能

目次: C 言語と libc - まとめリンク

会社で隣の席の方がハマっていて相談されたことのメモです。といっても、私も調べて初めて知りましたから、偉そうなことは言えませんけども。

C 言語をコンパイルする際、gcc に言語標準オプション(-std)を付けてコンパイルすると「デフォルトの拡張機能」が全て OFF になります。

デフォルトの拡張機能とは、具体的には _DEFAULT_SOURCE を定義すると有効になる機能で、マニュアル(Man page of FEATURE_TEST_MACROS の _DEFAULT_SOURCE (glibc 2.19 以降) の節)によれば、

「デフォルト」定義は、 POSIX.1-2008 で必須となっている定義と、 BSD と System V 由来の種々の定義を公開する。glibc 2.19 以前では、これらのデフォルトは以下を明示的に定義するのとほぼ等価である。

cc -D_BSD_SOURCE -D_SVID_SOURCE -D_POSIX_C_SOURCE=200809

会社では timersub(BSD 由来の機能)がコンパイルエラーになって初めて気づきました。普段 POSIX 由来か、BSD 由来か、そんなことはほぼ意識せず使っていますから、最初はかなり意味不明でした。

この動きは機能は隠された機能でもバグでもなく、gcc というか glibc の仕様です。先ほどのマニュアル(Man page of FEATURE_TEST_MACROS の _DEFAULT_SOURCE (glibc 2.19 以降) の節)にも、

「デフォルト」が無効になるような状況は、個別のマクロが明示的に定義された場合や、コンパイラが「標準」モードのいずれか (例えば cc -std=c99) で起動された場合などである。

とあります。普段 -std オプションなんて使わないので、こんな動きするなんて知りませんでしたね……。

編集者: すずき(更新: 2022年 4月 22日 03:00)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2018年 4月 18日

Linux 4.17

最近は会社で UniPhier 向けのオーディオドライバ(+周辺の改変)を Linux に contribute していました。

先日リリースされた Linux 4.17 にも、当然ながら自分の書いたコードが入っています。Linux の MAINTAINERS やコミットログに自分の名前が載っているのは、何だか不思議な感じがします。

UniPhier は残念ながら PC やスマホには縁が無い SoC ですが、一部のテレビに入っていますので、気づかぬうちに使っているかもしれません。

メモ: 技術系の話は Facebook から転記しておくことにした。

編集者: すずき(更新: 2018年 4月 19日 22:50)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2018年 4月 23日

アイス

アイスの写真を 10種類ほどアップロードして、アイス 89種類になりました。明治が意外と増えませんね…。何でだろ。

集計してみると、こんな感じでした。括弧内は前回からの増加分。

  • 赤城乳業: 27(+2)
  • ファミマ: 6
  • グリコ: 8(+4)
  • 明治: 5
  • 森永: 13(+1)
  • ロッテ: 11(+2)
  • その他: 19(+3)

次のアップロード作業で 100突破するのは確実ですが、アップロードの早さより、アイスの袋が増える早さの方が上で、我が家のアイスの袋たちは一向に減りません……。

編集者: すずき(更新: 2018年 4月 24日 02:19)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



こんてんつ

open/close wiki
open/close Java API

過去の日記

open/close 2002年
open/close 2003年
open/close 2004年
open/close 2005年
open/close 2006年
open/close 2007年
open/close 2008年
open/close 2009年
open/close 2010年
open/close 2011年
open/close 2012年
open/close 2013年
open/close 2014年
open/close 2015年
open/close 2016年
open/close 2017年
open/close 2018年
open/close 2019年
open/close 2020年
open/close 2021年
open/close 2022年
open/close 2023年
open/close 過去日記について

その他の情報

open/close アクセス統計
open/close サーバ一覧
open/close サイトの情報