![](/img/trans.png)
[英]Initialization of std::vector<unsigned int> with a list of consecutive unsigned integers
[英]Initialization list: cannot convert ‘Participant’ to ‘unsigned int’ in initialization
嘗試編譯存儲“參與者”的簡單鏈接列表時,出現一個非常奇怪的錯誤。 但是,我顯然為它提供了正確的數據,可以確認這一點,因為它在不使用初始化列表時起作用(執行賦值運算符“ =”)。
以下是相關的代碼塊:
struct Participant
{
unsigned startNumber;
std::string forename;
std::string surname;
std::string club;
float finishTime;
};
struct ListNode
{
ListNode* next;
Participant data;
};
Participant tempData {list->data}; //error occurs here.
以下是我得到的錯誤:
List.cpp:15:36: error: cannot convert ‘Participant’ to ‘unsigned int’ in initialization
更換:
Participant tempData {list->data};
附:
Participant tempData = list->data;
編譯並運行平穩。
g++ (Debian 4.7.2-5) 4.7.2
CrunchBang (Debian 7 'Wheezy')
關於什么是問題的任何想法? 任何幫助是極大的贊賞!
最好的問候,埃里克·簡森
您正在嘗試對一個Participant
進行匯總初始化,其中第一個元素是unsigned int
。 自然,您在該初始化列表中提供的一個參數與該初始化不匹配。
我想說這是一個很好的例子,說明了為什么在任何地方都無緣無故地切換到C ++ 11樣式的{}
初始化的原因。
出什么問題了:
Participant tempData = list->data;
要么:
Participant tempData(list->data);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.