私は次の方法
void setField(char x);
と別のオーバーロードされた方法を持っていますvoid setField(int8_t x);
これは以外のすべてのプラットフォームでコンパイルさsolaris
れsolaris
int8_t
ますtypedef as char
この問題を解決する方法はありますか?名前を変更したくないので、次のmethod
ようなコンパイラエラーが発生しますmethod already exists
私は次の方法
void setField(char x);
と別のオーバーロードされた方法を持っていますvoid setField(int8_t x);
これは以外のすべてのプラットフォームでコンパイルさsolaris
れsolaris
int8_t
ますtypedef as char
この問題を解決する方法はありますか?名前を変更したくないので、次のmethod
ようなコンパイラエラーが発生しますmethod already exists
これを解決する方法はありません。typedefは、同じタイプの単なる別名です。ただし、オーバーロードできるのはさまざまなタイプのみです。したがって、あなたの場合、コンパイラはsetField(char x)を参照します。
なぜこれらの2つの方法が必要なのですか?sizeof(char)は標準では1であるため、これらの名前に実際の違いはありません。
int_8を認識しません。stdint.hにはint8_tがあります。あなたはそれを試しましたか?それ以外の場合は、int_8を定義するSolarisでヘッダーファイルを見つけ、適切なプリプロセッサ定義を使用してSolarisビルドで条件付きで除外します。