170 похожих чатов

Я вот не смог в гугл. Как инициализировать value? В

constructor list же вроде такой код не запихнешь?
#include <stdexcept>
#include <iostream>

class PositiveInt {
public:
const int value;
PositiveInt(int value) {
if (value < 0) {
throw std::underflow_error("given value < 0 for PositiveInt");
}
this->value = value;
}
~PositiveInt() = default;
};

int main() {
PositiveInt* pi = new PositiveInt(-5); // can throw underflow_error
std::cout << "Value is " << pi->value << "\n";
return 0;
}

8 ответов

4 просмотра

В списке инициализации

Miroslav-Belov Автор вопроса
Anatoly Shirokov
В списке инициализации

Так? PositiveInt(int value) : value{ if (value < 0) { throw std::underflow_error("given value < 0 for PositiveInt"); } else { value } }

: value{value < 0 ? (throw /* ... */, 0) : value} Извините)

Miroslav-Belov Автор вопроса
Sergey Anisimov
: value{value < 0 ? (throw /* ... */, 0) : value} ...

Это хорошо) Но если код более сложный, то что делать?

Miroslav Belov
Это хорошо) Но если код более сложный, то что дела...

ещё можно константный конструктор сделать и он вернёт константный объект, а остальные поля mutable......(бред)

Запихни его в функцию, а её в init list

Sergey Anisimov
: value{value < 0 ? (throw /* ... */, 0) : value} ...

Странно, что никто ещё лямбду не предложил...

Похожие вопросы

Обсуждают сегодня

я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
96
читать файл максимально быстро? странный вопрос))
zamtmn
53
How to create an OS in C? what to study?
Linus
18
тоесть, указав return eax, сгенерируется никому ненужная инструкция mov eax,eax ?
Aiwan \ (•◡•) / _bot
24
Всем доброго вечера! Хочу поделиться своим злоключением с человеком, который, как оказалось сюда тоже скидывал свое резюме. Жаль, что я вашу группу не нашел раньше… человек ки...
Роман Ахмедзянов
4
Компания Elif ищет менеджера проектов, который будет заниматься поиском и ведением новых проектов. Прежде чем приступить к работе, вам нужно пройти наш недельный курс, где вы ...
Elif
5
Привет, кто может сделать юзербота с апи? Задачи: - создавать группы - создавать каналы - задавать для созданных каналов аватарку или эмоджи, имя группы - добавлять в группы...
Lencore
11
Вопрос вроде правильно, но что надо сделать, чтоб текст был виден нормально ? ghci> TE.decodeUtf8 $ TE.encodeUtf8 "test - проба" "test - \1087\1088\1086\1073\1072"
Fedor
7
а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Кто может подсказать? Я преобрпзовал изображение в бинарное(у меня установлен трекбар который при установленном значении меняет пиксели на белый если меньше и чёрный если боль...
Константин VS
5
Карта сайта