2
このコードはVisual C++ 11 Developer Previewでうまくコンパイルされますが、gcc 4.6.1ではコンパイルされません。昇格または昇格しない - それはクエストです
「コンパイル可能」にするには?メインで
#ifndef PROMOTE_H_INCLUDED
#define PROMOTE_H_INCLUDED
#include <boost\mpl\vector.hpp>
#include <boost\mpl\find.hpp>
#include <boost\mpl\next.hpp>
#include <boost\mpl\deref.hpp>
namespace mpl = boost::mpl;
template<class Integral>
struct Promote
{
typedef mpl::vector<char,short,int,long,long long> types;
typedef typename mpl::find<types,Integral>::type this_type;
typedef typename mpl::next<this_type>::type next_type;
typedef typename mpl::deref<next_type>::type type;
};
#endif // PROMOTE_H_INCLUDED
、その後は:これは、WindowsとUnix系システムの両方で動作します
#include <boost/mpl/vector.hpp>
:
cout << typeid(Promote<int>::type).name() ;
よく尋ねると、「正しい」スラッシュは決して覚えられません。そして、実際に今は動作します。ありがとう。 – smallB
Windowsで '/'を使うのはかなりの時間を要しますが、Unixのようなシステムでは\を使って作業することはほとんどありません。 (BTW、インクルードディレクティブの処理方法は実装定義のため、普遍的に安全ではありません) – Mat