我有一個類Attribute
知道函數內參數的基類指針派生類的類型?
class Attribute {};
這是基類的一些類像
class Place : public Attribute {};
class Time : public Attribute {};
class Way: public Attribute {};
然後我有兩個initializer_lists
Place* place = new Place();
Time* time = new Time();
Way* way = new Way();
auto il1 = std::initializer_list<Attribute*>({ place, time });
auto il2 = std::initializer_list<Attribute*>({ place, way });
我的目標是要知道的元素初始化器列表,它們是第二個initializer_list
的元素的類型。這樣做的
一種方式是做這樣的事情
bool isFirstElementAPlace = (dynamic_cast<Place*>(*(l.begin())) ? true : false);
但Place*
應typeid(*(il2.begin()))
被替換,但它的返回類型的信息是Attribute*
,不Place*
左右。所以這個答案是無效的。
有沒有一種辦法一般知道派生類的基類指針的initializer_list的參數裏面的類型?
[性病:: TYPE_INFO(HTTP:// en.cppreference.com/w/cpp/types/type_info)? – Amadeus
更詳細地解釋你的問題。你想切換多個案例嗎?您希望看到的郵政編碼,可能是語法錯誤。 –