initializer-list

    1熱度

    1回答

    上下文:嵌入式編程和初始化列表細微差別,尤其是我認爲應該調用複製構造函數的細微差別。 問題:在另一個類的初始值設定項列表中初始化一個值持有成員變量的類的實例化是否會調用複製構造函數? 下面提供了一個示例,其中TestClassCopy有一個由值保存的成員變量TestMember,而不是指針或引用。在提供的示例中,這個cppreference page似乎沒有充分說明這一點。 紅利問題:初始化程序列

    7熱度

    2回答

    在考慮問題std::initializer list from already existing std::array without enumerating each element的解決方案時,我開發了類似bolov的機制,但沒有構造對象,而只是構造器列表。我很驚訝我的解決方案不起作用,我無法弄清楚爲什麼。 #include <initializer_list> #include <iost

    14熱度

    1回答

    我對the different meanings of a curly-brace enclosed list有疑問。 我知道C++ 03不支持C++ 11的initializer_list。然而,即使沒有-std=c++11編譯器標誌,GCC 6.3 will properly initialize interpolate與此代碼: map<string, string> interpolate

    0熱度

    2回答

    我已經調試了近6個小時,現在我即將放棄。 是的,這只是一個學校項目。但我已經打開了我的副本,現在我只想知道它爲什麼不起作用。 在我的smartPointer類中,我想重載operator =。對我來說這似乎很好,應該很好去。但是,不,我的初始化器列表構造函數中的一行代碼導致編譯器錯誤。我標記爲「問題在這裏!!」。我沒有看到它與其他構造函數中的相同行不同。如果我評論它,它會編譯。但顯然它會由於未分配

    1熱度

    1回答

    我想初始化值2 d矢量,它給了我這個錯誤: IntelliSense: initialization with '{...}' is not allowed for object of type "std::vector<std::vector<int, std::allocator<int>>, std::allocator<std::vector<int, std::allocator<int

    0熱度

    1回答

    從經驗上看,C++總是比列表初始值設定項更喜歡列表初始值設定項。我的問題是如何強制一個類型的值初始化,它也支持直接列表初始化。下面是一個最小的非工作例如: #include <initializer_list> using namespace std; struct foo { foo(int) {} foo(initializer_list<char>) {} };

    0熱度

    1回答

    我有一個類將構造函數中的引腳「列表」作爲參數。 現在,這個「列表」只是一個常量數組(const unsigned int (&pins)[N])。 我想以這樣一種方式重載構造函數,即可以使用initializer_list以及(const)數組。 我可以使用單獨的類來工作,但我無法將它們合併。 我的測試類的基本結構: #include <iostream> #include <cstring>

    2熱度

    1回答

    我有一個這樣的(模板)功能: template<typename T> void func(std::initializer_list<std::vector<T>> args) { for (const auto &values : inputValues) { someOperation(values); } } 但我敢肯定,這不是我想要的。

    0熱度

    2回答

    考慮下面的代碼: #include <memory> #include <vector> class A { public: explicit A(std::vector<int> &&v) : v_(std::move(v)) {} private: std::vector<int> v_; }; int main() { // compilati

    0熱度

    1回答

    C++構造函數重載歧義我有兩個構造函數的類: myclass(std::initializer_list<int>); myclass(std::initializer_list<std::initializer_list<int>); 下面的聲明能夠正常工作 myclass obj1 = {{1,2},{3,4},{5,6}}; //a 3x2 matrix myclass obj2 =