カテゴリー別アーカイブ: C++

DeclVisitorが呼んでくれる関数のリスト

clangのDeclVisitorが呼んでくれる関数のリストがお手軽にほしかったので調べてみました。
以下のコマンドで出力することができます。
 # DeclVisitor.hのマクロを参考にいたしました。

RetTy定義を-Dオプションで与えれば戻り値を変更できます。

undefined reference to vtable for <Class Name>

Qtアプリケーションを作成していて、undefined reference to vtable for <Class Name>エラーが出るなら、mocが実行されていないか、再実行が必要なケースだ。Qtドキュメント「シグナルとスロット」の実例を参照

Qt Createrで、自分で作成したクラスに”Q_OBJECT”を記述したあとに出た。[ビルド]-[qmakeの実行]を実行したあとビルドすると問題解消。ビルド時に自動で検出してmocを実行してくれればよいのに。

今までどのくらいプログラミング言語を触ってきたか(3秒で飽きたものも含む)

おもしろーい。みんないろいろ触ってるのだなぁ。偶然というか、トラックバックの最初の方、faith_and_braveさんのBLOGはほぼ毎日の様に読んでいる。いろいろ勉強させてもらってます。

で、私の場合。なるべく古い方から思い出しながら。

  • N-BASIC (PC-6001/6601/8001/8801/9801時代。) MS-DOSなんて無かった(^^;;
  • COBOL(*追加)
  • MS-DOSのバッチファイル。言語とは言い難いが….制御構造もあるし..ごりごり書いてたし…
  • ExcelVBA
  • AccessBasic??
  • VisualBasic
  • SQL(たしか、AS400上の)
  • C
  • bash
  • Oracle PL/SQL
  • Oracle Pro C
  • HTML
  • CSS
  • JavaScript
  • VBScript
  • Java
  • D
  • XML
  • XSTL
  • Perl
  • PHP
  • emacs lisp
  • VBA
  • C++(runtime)
  • C++(compiletime)
  • makefile(*2追加)
  • Visual C++のMFC。ま、特有のあれがありますから。
  • SQL Server Transact-SQL
  • PL/pgSQL
  • sed
  • wscript?jscript?
  • Ruby
  • Builder C++のVCL。ま、特有のあれがありますから。
  • Python

最初にプログラミング的だと思ってコンピュータに触ったのはLANPLANの表計算式かなぁ。楽しかった。VBは言語というより画面のみで、ロジックはDLLに押し込める使い方が多かったように思う。

あと、言語じゃないけど使ってるもの

  • BNF
  • PEG
  • 正規表現

他にもありそうだけど…思い出せない。こうやってみるとCLI系は避けてる気がする。今後は関数言語とかOMeta, DSL方面に流れる可能性大。

ついでに、使ったことある開発環境、ミドル、開発ツール関連は..

  • Excel4~
  • Access2.0~
  • VB4, VB6
  • VC6
  • Borland C++Builder 4, 6
  • GNU compiler collection , cとc++
  • D compiler
  • java SDK
  • MinGW, MSYS
  • Oracle WAS
  • IIS
  • Apache
  • SQL Server
  • PostgreSQL
  • MySQL
  • Access
  • Eclipse
  • cygwin
  • gnu make, nmake
  • global tag system
  • meadow, emacs, xemacs
  • Emediter
  • vi, vim
  • mercurial
  • cvs
  • subversion
  • VSS
  • openssh
  • putty
  • AS400用のターミナルソフト。AS400からデータもらえるのがうれしかった。
  • snmpデーモン

ふー、いろいろやってきたなぁ。メモリリークのツール使っていたけど、名前忘れた..(^^;;;

今は、meadowとglobal, mercurial, cygwin, perlで事足りてる。

*)学生のときにCOBOLバリバリやってたんだった。追加。

*2)そうかぁ、makeもゴリゴリ書くしね。他の人真似て追加。

thisポインタを使ったshared_ptr

thisをshared_ptrで他のクラスに渡したい場合にどうするか。メモ。

注意点、Y側はshared_ptrからweak_ptrに変換して保持しないと循環参照となりX, Yもdeleteされないことに。また、shared_ptrをコンストラクタで構築すると、コンストラクタを抜けた時に自身が解放されちゃう。

参考文献 :