我有一個任務來學習如何使用boost :: variant。我試圖創建一個函數,要求用戶創建一個形狀類型。然後創建所需的形狀並將其分配給變體並將其返回。我正在使用一個開關來完成這個任務,但是我得到了一個運行時錯誤和默認語句。Boost:創建一個返回變量的函數
我也得從編譯器警告:「警告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;
}
}
完美!非常感謝! –