|
Asm/C++/Delphi/Py/PHP/VBA
|
||||||
Передача строки в качестве параметра07.06.2019, 16:31. Показов 8147. Ответов 66
Метки нет (Все метки)
Создаётся временный объект const std::string, конструктор которого принимает (и копирует в себя) const char*, вызывается функция test, затем объект уничтожается. Много лишних действий.Можно ли сделать так, чтобы в EXE-шнике изначально хранился объект std::string, а не создавался перед вызовом функции?p.s. В идеале – C++11, но если вариантов нет, рассмотрю что есть. p.p.s. Интересен также вариант без создания промежуточных констант, если такое возможно, потому что, понятное, дело, можно сделать const std::string text = "Hello my dear friend!\n"; и подставлять её, но это неинтересно. Да и всё равно объект создаётся динамически.
0
|
||||||
| 07.06.2019, 16:31 | |
|
Ответы с готовыми решениями:
66
Передача функции в качестве параметра Передача класса в качестве параметра Передача пути к файлу в качестве параметра через консоль |
|
Asm/C++/Delphi/Py/PHP/VBA
|
||||||||||||
| 07.06.2019, 21:12 [ТС] | ||||||||||||
![]()
0
|
||||||||||||
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
|
| 07.06.2019, 21:16 | |
|
Надеюсь, ты понимаешь, что это полная фигня? Понизь уровень уровень этих ремарков и всё.
0
|
|
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,816
|
||||
| 07.06.2019, 21:17 | ||||
|
0
|
||||
|
Asm/C++/Delphi/Py/PHP/VBA
|
|||
| 07.06.2019, 21:45 [ТС] | |||
![]() https://godbolt.org/z/XAm-S- (если это имелось в виду) Жаль, что только C++17. Но всё равно весьма неплохо
0
|
|||
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
|||||||
| 07.06.2019, 21:55 | |||||||
0
|
|||||||
|
Asm/C++/Delphi/Py/PHP/VBA
|
||
| 07.06.2019, 22:21 [ТС] | ||
|
Строку с пометкой "RUNTIME!!!" нормально проглатывает. Добавлено через 1 минуту Что, в общем-то неудивительно: https://en.cppreference.com/w/... its/length
0
|
||
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
|
| 07.06.2019, 22:23 | |
|
0
|
|
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
|
| 07.06.2019, 22:24 | |
|
Причём код вообще никак не отличается от char_traits::length
0
|
|
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,816
|
||||||||
| 07.06.2019, 22:25 | ||||||||
|
Да и std::char_traits - то как раз везде доступен. Добавлено через 39 секунд
0
|
||||||||
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
||||
| 07.06.2019, 22:27 | ||||
|
Добавлено через 53 секунды Добавлено через 53 секунды
0
|
||||
|
Asm/C++/Delphi/Py/PHP/VBA
|
||
| 07.06.2019, 22:30 [ТС] | ||
|
А вот Clang / MSVC ругаются, но не на неё, а не Test, потому что там printf. Уберите и всё будет ок
0
|
||
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
||
| 07.06.2019, 22:35 | ||
|
Убери эту строку const auto sz2 = 0; //CTest<char>::length(psz); //RUNTIME!!!! увидишь, что код стал меньше
0
|
||
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,816
|
|||
| 07.06.2019, 22:36 | |||
|
Добавлено через 48 секунд Это нормально работает, начиная с С++14.
0
|
|||
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
|||
| 07.06.2019, 22:39 | |||
|
0
|
|||
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,816
|
||
| 07.06.2019, 22:40 | ||
|
0
|
||
|
Asm/C++/Delphi/Py/PHP/VBA
|
||||||
| 07.06.2019, 22:40 [ТС] | ||||||
0
|
||||||
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
|
| 07.06.2019, 22:41 | |
|
DrOffset, Попробуй сделать, чтоб у макроса __FILE__ возвращалось только имя файла, без пути, всегда только в compile-time
0
|
|
|
Asm/C++/Delphi/Py/PHP/VBA
|
|
| 07.06.2019, 22:43 [ТС] | |
|
То, что я прислал в 11 только не проканает, т.к. там constexpr-функция должна состоять из одной инструкции.
0
|
|
| 07.06.2019, 22:43 | |
|
Помогаю со студенческими работами здесь
40
Передача строки в качестве аргумента потоку Передача функции в качестве параметра Передача файла в качестве параметра Передача функции в качестве параметра Передача CString в качестве параметра функции Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем.
. . .
|
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
|
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|