link もっと前
   2006年 10月 3日 -
      2006年 10月 3日  
link もっと後

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

日々

link permalink

C++ の exception クラスのメッセージは単発のメッセージしか格納できないので、catch してまた throw するたびに、メッセージを連結できるように拡張しようと思って作ってみました。

exception の継承
class exception_derived : public exception {
  exception_derived() : 
  exception() {
    ...
  }
  
  exception_derived(const char *msg) : 
  exception(msg) {
    ...
  }
  (略)
}

コンストラクタは

  • 引数なしのデフォルトコンストラクタ
  • const char * を取るコンストラクタ

の 2つを作りました。メッセージを付けたければ、2番目を呼んで設定します。連結したければ、catch した exception の what() が返すメッセージと、適当にくっつけるような使い方を想定していました。

このコードですが、VC8 ならば exception(const char *const &) というコンストラクタがあるため問題ありません。しかし g++ 3.3 はデフォルトコンストラクタとコピーコンストラクタしかなくて、外からメッセージを設定できませんでした。

exception クラスを継承した logic_error クラスなどには logic_error(const string& __arg) のようなコンストラクタがあるものの、今度はデフォルトコンストラクタがありません。これは exception の friend にして、メッセージを直に書けってことなのかなあ?

[編集者: すずき]
[更新: 2006年 11月 19日 18:41]
link 編集する

コメント一覧

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



link もっと前
   2006年 10月 3日 -
      2006年 10月 3日  
link もっと後

管理用メニュー

link 記事を新規作成

合計:  counter total
本日:  counter today

link About www.katsuster.net
RDF ファイル RSS 1.0
QR コード QR コード

最終更新: 2/21 00:46

カレンダー

<2006>
<<<10>>>
1234567
891011121314
15161718192021
22232425262728
293031----

最近のコメント 5件

  • link 18年12月11日
    すずき 「確認いただいてありがとうございます。直っ...」
    (更新:12/27 00:22)
  • link 18年12月11日
    T4 「再現しませんね\n\n確かに、過去にそう...」
    (更新:12/25 12:45)
  • link 18年12月11日
    すずき 「失礼しました。Rock64 の方は、\n...」
    (更新:12/22 02:10)
  • link 18年12月11日
    T4 「私は、Tinker Board を持って...」
    (更新:12/21 10:14)
  • link 18年12月11日
    すずき 「> 但し、これもう一年以上前の話で...」
    (更新:12/19 11:54)

最近の記事 3件

link もっとみる
  • link 19年02月19日
    すずき 「[RISC-V のコンパイラ] Crosstool-NG は RI...」
    (更新:02/21 00:46)
  • link 19年02月18日
    すずき 「[RockPro64 のシリアル出力] RockPro64 のシリ...」
    (更新:02/21 00:43)
  • link 19年02月20日
    すずき 「[RockPro64 の HDMI Audio] RK3399 の...」
    (更新:02/21 00:33)

こんてんつ

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 過去日記について

その他の情報

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