۱) تبدیل ضمنی در حالتهای زیر اتفاق میافته
- یک عبارت موقع فراخوانی یک تابع به کار رفته باشه که نتیجهش به طور طبیعی از نوع
T2
هست در صورتی که آرگومان تابع از نوع T1
اعلان شده باشه
- یک عبارت در یک عملگر به کار رفته باشه که نتیجهش به طور طبیعی از نوع
T2
هست در صورتی که عملوند مورد استفاده از نوع T1
اعلان شده باشه.
- برگرداندن یک شی از نوع
T2
از تابع یا مقداردهی اولیه.
- استفاده از شی از نوع
T2
در عبارت یک دستور switch
.
- استفاده از شی از نوع
T2
در عبارت یک دستور شرطی if
یا حلقه.
برای این که خروجی عبارتی که یک شی از نوع T2
تولید کرده به شی از نوع T1
تبدیل بشه شاید نشه با یه گام این تبدیل رو انجام داد. بلکه شاید لازم باشه چند گام اتفاق بیافته. مثلاً T2
به T3
و سپس T3
به T1
تبدیل بشه. به این تبدیلات پشت سر هم دنبالهی تبدیلات میگن.
سه نوع دنباله تبدیل کلی وجود داره که به ترتیب توصط کامپایلر مورد بررسی قرار میگیرن
- دنباله تبدیلات استاندارد
- دنباله تبدیلات تعریف شده توسط کاربر
- دنباله تبدیلات حذفی (ellipsis)
توضیح همهی اینها یه مقالهی کامل میشه. با این ترتیبی که گفته شد میتونیم بقیهشو با جستجو در منابع پیدا کنیم.
هیچ پژوهش انسانی نمیتواند ادعای علمی بودن داشته باشد، مگر اینکه از برهان ریاضی برخوردار باشد (لئوناردو داوینچی)