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

Основная проблема с которой я сталкиваюсь в современных плюсах -

это то, что примитивные типы не являются объектом, поэтому с ними по сути ничего нельзя сделать. Нужно вызвать шаблонную функцию в зависимости от своих условий и сделать это красиво? Не получится так сделать, придется клипать множество условий для каждого типа:
call_function<int>(); // так можно
call_function<abc == true ? int : float>(); // так нельзя

17 ответов

23 просмотра

Примитивные типы являются объектом. Для второго тоже есть решение, пусть и "некрасивое"

std::conditional

call_function<std::conditional_t<abc, int, float»

abc-cba Автор вопроса
Liber Azerate
Примитивные типы являются объектом. Для второго то...

Примитивные типы являются объектом? Хм, интересно. Почему тогда их нельзя засунуть в условный массив? :) std::conditional реализован с шаблонами. Есть технологии, где стандартную библиотеку использовать нельзя (или не принято), в таких случаях нужно писать свое решение - это очень неудобно

abc cba
Примитивные типы являются объектом? Хм, интересно....

В смысле нельзя засунуть в условный массив? 0_о

abc cba
Примитивные типы являются объектом? Хм, интересно....

https://en.cppreference.com/w/cpp/types/conditional Элементарно делается аналог. Смотри раздел "possible implementation" И да, совсем нельзя использовать стандартную библиотеку разве что в универе. Даже freestanding implementation С++ требует наличия возможности инклюдить type_traits

abc cba
Примитивные типы являются объектом? Хм, интересно....

программы на С++ в процессе выполнения только объектами и оперируют. объекты примитивных типов не исключение

abc-cba Автор вопроса
Vlad
программы на С++ в процессе выполнения только объе...

Типы все же не объекты в c++, в этом я уверен на 100%. Это совсем другая сущность

abc cba
Типы все же не объекты в c++, в этом я уверен на 1...

Хочешь я вызову метод на литерале поимитивного типа?

abc cba
Типы все же не объекты в c++, в этом я уверен на 1...

я не просто так написал «во время выполнения»

Liber Azerate
Хочешь я вызову метод на литерале поимитивного тип...

псевдодеструкторы это немного читерство

Vlad
псевдодеструкторы это немного читерство

Да, но мне очень нравится этот аргумент в спорах про объекты :)

Liber Azerate
Примитивные типы являются объектом. Для второго то...

Подождите, тип это же класс, а объект это экземпляр, не?

anton
Подождите, тип это же класс, а объект это экземпля...

Ну, думаю тут имелось в виду "объекты примитивных типов". Если нет, то я неправильно понял автора, но ни один тип, конечно, не объект, так что сомневаюсь

abc-cba Автор вопроса
Liber Azerate
Ну, думаю тут имелось в виду "объекты примитивных ...

Да, имел в виду примитивный тип. Вообще страшно писать что-то. Все намного осведомленнее меня. Боюсь написать что-то не правильно, меня же засмеют сразу же)

abc cba
Да, имел в виду примитивный тип. Вообще страшно ...

Ну, эта терминология несколько сбила с толку. Будто бывает "непримитивный" тип, который является объектом. Но для действий над типами как над объектами этих типов существует особая магия, называемая невычислимый контекст так-то

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

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

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Вот еще странный косяк, подскажите как бороться. Я git clone сделал себе всего embassy и примеры там запускаю. Всё хорошо. Но вот решил в cargo.toml зависимости не как в приме...
Lukutin R2AJP
3
Карта сайта