Вопросы с тегом «explicit»

2
Почему здесь #include <string> предотвращает ошибку переполнения стека?
Это мой пример кода: #include &lt;iostream&gt; #include &lt;string&gt; using namespace std; class MyClass { string figName; public: MyClass(const string&amp; s) { figName = s; } const string&amp; getName() const { return figName; } }; ostream&amp; operator&lt;&lt;(ostream&amp; ausgabe, const MyClass&amp; f) { ausgabe &lt;&lt; f.getName(); return ausgabe; } int main() { …

1
Может ли оператор приведения быть явным?
Когда дело доходит до конструкторов, добавление ключевого слова explicitпредотвращает создание объекта энтузиастом компилятора, когда это не было первым намерением программиста. Доступен ли такой механизм и для операторов приведения? struct Foo { operator std::string() const; }; Здесь, например, я хотел бы иметь возможность Fooпреобразовать в std::string, но я не хочу, чтобы …

3
какой случай использования для явного (bool)
В C ++ 20 введен явный (bool), который условно выбирает во время компиляции, сделан ли конструктор явным или нет. Ниже приведен пример, который я нашел здесь . struct foo { // Specify non-integral types (strings, floats, etc.) require explicit construction. template &lt;typename T&gt; explicit(!std::is_integral_v&lt;T&gt;) foo(T) {} }; foo a = …
24 c++  c++20  explicit 
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.