Back to slide -- Keyboard shortcut: 'u'  previous -- Keyboard shortcut: 'p'  next -- Keyboard shortcut: 'n'          initialization/init1.cc - Initialization and narrowing.Lecture 2 - slide 26 : 29
Program 2

// Shows initialization with and without narrowing. Initialization with {} prohibits narrowing (causes warnings).

#include <iostream>
#include <string>

void f(double dval, int ival){
  int i = dval;    // OK - narrowing conversion to int, and initialization 
  char ch = ival;  // OK - narrowing conversion to char (skipping higher order bits) and initialization 

  std::cout << "i: " << i << std::endl;     // 3
  std::cout << "ch: " << ch << std::endl;   // L 
}

void g(double dval, int ival){
  int i {dval};     // warning: narrowing conversion ...
  char ch {ival};   // warning: narrowing conversion ...

  std::cout << "i: " << i << std::endl;     // 3
  std::cout << "ch: " << ch << std::endl;   // L
}

int main(){
 f(3.1415, 1100); 
 g(3.1415, 1100); 
}