Вам нужно будет изменить код - но сначала вам нужно будет точно решить, что вы хотите, чтобы код делал.
Результат преобразования double
в версию popular_type
это typedef'ed как double
хорошо определено.В конце концов, они действительно одного типа.Но каков результат преобразования double
в структуру?Учитывая double
со значением 1,25, какими должны быть значения orig_field
и additional_field
в результирующей структуре?
Как только вы определились с семантикой, вы можете написать функцию (возможно,встроенный) или, возможно, макрос, который делает преобразование для вас.Вам все равно нужно будет изменить каждое преобразование, чтобы оно вызывало вашу новую функцию или макрос (и, возможно, некоторые назначения без приведения, поскольку при текущем определении приведение не требуется, как указывает @Sam Hoice).К счастью, компилятор скажет вам, где это нужно сделать.