Случаи, когда используемые определенные преобразования запрещены в последовательности преобразования - PullRequest
0 голосов
/ 07 мая 2018

Глядя на это: cppreference

Я обнаружил, что с трудом понимаю этот абзац:

Определяемые пользователем преобразования (как конструкторы преобразования, так и определяемые пользователем функции преобразования) не допускаются к участию в неявной последовательности преобразования, где можно было бы применить более одного пользовательского преобразования. В частности, они запрещены, если целью преобразования является первый параметр конструктора или неявный параметр объекта пользовательской функции преобразования, и что преобразователь / пользовательское преобразование является кандидатом на

  • copy-инициализация класса с помощью пользовательского преобразования,
  • инициализация с помощью функции преобразования,
  • инициализация с помощью функции преобразования для прямой привязки ссылок,
  • инициализация конструктором, где аргумент является временным в классе copy-initialization,
  • инициализация списком-инициализация, когда список инициализаторов содержит ровно один элемент, который сам является списком инициализаторов, а цель является первым параметром конструктора класса X, а преобразование - в X или ссылку на (возможно, cv- квалифицированный) X

Полагаю, я понимаю идею, но случаи кажутся мне странными.

Ниже приведен пример, приведенный для последнего случая, так что это кажется ясным.

Но не является ли 1-я пуля частным случаем 4-й?

Аналогичным образом зачем упоминать и второе, и третье, когда последнее кажется (довольно очевидно, если я не сумасшедшим) частным случаем первого?

Это просто для того, чтобы подчеркнуть определенные случаи, или я что-то неправильно понимаю?

Также 1-й, похоже, пересекается со следующими 3 ...

Почему это не просто "кандидат на инициализацию с помощью преобразования, определенного пользователем"? Мне кажется, что это охватило бы все случаи (возможно, не обязательно это, но определенно что-то более простое, чем написано).

П.С .: простите за широту вопроса, я просто запутался, глядя на это:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...