Сообщение Re[4]: Вопрос целесообразности обобщения от 15.07.2023 12:42
Изменено 15.07.2023 12:43 Sm0ke
Re[4]: Вопрос целесообразности обобщения
Здравствуйте, sergii.p, Вы писали:
SP>Здравствуйте, Sm0ke, Вы писали:
S>>Вот бы можно было так без auto :
S>>
SP>что за язык? Такое на С++ не компилируется.
Я же написал, что мне хотелось бы, чтобы добавили в стандарт такую возможность.
Чтобы можно было использовать structural binding не через auto, а с конкретными типами)
S>>Вот тут как раз можно бы и обобщить. Такая обёртка подошла бы не только для строк. Назвать к примеру wrap, и добавить как параметр шаблона хранимый тип.
S>>Но мне кажется, что на этот случай наверняка должно быть уже готовое решение.
SP>"обобщить" это не про С++ Для целочисленных значений есть давно известная идиома в виде enum class. А для других типов каждый изгаляется как может. Есть к примеру макрос BOOST_STRONG_TYPEDEF. Но честно говоря ради пары десятков строчек заводить зависимость от буста не многим по душе. Может было бы неплохо если бы в языке расширили идиому enum class. Не знаю насколько оно реализуемо. Но вот было бы что-то такое
SP>
SP>и жизнь заиграла бы новыми красками
В php ввели enum трёх типов: общие, целочисленные и текстовые. Так что там это можно)
https://www.php.net/manual/en/language.enumerations.backed.php
SP>Здравствуйте, Sm0ke, Вы писали:
S>>Вот бы можно было так без auto :
S>>
S>>[my_map::iterator it, bool was_added] = v_map.try_emplace(v_key, v_arg);
S>>
SP>что за язык? Такое на С++ не компилируется.
Я же написал, что мне хотелось бы, чтобы добавили в стандарт такую возможность.
Чтобы можно было использовать structural binding не через auto, а с конкретными типами)
S>>Вот тут как раз можно бы и обобщить. Такая обёртка подошла бы не только для строк. Назвать к примеру wrap, и добавить как параметр шаблона хранимый тип.
S>>Но мне кажется, что на этот случай наверняка должно быть уже готовое решение.
SP>"обобщить" это не про С++ Для целочисленных значений есть давно известная идиома в виде enum class. А для других типов каждый изгаляется как может. Есть к примеру макрос BOOST_STRONG_TYPEDEF. Но честно говоря ради пары десятков строчек заводить зависимость от буста не многим по душе. Может было бы неплохо если бы в языке расширили идиому enum class. Не знаю насколько оно реализуемо. Но вот было бы что-то такое
SP>
SP>enum class ModuleName : std::string { Invalid = "" };
SP>
SP>и жизнь заиграла бы новыми красками
В php ввели enum трёх типов: общие, целочисленные и текстовые. Так что там это можно)
https://www.php.net/manual/en/language.enumerations.backed.php
Re[4]: Вопрос целесообразности обобщения
Здравствуйте, sergii.p, Вы писали:
SP>Здравствуйте, Sm0ke, Вы писали:
S>>Вот бы можно было так без auto :
S>>
SP>что за язык? Такое на С++ не компилируется.
Я же написал, что мне хотелось бы, чтобы добавили в стандарт такую возможность.
Чтобы можно было использовать Structured binding не через auto, а с конкретными типами)
S>>Вот тут как раз можно бы и обобщить. Такая обёртка подошла бы не только для строк. Назвать к примеру wrap, и добавить как параметр шаблона хранимый тип.
S>>Но мне кажется, что на этот случай наверняка должно быть уже готовое решение.
SP>"обобщить" это не про С++ Для целочисленных значений есть давно известная идиома в виде enum class. А для других типов каждый изгаляется как может. Есть к примеру макрос BOOST_STRONG_TYPEDEF. Но честно говоря ради пары десятков строчек заводить зависимость от буста не многим по душе. Может было бы неплохо если бы в языке расширили идиому enum class. Не знаю насколько оно реализуемо. Но вот было бы что-то такое
SP>
SP>и жизнь заиграла бы новыми красками
В php ввели enum трёх типов: общие, целочисленные и текстовые. Так что там это можно)
https://www.php.net/manual/en/language.enumerations.backed.php
SP>Здравствуйте, Sm0ke, Вы писали:
S>>Вот бы можно было так без auto :
S>>
S>>[my_map::iterator it, bool was_added] = v_map.try_emplace(v_key, v_arg);
S>>
SP>что за язык? Такое на С++ не компилируется.
Я же написал, что мне хотелось бы, чтобы добавили в стандарт такую возможность.
Чтобы можно было использовать Structured binding не через auto, а с конкретными типами)
S>>Вот тут как раз можно бы и обобщить. Такая обёртка подошла бы не только для строк. Назвать к примеру wrap, и добавить как параметр шаблона хранимый тип.
S>>Но мне кажется, что на этот случай наверняка должно быть уже готовое решение.
SP>"обобщить" это не про С++ Для целочисленных значений есть давно известная идиома в виде enum class. А для других типов каждый изгаляется как может. Есть к примеру макрос BOOST_STRONG_TYPEDEF. Но честно говоря ради пары десятков строчек заводить зависимость от буста не многим по душе. Может было бы неплохо если бы в языке расширили идиому enum class. Не знаю насколько оно реализуемо. Но вот было бы что-то такое
SP>
SP>enum class ModuleName : std::string { Invalid = "" };
SP>
SP>и жизнь заиграла бы новыми красками
В php ввели enum трёх типов: общие, целочисленные и текстовые. Так что там это можно)
https://www.php.net/manual/en/language.enumerations.backed.php