現在libcxxのリーディングにチャレンジしているのですが
iostreamのcinの定義部分はどこにあるのでしょうか?
/* iostream */ extern __attribute__ ((__visibility__("default"))) istream cin
iostream.cppにはcinがあるのですが型がcharなので違うような気がします。
実際に似たようなコードを作成してみましたがコンパイルできなかったです。
そもそも型が違う同名の変数がある時点でコンパイルエラーになるはずなのになぜならないのでしょうか?
/* iostream.cpp */ alignas(istream) __attribute__ ((__visibility__("default"))) char cin[sizeof(istream)]
あと少し内容からはずれてしまうのですがなぜiostreamは.h.hpp.cpp.ccのような拡張子がないのにコンパイルできるのでしょうか?
たくさん質問してしまいましたがよろしくお願いたします。
やってる事は配置newによる初期化タイミングの制御?だってのは分かるんだが
externによるchar→std::istreamの読み替えが合法なのかが判断つかない・・・
回答2件
あなたの回答
tips
プレビュー