Запитання з тегом «aggregate-initialization»

6
Ініціалізація масиву членів в ініціалізаторі конструктора
class C { public: C() : arr({1,2,3}) //doesn't compile {} /* C() : arr{1,2,3} //doesn't compile either {} */ private: int arr[3]; }; Я вважаю, що причина полягає в тому, що масиви можна ініціалізувати лише з =синтаксису, тобто: int arr[3] = {1,3,4}; Запитання Як я можу робити те, що хочу …

3
Коли приватний конструктор не є приватним конструктором?
Скажімо, у мене є тип, і я хочу зробити його конструктор за замовчуванням приватним. Я пишу наступне: class C { C() = default; }; int main() { C c; // error: C::C() is private within this context (g++) // error: calling a private constructor of class 'C' (clang++) // error …

8
Звуження конверсій у C ++ 0x. Це лише я, чи це звучить як надзвичайна зміна?
C ++ 0x збирається зробити наступний код та подібний код неправильно сформованим, оскільки він вимагає так званого перетворення звуження a doubleна a int. int a[] = { 1.0 }; Мені цікаво, чи застосовується такий тип ініціалізації в реальному коді. Скільки коду буде порушено цією зміною? Чи багато зусиль, щоб виправити …

5
Чи можна запобігти пропущенню сукупності членів ініціалізації?
У мене є структура з багатьма членами одного типу, як це struct VariablePointers { VariablePtr active; VariablePtr wasactive; VariablePtr filename; }; Проблема полягає в тому, що якщо я забуду ініціалізувати одного з членів структури (наприклад wasactive), наприклад: VariablePointers{activePtr, filename} Компілятор не буде скаржитися на це, але у мене буде один …

4
Сховати порожній базовий клас для сукупної ініціалізації
Розглянемо наступний код: struct A { // No data members //... }; template<typename T, size_t N> struct B : A { T data[N]; } Ось так потрібно ініціалізувати B: B<int, 3> b = { {}, {1, 2, 3} }; Я хочу уникнути зайвого порожнього {} для базового класу. Існує рішення …
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.