Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

タグ

tipsとC++に関するnanakosoのブックマーク (2)

  • C99の複素数ライブラリがクソすぎる。

    C99では、複素数ライブラリが採用された。たとえば3.0 + 4.0iの複素数を書きたい場合、GNU拡張では、以下のように書く。 #include <complex.h> double _Complex x = 3.0 + 4.0i ; complex.hをincludeすれば使えるようになる。見た目はそのまんまだ。 これはGNU拡張であって、C99の規格による正式な書き方は以下の通りだ。 float _Complex x = 3.0 + 4.0 * _Complex_I ; _Complex_Iは、"0+1i"を意味する虚数単位定数であり、にかければ任意の虚部を表現できる。あとは実部を足せばいい。 どうやら、C標準化委員会は、まともな名前を考えつかなかったらしい。まあ、大方のきれいな名前は、既存のソースコードと衝突してしまうから、アンダースコアに大文字で始まる予約語を使うしかないのだろう

    nanakoso
    nanakoso 2013/11/13
    罠 #define I _Complex_I
  • chaos2cosmos.net » Makefileの(おそらく正しい)書き方講座

    LinuxMacを使っていて,C++Texのコンパイルをするときにいちいち直接g++やplatexコマンドでコンパイルするのは効率が良いとはいえない.C++はリンクするライブラリを長ったらしく記述しなくてはいけないし,Texは2回コンパイルしなくては図表番号の索引が出来ないなどの煩わしい作業が伴うからだ. そこで,コンパイルの手順を記したMakefileを書こうという話になる.しかし,Makefileの記述方法は一歩間違うと,あまり作業が楽にはならない.ファイル間の依存関係をいちいち直接記述しなくてはいけないからだ.私の研究室の友達,後輩もこのMakefileの記述方法に四苦八苦している. この問題を解決する私なりのMakefileの一例を以下に示そう. C++ TARGET = name CXXFLAGS = -O2 -g -Wall LIBS = -lboost_thread -

  • 1