boost::variantの使い方を学ぶ課題があります。作成する図形の種類をユーザーに求める関数を作成しようとしています。次に、要求された形状を作成し、それをバリアントに割り当てて返します。これを実現するためにスイッチを使用していますが、デフォルトのステートメントでランタイムエラーが発生します。
また、コンパイラから警告が表示されます。「警告C4715:'ShapeVariant':すべての制御パスが値を返すわけではありません」
ユーザーが無効な選択を入力した場合、文字列を印刷するにはどうすればよいですか?
ありがとう!
#include "boost/variant.hpp"
typedef boost::variant<Point,Line,Circle> ShapeType;
ShapeType ShapeVariant()
{
cout << "Please select a Shape Type\n1: Point\n2: Line\n3: Circle\n\nSelection: ";
int choice;
cin >> choice;
switch(choice)
{
case 1: return Point(); break;
case 2: return Line(); break;
case 3: return Circle(); break;
default: cout << "Invalid selection." << endl; break;
}
}