MSVC10はC++ 0xドラフト標準の範囲ベースのループをサポートしていますか?MSVC10 Visual Studio 2010はC++ベースのループをサポートしています
http://en.wikipedia.org/wiki/C%2B%2B0x#Range-based_for-loop
例:
for (int& p : array) { ... }
MSVC10はC++ 0xドラフト標準の範囲ベースのループをサポートしていますか?MSVC10 Visual Studio 2010はC++ベースのループをサポートしています
http://en.wikipedia.org/wiki/C%2B%2B0x#Range-based_for-loop
例:
for (int& p : array) { ... }
号ステファンT. Lavavejのは、機能がVisual Studio 2010ののリリースサイクルで手遅れに変更された説明しています。 Visual Studioチームのブログに
コメント:http://blogs.msdn.com/b/vcblog/archive/2009/07/13/intellisense-and-browsing-with-c-0x.aspx
それはしませんが、あなたは、マクロでそれをシミュレートすることができます。これは@BenVoigtは言及して何のためのドキュメントであるよう
template<typename T>
struct false_wrapper
{
false_wrapper(const T& value) : value(value) { }
operator bool() const { return false; }
T value;
};
template<typename T>
false_wrapper<T> make_false_wrapper(const T& value)
{
return false_wrapper<T>(value);
}
template<typename T>
struct false_ref_wrapper
{
false_ref_wrapper(T& value) : value(value) { }
operator bool() const { return false; }
T& value;
private:
false_ref_wrapper& operator=(const false_ref_wrapper&);
};
template<typename T>
false_ref_wrapper<T> make_false_ref_wrapper(T& value)
{
return false_ref_wrapper<T>(value);
}
template<typename T>
void increment(T& it)
{
++it;
}
#define foreach_(VAL, VALS) \
if (auto _foreach_col = make_false_ref_wrapper(VALS)) { } else \
if (auto _foreach_cur = make_false_wrapper(std::begin(_foreach_col.value))) { } else \
if (auto _foreach_end = make_false_wrapper(std::end(_foreach_col.value))) { } else \
for (bool _foreach_flag = true; \
_foreach_flag && _foreach_cur.value != _foreach_end.value; \
_foreach_flag ? increment(_foreach_cur.value) : (void) 0) \
if ((_foreach_flag = false) == true) { } else \
for (VAL = *_foreach_cur.value; !_foreach_flag; _foreach_flag = true)
[BOOST_FOREACH](http://www.boost.org/doc/libs/1_50_0/doc/html/foreach.html)を使用してください。 – eudoxos
@eudoxos:すべてのプロジェクトがBoostを買う余裕はありません –
MSVC10は ' –
を動作するはずです(配列のint&P)、それぞれの'のようなものを先に提案を実装はルックス:[方法:それぞれのためにSTLコレクションを反復処理します](http://msdn.microsoft.com/en-us/library/ms177203.aspx)これはもともとC++/CLRコードを対象としていたようですが、CLR以外の配列では機能しないように見えます。 – crashmstr
for_each(T&t in tt)はVS2010コンパイラでのみ動作すると思いますか? – paulm