Наиболее эффективный способ передачи временного строкового литерала в C ++ 17? - PullRequest
0 голосов
/ 27 января 2019

Я пытался искать в другом месте, но не смог найти полный ответ.

Итак, допустим, у меня есть функция или конструктор класса, который создает окно, функция, скорее всего, будет вызываться со строкойлитерал: auto myWindow = CreateWindow("Window Title");

Мне было интересно, как лучше написать декларацию функции / конструктора, поскольку кажется, что существует много опций, таких как константная строка ref, string_view или строковый литерал в стиле C.Я также задавался вопросом, может ли строка rvalue быть лучше, чем ссылка, поскольку она может быть перемещена и, следовательно, построена в стеке функций.Я хотел бы, чтобы функция CreateWindow была интерфейсом или оболочкой для API, такого как Qt, SDL или напрямую с ОС, поэтому строковый литерал, скорее всего, будет передан другой функции, так что он может быть преобразован в соответствующий тип для этой функции.,Этот вопрос в основном является для меня познавательным, поскольку он мало влияет на этот пример. Мне просто интересно, может ли кто-нибудь дать общее представление о передаче строкового литерала в современном C ++ со всеми опциями, которые меня немного смущают!

Надеюсь, я правильно следую правилам переполнения стека, если не простите, пожалуйста, это мой первый раз, лол!

class Window
{
public:
    Window(const int Width, const int Height, STRING_LITERAL Title);
    virtual ~Window();
    Window(const Window& copy) = delete;
    Window& operator=(const Window& assign) = delete;
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...