Здесь довольно легко написать руководство по выводу для векторного класса, чтобы не указывать тип и количество элементов, но когда дело доходит до класса Matrix, это довольно сложно. Это связано с тем, что std::initializer_list::size для переданного Initializer_list не является постоянным выражением, и я не могу вывести из него аргумент Cols.
Как можно написать такое выражение и определить тип и размеры?
Здесь довольно легко написать руководство по выводу для векторного класса, чтобы не указывать тип и количество элементов, но когда дело доходит до класса Matrix, это довольно сложно. Это связано с тем, что std::initializer_list::size для переданного Initializer_list не является постоянным выражением, и я не могу вывести из него аргумент Cols. [list] [*]Как можно написать такое выражение и определить тип и размеры? [/list] constexpr Matrix matrix { { 1, 2, 3 }, { 1, 2, 3 }, { 1, 2, 3 }, { 1, 2, 3 } };
[list] [*]Как можно написать такое выражение и вывести размеры, а типом содержащихся элементов быть элементы инициализатора, преобразованные в переданный тип ? [/list] constexpr Matrix matrix { { 1, 2, 3 }, { 1, 2, 3 }, { 1, 2, 3 }, { 1, 2, 3 } };
Вот любопытный. У меня есть класс A. У него есть элемент класса B, который я хочу инициализировать в конструкторе использования списка инициализаторов, например, SO:
Я хочу выбросить исключение из класса конструктора, когда заданный параметр выходит из диапазона. Это легко сделано изнутри тела конструктора:
class A {
int x;
enum { MAX = 10 };
Я хочу выбросить исключение из класса конструктора, когда заданный параметр выходит из диапазона. Это легко сделано изнутри тела конструктора:
class A {
int x;
enum { MAX = 10 };
Вот любопытный. У меня есть класс A. У него есть элемент класса B, который я хочу инициализировать в конструкторе использования списка инициализаторов, например, SO: