私はBOOST_AUTOを初めて使いました。ここには基本的な質問があります。BOOST_AUTOとC++ユーザー定義型
自分のクラスを定義してBOOST_AUTOで使用しました。チュートリアル:
私のコードは何も登録せず、VC++ 2010で正しく動作します。この登録は本当に必要ですか?私は何か悪いことをしましたか?独自のタイプを定義した場合、タイプライブラリはこのタイプについて知らせない限り、 を処理できません。タイプのタイプ/テンプレートを「登録」する手段によって、型式(またはテンプレート)についてTypeof Library に伝えます。
#include <boost/typeof/typeof.hpp>
using namespace std;
namespace NS1 {
struct X {
X(const X& x){s=x.s+1;}
X(){s=3;}
int s;
};
}
int _tmain(int argc, _TCHAR* argv[])
{
NS1::X x;
BOOST_AUTO(y,x);
cout << y.s << endl;
return 0;
}
出力:4
コンパイラは通常の 'auto'をサポートしています。 – chris
ああそうです! https://msdn.microsoft.com/en-us/library/dd293615(v=vs.100).aspx。これは、VC++ 2010でBOOST_AUTOが自動的に#defineを 'auto'にすることを意味しますか? – JavaMan
@JavaMan:それは問題ではありません。普通の 'auto'を使ってください。 –