コグノスケ


link 未来から過去へ表示(*)  link 過去から未来へ表示

link もっと前
2016年1月25日 >>> 2016年1月12日
link もっと後

2016年1月25日

紆余曲折だったC++11のoverrideとfinal

最近cpprefjp(リンクはこちら)のコミット権をいただいたので、小物ネタから書いてはコントリビュートしていますが、一見簡単そうに見えたC++11のoverrideとfinalの経緯を調べていたら、土日が終わってしまいました。

実はoverrideとfinalは簡単ですが、同時に検討されていたhidingが鬼門でした…。

以下の例のように「間違って基底クラスの仮想メンバ関数を隠した(hiding)ときエラーにしたい」という提案から始まりました。

hidingを明示的に宣言するコンテキスト依存キーワード 'new'

class A {
    virtual void func();
};

// check hiding and override
class B explicit : public A {
    // NG, 間違ってA::func() を隠していないか?
    void func(int a);
    // OK, あえてA::func() を隠すと宣言している
    void func(double b) new;
};

でも事はそう単純ではありませんでした。overrideはメンバ関数同士でしか発生しませんが、hidingはメンバ関数とメンバ関数以外でも発生するため、考慮するケースが多いからです。

C++ 標準化委員会のペーパーには、問題となる例が挙げられていますが、あえて私見で「あ、これダメだ」と思ったヤツを1つ挙げると、以下の例です。

hidingを明示するキーワードnewの文法上の問題

class A {
    virtual void N();
};
class B explicit : public A {
    // B::NはA::N() を隠すからnewを宣言すべき、でもnewを書く文法は?
    enum { N };
};

初見の方はnewを使い回すなよと思うでしょう。実際、最初はhidingという名前で提案されました。しかし問題がありました。

hidingをコンテキスト依存キーワードにしたときの悩み

struct A {};
struct B {
    // これは構造体の宣言?変数の宣言?
    struct A hiding;
};

これらの問題を回避するためにenumの中のNやらMやらにまで、一々newと書く文法を新たに作るのも、不細工極まりないです。

他にもusing、多重継承など、かなり広範に渡ってhidingが起きるため、これはダメだと判断されたようでexplicitとnew (hidingを宣言するための) は、C++11策定の最後辺りでDrop されました。

C++14にも採用されていないように見えるけど、次のC++ 規格で入るのかな…??

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

編集者:すずき(2016/01/25 23:00)

コメント一覧

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



2016年1月20日

いい人

あなたのチームの「いい人」は機能していますか? - SlideShareを読んで。

会社で「システム班」と呼ばれた人たちがほぼ全員辞めていった理由が全て書いてありました。

私もここ1年くらいWikiやRedmineで「情報の抱え込みをやめて、共有する文化」の普及に挑戦しましたが、挫折気味です。

やってくれる人は言ったその日から継続的にやってくれるのですが、やってくれないオジサン達って「共有は大事」と言いつつ、三日坊主orガン無視するんですよね…。

どうしたら良いんだろね?

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

編集者:すずき(2016/01/21 00:08)

コメント一覧

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



2016年1月16日

DDR3-2133で動くはずなのに

デスクトップで使っているCPU(AMD A10-7800)、マザーボード(ASUS A88XM-PLUS)、メモリ(G.Skill F3-2133C10Q-32GZM)の全てが、DDR3-2133対応を謳っている製品にも関わらず、UEFIの自動設定だとなぜかDDR3-1600になってしまいます。

勿体ないので、DDR3-2133の設定に変更したところ、UEFIまではご機嫌に立ち上がりますが、Windows10が起動するかしないかのところで、画面が真緑&ノイズだらけになってしまい、使い物になりませんでした。

A10内蔵のRadeonがおかしい?もしくは誰かがDDR3-2133に対応していないウソつきなのか…?

動いたように見せかけて動かない

ASUSのサイトからUEFIの最新版を持ってきてバージョンアップし、グラフィクスの設定をTurbo Modeとやらに変更したところ、Windows10のログイン画面まで出ました。

が、ここまで動いたと思わせておいて、やはり真緑になって死亡しました。ダメだこりゃ…。

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

編集者:すずき(2016/01/17 18:43)

コメント一覧

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



2016年1月15日

一太郎2015

一太郎2015特別優待版を買いました。Amazonで8000円くらいでした。元々Wordや一太郎のようなワープロはあまり使わないので、一太郎と一緒に入っているATOK 2015をメインに使うことになりそうです。

なぜ2016を買わないのか?という突っ込みはごもっともですが、まだ一太郎2016は出ていないのです。

2015年は一太郎の30周年記念で「らくらく画面カッター」と「はかどる数式メーカー」というソフトが記念に付属されていました。画面カッターはわかりませんが、数式メーカーは使うかなあ。

ATOK 2015

以前使っていたのはATOK 2010だったので、軽く5年ほど経っていますが、使い勝手が激変しないところがATOKの良いところです。

使い始めてすぐに気になったことは、なぜかGoogleの検索ボックスが激重になったことです。なんだこりゃ?

他にも気づいた点があれば後日にでも書きます。

編集者:すずき(2016/01/17 19:06)

コメント一覧

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



2016年1月14日

favicon乱立

あらゆる種類のfaviconを自動生成してくれる Favicon Generator for all platforms というサイトが面白かったので、このサイトにもPCブラウザ向けのfaviconを作成してみました。

生成に使ったのは、昔、旭山動物園に行ったときに私が撮ったペンギンの写真です。

生成されたfaviconを全部設定するのは嫌だったので(ミラーサイトのトップにfavicon置きたくない)、昔からあるfaviconとiOS, Chrome用のfaviconだけ設定しておきました。しかし、そんな手抜き設定をするだけでも13種類もの大きさがあるんです。

プラットフォームやブラウザが増えるごとに、どんどんfaviconの亜流が増えていけば、必ずサイト側の対応が追い付かなくなって破綻します。破綻します、というより、既に破綻しています、と言った方が良いのか…(現時点でfaviconは20種類を超えている)。

収拾の手立ては?

事態を収拾するにはfaviconの規格を統一し、各プラットフォーム、ブラウザ、各サイトが地道に対応する方法がありますが、難しそうです。

オリジナルのfavicon自体IE 5が勝手に作った機能で、規格もへったくれもないですし、規格にしたところで、ここまで亜流だらけになれば、もはや統一は上手くいかないでしょう。

このまま破綻して誰も扱いきれなくなって廃れるか、どこかで一発リセットが掛かるか。どっちかなあ…。

編集者:すずき(2016/01/17 21:54)

コメント一覧

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



2016年1月12日

オススメのプログラミング環境は?

最近よく見る「今年こそ、プログラミングを勉強したい」広告を見ていて思ったのですが、プログラミング初めての人に教えることになったら、何を選ぶでしょう?

もちろん、何がしたいのか?教えるスキルがあるか?にも依りますが、私の場合は、

  • ハード: ノートPC
  • OS: Windows or Ubuntu Linux
  • 言語: Java

になりそうです。古典的ですね。

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

編集者:すずき(2016/01/10 14:57)

コメント一覧

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



link もっと前
2016年1月25日 >>> 2016年1月12日
link もっと後

管理用メニュー

link 記事を新規作成

<2016>
<<<01>>>
-----12
3456789
10111213141516
17181920212223
24252627282930
31------

最近のコメント5件

  • link 24年10月1日
    すずきさん (10/06 03:41)
    「xrdpで十分動作しているので、Wayl...」
  • link 24年10月1日
    hdkさん (10/03 19:05)
    「GNOMEをお使いでしたら今はWayla...」
  • link 24年10月1日
    すずきさん (10/03 10:12)
    「私は逆にVNCサーバーに繋ぐ使い方をした...」
  • link 24年10月1日
    hdkさん (10/03 08:30)
    「おー、面白いですね。xrdpはすでに立ち...」
  • link 14年6月13日
    2048player...さん (09/26 01:04)
    「最後に、この式を出すのに紙4枚(A4)も...」

最近の記事20件

  • link 24年10月31日
    すずき (11/04 15:17)
    「[DENSOの最終勤務日] 最終勤務日でした、入門カードや会社のPCを返却してきました。在籍期間はNSITEXE(品川のオフィ...」
  • link 22年7月8日
    すずき (11/02 20:34)
    「[マンガ紹介 - まとめリンク] 目次: マンガ紹介一覧が欲しくなったので作りました。5作品乙女ゲームの破滅フラグしかない悪役...」
  • link 24年10月30日
    すずき (11/02 20:33)
    「[マンガ紹介] 目次: マンガ紹介お気に入りのマンガ紹介シリーズ。最近完結した短めの作品を紹介します。マイナススキル持ち四人が...」
  • link 19年3月28日
    すずき (11/02 13:27)
    「[マンガ紹介] 目次: マンガ紹介お気に入りのマンガ紹介シリーズ。こわもてかわもて(全2巻、2019年)(アマゾンへのリンク)...」
  • link 21年6月20日
    すずき (11/02 13:22)
    「[読書一生分が93万円?] 目次: マンガ紹介書籍通販のhontoがこんなキャンペーンをやっています。honto読書一生分プレ...」
  • link 17年10月27日
    すずき (11/02 13:11)
    「[異世界&最強系漫画の種類] 目次: マンガ紹介少し前にアニメ化されて盛り上がって(おそらく負の方向に…)いた「...」
  • link 24年10月28日
    すずき (10/30 23:49)
    「[Linuxからリモートデスクトップ] 目次: Linux開発用のLinuxマシンの画面を見るにはいろいろな手段がありますが、...」
  • link 23年4月10日
    すずき (10/30 23:46)
    「[Linux - まとめリンク] 目次: Linux関係の深いまとめリンク。目次: RISC-V目次: ROCK64/ROCK...」
  • link 24年10月24日
    すずき (10/25 02:35)
    「[ONKYOからM-AUDIOのUSB DACへ] 目次: PCかれこれ10年以上(2013年3月16日の日記参照)活躍してく...」
  • link 24年7月25日
    すずき (10/25 02:24)
    「[OpenSBIを調べる - デバイスツリーの扱い(別方法)] 目次: LinuxOpenSBIのブート部分を調べます。Ope...」
  • link 24年8月7日
    すずき (10/25 02:23)
    「[Debian独自の挙動をするQEMUとbinfmt_misc] 目次: Linux前回はbinfmt_miscの使い方や動作...」
  • link 24年9月9日
    すずき (10/25 02:22)
    「[GDBの便利コマンド] 目次: LinuxGDBは便利ですが、少し使わないでいるとあっという間にコマンドを忘れます。便利&使...」
  • link 24年10月20日
    すずき (10/25 02:22)
    「[ゲームを買ったら遊びましょう2] 目次: ゲーム前回の振り返り(2022年5月13日の日記参照)から2年半経ちました。所持し...」
  • link 24年8月2日
    すずき (10/25 02:21)
    「[Debian on RISC-V] 目次: LinuxOpenSBI + Linuxの環境まで動いたので、次はLinuxのデ...」
  • link 24年8月6日
    すずき (10/25 02:21)
    「[他アーキテクチャ向けバイナリを実行する仕組みbinfmt_misc] 目次: LinuxRISC-V 64bit用の実行ファ...」
  • link 24年8月27日
    すずき (10/25 02:20)
    「[Milk-V Jupiterが届いた] 目次: RISC-VMilk-V Jupiterが届きました。お値段が非常に安かった...」
  • link 24年9月13日
    すずき (10/25 02:20)
    「[OpenSBIを調べる - OpenSBIとRISC-V ISA extensions] 目次: Linux今回はOpenS...」
  • link 24年10月11日
    すずき (10/25 02:19)
    「[企業のドメイン] 今の企業は公式サイトを持っていなほうが珍しいと思いますが、ドメイン名の使い方は各社でバラバラで面白いです。...」
  • link 24年10月21日
    すずき (10/25 02:18)
    「[OpenPilotを調べる - プロセス間通信msgqの仕組み] 目次: OpenPilot最近はOSSの運転支援ソフトウェ...」
  • link 24年10月6日
    すずき (10/25 02:11)
    「[OpenPilotを調べる - ビルドと実行] 目次: OpenPilot最近はOSSの運転支援ソフトウェアOpenPilo...」
link もっとみる

こんてんつ

open/close wiki
open/close Linux JM
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 2024年
open/close 過去日記について

その他の情報

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

合計:  counter total
本日:  counter today

link About www2.katsuster.net
RDFファイル RSS 1.0

最終更新: 11/04 15:17