- ベストアンサー
C++ 標準ライブラリの実際の中身を知りたい
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
#1さんのおっしゃるとおり、libstdc++の実装はいろいろあります。ここでは参考までに2つほど紹介します。 GNU http://gcc.gnu.org/libstdc++/ ソースコード: http://gcc.gnu.org/viewcvs/trunk/libstdc%2B%2B-v3/ LLVM http://libcxx.llvm.org/ (つながらないのでGoogleのキャッシュなどで見てください) LLVMのサイトにつながらないので代わりにFreeBSDに移植されている方を。 ソースコード: http://svnweb.freebsd.org/base/head/contrib/libc%2B%2B/
その他の回答 (3)
- nby1215tkd
- ベストアンサー率60% (9/15)
プラットフォームが分からないのですが、FreeBSD,NetBSDなどのBSD系OSやLinuxなどのオープンソースOSであれば、 標準ライブラリのソースファイルを見れば良いと思います。 ソースが公開されていない商用パッケージのC++だとどうしようもないと思いますが、ヘッダファイルを見れば、 実はマクロになっているなんてものもあるかもしれません。
お礼
お礼が遅くなり申し訳ありません。ありがとうございます。
- jacta
- ベストアンサー率26% (845/3158)
多くの実装では、大部分のコードはヘッダにあり、しかもヘッダはファイルとして実装されています。 したがって、ヘッダに相当するファイルをテキストエディタで開けば、ほとんどの内容を閲覧することができます。
お礼
参考になりました。お礼が遅くなり申し訳ありません。ありがとうございます。
- zwi
- ベストアンサー率56% (730/1282)
実装で中身は全然違うので、例えばgccとVisualC++では別物レベルです。 まぁ、少なくともgccはオープンソースですのでライブラリも含めて全てのソースコードは公開されています。 VC++でもF11でステップインすればトレース出来るはずです。まぁ、どちらも初心者が読むようなもんじゃないと断言出来ますけどね。
お礼
お礼が遅くなり申し訳ありません。ありがとうございます。
関連するQ&A
- 標準ライブラリのcos関数の値がおかしいです。
標準ライブラリのcos関数の値がおかしいです。 環境は OS:WindowsXP 言語:C++ 開発環境:Visual C++ ExpressiEdition です。 以下がサンプルコードです。 #include<iostream> #include<stdio.h> #include<math.h> int main(){ double y=cos(90.0 * 3.14159265358979323846264338327950288 / 180.0); printf("%lf\n",y); std::cout<<y<<std::endl; printf("%d\n",y*10); std::cout<<y*10<<std::endl; getchar(); return 0; } 上記のコードを実行すると、 0.000000 6.12323e-017 -1076268279 6.12323e-016 と出力されます。 本来なら、cos90の値は0ですから全て「0」と表示されると思うのですが・・・ 原因が分かる方がいらっしゃいましたら、教えていただけると助かります。
- ベストアンサー
- C・C++・C#
- c++ 標準ライブラリ
初心者です。 デバッグしていると標準ライブラリやMFCのコードが出てきたりしますが、 そのソースは読み取り専用ではないようで、簡単に編集できそうな感じなのです。 やっぱり間違って壊しちゃったらおかしくなってしまうんでしょうか??怖いです。 もしそうなら復帰の方法は?
- 締切済み
- C・C++・C#
- c++の改行ができません。
cの勉強はせず、c++の勉強を始めたばかりです。 以下のソースコードでコンパイルは通るのですが、実行すると¥nによる改行が起こりません。 #include <iostream> using namespace std; int main() { cout << "Hello¥n"; cout << "abc"; return 0; } 次のように出力されます。 Hello¥nabc(コンピュータ名):(ディレクトリ名) (ユーザ名)$ ちなみに OS:OS10.8 コンパイラ:gcc4.7.2 エディタ:emacs24.2 実行ソフト:terminal です。 また、gccとemacsはmacportsにより導入しました。 分かる方回答よろしくお願いします。
- ベストアンサー
- その他(インターネット・Webサービス)
- ライブラリの中身を書き換えるには
C++のライブラリの中身を書き換えたいのですが、どのファイルを書き換えれば良いでしょうか? インクルードフォルダのファイルは拡張子がlibのファイルで、エディタで開いても見れませんでした。
- 締切済み
- C・C++・C#
- 「標準ライブラリ」と、ネット上に配布されているような「ライブラリ」のちがい。
「標準ライブラリ」と、ネット上に配布されているような「ライブラリ」は、全く別のものと考えていいのでしょうか? 通常のライブラリは、ある機能を持ったクラスの集合で、それはJavaのコードで書かれているものがコンパイルされたものだと思います。そういったプログラムは、例えばStringクラス等を使って書かれていると思います。 であるのに、Stringなども、調べると「標準ライブラリ」と出てきます。ライブラリを作るのに、ライブラリがいる?と、少し混乱しているのですが、「標準ライブラリ」というのは、普通のライブラリとは全く別のもの(Javaそのもの)と考えてよいのでしょうか? よろしくお願いします。
- ベストアンサー
- Java
- Linuxで、標準Cライブラリが読み込まれず、C言語プログラミングができません・・・
僕の問題はタイトルの通りで、標準Cライブラリが読み込まれていないようで、C言語プログラミングができません。 ubuntuのオフィシャルから日本語ローカライズドDesktopCDをダウンロードして、空のHDDにインストールしました。 ですが、gnome-terminalからccコマンドでプログラムをコンパイルしても、標準Cライブラリにあるはずの<stdio.h>が認識されず、続くprinft関数も読んでくれません。 これはどうしてでしょうか?LinuxはデフォルトでCやらJAVAやらのプログラミングの環境が整っているものだと思っていたので、戸惑っています。何か、セットアップが必要なのでしょうか。 ちなみに、gccでも、標準ライブラリは読み込まれませんでした。
- ベストアンサー
- Linux系OS
- 標準ライブラリー関数を使用せずに文字出力
はじめまして、C言語初心者です。 研修で、C言語を学ぶことになったのですが研修先から頂いた練習問題で「練習のため標準ライブラリー関数は使わない」で文字列を連結するための関数を作ることになったのですが、標準ライブラリー関数を使用せずに文字出力はできるのですか??
- ベストアンサー
- C・C++・C#
- C++プログラム問題(初心者です)
C++の勉強初めて1ヶ月ぐらいです。 以下にある問題がわかりません。 解説付きでお願いします。 [問題] 関数 funcのみを修正することで、標準出力に 2 が表示する。 [プログラム] #include <iostream> using namespace std; int func(int i) {return i;} int main() { int i = 1; cout << ++func(i) << "\n"; return 0; }
- ベストアンサー
- C・C++・C#
お礼
お礼が遅くなり申し訳ありません。ありがとうございます。