2012-08-09 12 views
5

私はそれが私がこの問題を回避する方法がわからないんですが、それでもでsize_t型を維持したいと思いますstddefの競合宣言

typedef __SIZE_TYPE__ size_t; 

と競合して

typdef unsigned int size_t; 

として私のコードで定義されているのtypedefを持っています私のコード。

+3

選びます別の名前を付けるか、名前空間に入れます。 – jrok

+2

別の名前を選択するだけです。 –

+2

別の名前を指定してください。 –

答えて

17

の3つのオプション:

1)は、別の名前を選んで、私はあなたがすでにそれを得たと思います。

namespace X 
{ 
    typedef long size_t; 
} 

、あなたが解雇を取得することを保証

X::size_t x; 

3)醜いなどの種類、と私はdownvoted::

2)namespace使用

typedef unsigned int my_size_t; 
#define size_t my_size_t 
+0

AHH。私はあなたの答えが一番好きです。これはプロジェクトのための問題で、私のコードの中のsize_t typedefの名前は私が変更できないものです。ありがとう! – user1496542

+0

@ user1496542 ok、編集済みの回答を参照してください。 –

+0

haha​​ha大丈夫です。名前空間の答えはまだ私のために勝つが、もう一度感謝! :) – user1496542

2

標準ヘッダーのいずれかにある型を再定義しようとすると、おそらく悪い考えです。あなたは何を達成しようとしていますか?標準のsize_t定義を使いたいのですが?

+0

これは、「別の名前を選んでください」というコメントでなければなりません。 :P – jrok

+0

LOL、そうです、それは人々が取った方向性のようです。 – jwismar

+0

私はできますが、これは私がその名前を変更できないプロジェクトのためです。 :)ありがとうございました:) – user1496542