我有一个任务是学习如何使用 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;
}
}