https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69864

--- Comment #5 from mgsergio <mgsergio at yandex dot ru> ---
And what about the inconsistency with compilation error on 
int main() {
  int b{2.3};
}

In that case an error is generated.

And if I use 
template <typename T, typename U>
inline T narrowing_check(U const u)
{
  return {u};
}
I get a warning.

#include <iostream>
using namespace std;

int main() {
  int b{2.3};
  (void)b;
  return 0;
}

g++-5 -std=c++11 1.cc
1.cc: In function 'int main()':
1.cc:5:12: error: narrowing conversion of '2.2999999999999998e+0' from 'double'
to 'int' inside { } [-Wnarrowing]
   int b{2.3};
            ^

Reply via email to