"Hello World"
является строковым литералом типа «массив из 12 const char
», который может быть преобразован в «указатель на const char
», который, в свою очередь, может быть преобразован в bool
. Это именно то, что происходит. Компилятор предпочитает это использовать конструктор преобразования std::string
.
Последовательность преобразования, включающая конструктор преобразования, известна как пользовательская последовательность преобразования . Преобразование из "Hello World"
в bool
является стандартной последовательностью преобразования . В стандарте указано, что стандартная последовательность преобразования всегда лучше, чем пользовательская последовательность преобразований (§13.3.3.2 / 2):
стандартная последовательность преобразования (13.3.3.1.1) представляет собой лучшая последовательность преобразования, чем пользовательская последовательность преобразования или последовательность преобразования многоточия
blockquote>. Этот анализ «лучшей последовательности преобразований» выполняется для каждого аргумента каждой жизнеспособной функции (и у вас есть только один аргумент) и лучшая функция выбирается с помощью разрешения перегрузки.
Если вы хотите убедиться, что вы выбрали версию
std::string
, вам нужно дать ейstd::string
:Output::Print(std::string("Hello World"));
добавить это в веб-конфигурацию
<system.webServer>
<rewrite>
<rules>
<rule name="Main Rule" stopProcessing="true">
<match url=".*" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="/" />
</rule>
</rules>
</rewrite>
</system.webServer>