Я новичок в BOOST_AUTO, и вот основной вопрос.BOOST_AUTO И C++ Пользовательский тип
Я определил свой собственный класс и использовал его с BOOST_AUTO. Согласно учебнику:
Если вашему определить свой собственный тип, то TYPEOF библиотека не может справиться с этим , если вы позволите ему знать об этом типе. Вы указываете библиотеке Typeof о типе (или шаблоне) при помощи «регистрации» этого типа/шаблона.
Но мой код ниже ничего не фиксирует и корректно работает в VC++ 2010. Эта регистрация действительно необходима. Я сделал что-то неправильно?
#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. Означает ли это BOOST_AUTO автоматически #define для 'auto' в VC++ 2010? – JavaMan
@JavaMan: Это не имеет значения, просто используйте регулярные 'auto'. –