Visual Studio 2010
SP1で使用しています。次のコードは、コンパイラをクラッシュさせます。
template <typename T>
class MyClass
{
public:
typedef int my_int;
const my_int foo();
};
template <typename T>
const auto MyClass<T>::foo() -> my_int
// auto MyClass<T>::foo() -> const my_int // THIS WORKS!
{
return my_int(1);
}
int main()
{
MyClass<int> m;
m.foo();
}
問題を修正するコメント行に注意してください。auto
ここで適切に使用していますか (つまりconst
、修飾子 on auto
)? 回避策は本質的にまったく同じですか (つまり、コンパイラのバグが修正されるまで安全に使用できますか)? 最後に、この問題が発生しているのは私だけですか? そうでない場合は、バグ レポートを提出します。
注:ここでの const はほとんど意味がないことを理解しています。const
実際のプロジェクトではオブジェクトへの参照を返す小さなプロジェクトでバグを再現しようとしていました。