کلیدواژه auto در C++

یکی از تفاوت‌های اصلی C++ با پایتون تعریف متغیرهاست. حداقل ایده این است که با تغییر متغیرها و نوع آن‌ها از خطاهایی جلوگیری کنیم. اما برخی از این تعریف‌ها خیلی طولانی و اذیت‌کننده هستند. به همین منظور یک کلیدواژه جدید با عنوان «auto» تعریف کرده‌اند به همراه مفاهیم مرتبط. این صفحه وب توضیحات مقدماتی خوبی در این زمینه ارائه داده است. Auto in C++

یک نکته‌ای که در این صفحه پیدا نمی‌کنیم تفاوت auto با template است. اگر به جای اینکه این متغیرها را مثلا در مثال زیر auto تعریف می‌کردیم، به صورت template تعریف می‌کردیم چه می‌شد؟ یعنی تفاوت این دو تابع چیست؟

// Function with auto as parameters.
int add(auto num1, auto num2) {
  int sum = 0;
  // Calculate sum.
  sum = num1 + num2;

  return sum;
}


// Function with template parameters
template <typename T, typename Q> int product(T x, Q y) {
  // Calculate product.
  return x * y;
}

احتمالا تفاوت این باشد که تابع اول را نمی‌توان هم با ورودی‌های صحیح و هم اعشاری صدا زد اما تابع دوم را می‌توان. و وقتی این کار را انجام بدهیم عملا کامپایلر برایمان دو تا تابع تعریف می‌کند.




جالب بود؟

نوشته‌های دیگری که شاید برای شما جالب باشند:

  • بسم الله الرحمن الرحیم
  • ترنسفورمرها، منابعی برای یادگیری‎
  • نقد کتاب «اندازه‌گیری دنیا»‎
  • درس «ماشین و ذهن»، درسی مناسب برای تدریس
  • تلاشی ابتدایی برای فهم اصولی مسئله زمان