トップページ > プログラム > 2015年08月03日 > dv1hKBwd

書き込み順位&時間帯一覧

21 位/144 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000010100000000002



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
【初心者歓迎】C/C++室 Ver.96【環境依存OK】 [転載禁止]©2ch.net

書き込みレス一覧

【初心者歓迎】C/C++室 Ver.96【環境依存OK】 [転載禁止]©2ch.net
910 :デフォルトの名無しさん[sage]:2015/08/03(月) 11:39:18.72 ID:dv1hKBwd
C/C++両方で使うヘッダファイルを書いています。

#ifdef __cplusplus
#include <cstdio>
#else
#include <stdio.h>
#endif

#ifdef __cplusplus
extern "C" {
using namespace std;
#endif

int OutputString(FILE* fp, const char* s, size_t n);

#ifdef __cplusplus
}
#endif

みたいに書いたら、using namespace std;をヘッダに書くな!と怒られました。
私は、usingの有効範囲は{ }の中だけだと思ったんですが違うんでしょうか?
できれば、

#ifdef __cplusplus
int OutputString(std::FILE* fp, const char* s, std::size_t n);
#else
int OutputString(FILE* fp, const char* s, size_t n);
#endif

みたいな書き方はしたくないんですが。
【初心者歓迎】C/C++室 Ver.96【環境依存OK】 [転載禁止]©2ch.net
914 :デフォルトの名無しさん[sage]:2015/08/03(月) 13:01:02.17 ID:dv1hKBwd
>>912
>C/C++両方で使う場合ってどう言う場合なの?

色々なしがらみで、定年退職したおじさんがCで書いたライブラリを当面使い続けないといけないんですが、
C++コーディング規約が変わって<XXX.h>が禁止され、必ず<cXXX>をインクルードすることになってしまいました。

なので、Cライブラリのヘッダファイルを修正していたんですが、std::size_t等をどうすべきか悩みまして…
>>911の方法でやってみます。ありがとうございました。


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。