be aware of «ConstructDoubleSmartPointer(CreateSmartPointer().Release(), CreateAnotherSmartPointer.Release());» ... ну или хотя бы убедись что ни в одном из этих двух Create... в принципе невозможно исключение
Вообще стараюсь избегать вызовов-по-месту-передачи. Особенно грабли, если важен порядок (какой из аргументов вычислится раньше).
Вообще стараюсь избегать вызовов-по-месту-передачи. Особенно грабли, если важен порядок (какой из аргументов вычислится раньше).