私はVisual C++ 2008 SP1 Proを使用しています。コードスニペットの後にはコンパイルに失敗します。System :: BooleanとboolはC++/CLIで比較できませんか?
1>.\main.cpp(3) : warning C4805: '==' : unsafe mix of type 'System::Boolean ^' and type 'bool' in operation
1>.\main.cpp(3) : error C2446: '==' : no conversion from 'int' to 'System::Boolean ^'
1> No user-defined-conversion operator available, or
1> No standard conversion exists from the boxed form of the arithmetic type to the target type
1>.\main.cpp(3) : error C2040: '==' : 'System::Boolean ^' differs in levels of indirection from 'int'
次のコードは罰金コンパイル:
int main(void) {
System::Boolean^ foobar = true;
if (foobar->Equals(true)) {
System::Console::Write("yeah!");
}
}
私が何か間違ったことをやっている
int main(void) {
System::Boolean^ foobar = true;
if (foobar == true) {
System::Console::Write("yeah!");
}
}
これは、次のエラーを与えますか? System :: BooleanとC++/CLIのboolを比較するには、 - > Equals()および - > CompareTo()を使うより良い方法がありますか?
なぜあなたはブーリアンと真実を比較するのですか? – delnan
[System :: Boolean変数の3項演算子](http://stackoverflow.com/questions/8744929/ternary-operator-on-systemboolean-variable)の可能な複製。 –
フレデリック、リンクありがとう。解決策は '^'文字を削除しています。 – xxx