используйте эту директиву ng2-tooltip , это очень легко реализовать в вашем приложении
stackblitz: пример
Из моей копии n2798:
5.3.4 Новый
21, Вызвана ли функция выделения прежде, чем оценить аргументы конструктора или после оценки аргументов конструктора, но прежде, чем ввести конструктора, является неуказанным. Это является также неуказанным, оценены ли аргументы конструктору, если функция выделения возвращает нулевого указателя или выходы с помощью исключения.
Читайте в сочетании с (для предотвращения неоднозначностей):
5.3.4 Новый
8 Новое выражение получает устройство хранения данных для объекта путем вызывания функции выделения (3.7.4.1). Если newexpression завершается путем выдачи исключения, он может выпустить устройство хранения данных путем вызывания функции освобождения (3.7.4.2). Если выделенный тип является нетипом массива, имя функции выделения является новым оператором, и имя функции освобождения является оператором, удаляют. Если выделенный тип является типом массива, имя функции выделения является оператором, новым [], и имя функции освобождения является оператором, удаляют []. [...]
Это в значительной степени отвечает на вопрос. Ответ является 'Нет'.
В целом компилятор C++ является бесплатным переупорядочить параметры функции, пока он не изменяет значение.
См. ответ Martin здесь: Каковы все общие неопределенные поведения, о которых должен знать программист на C++?
Существует на самом деле 2 вызова функции, продолжающиеся здесь под капотом.
Даже при том, что это - два отдельных вызова, я не полагаю, что между этими двумя операциями существует точка последовательности. Википедия, кажется, поддерживает эту точку. Поэтому Компилятор является бесплатным переупорядочить оценку, как это считает целесообразным.
Одним словом, нет.
Нет никакой точки последовательности между "новым" и "++ я"
++ я должен быть выполнен перед выделением И вызовом.
Править: (и я, возможно, ответил на немного слишком быстро),
новый X( ++ i)
Синтаксис для нового оператора wrt стандарт C++:
[::] "новый" [" (" список выражений")"] {новый идентификатор типа |" (" идентификатор типа")"} [" (" список выражений")"]
Так,
таким образом мы можем уверенный, что, ++ я буду оценен, прежде чем конструктор Object X вызывается.
Удачи..