fork download
  1. #include <vector>
  2. #include <utility>
  3. #include <string>
  4.  
  5. int main() {
  6. std::vector<int> v{1, 2, 3};
  7.  
  8. auto iterator = v.begin();
  9. auto value = *iterator;
  10.  
  11. static_assert(std::is_same<std::remove_const_t<decltype(value)>, int&>::value, "auto deduced as int");
  12.  
  13. std::vector<std::string> v1{"abc", "bce"};
  14. auto iterator1 = v1.begin();
  15. auto string_value = *iterator1;
  16.  
  17. static_assert(std::is_same<std::remove_const_t<decltype(string_value)>, std::string&>::value, "auto deduced as std::string");
  18.  
  19. return 0;
  20. }
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
prog.cpp: In function ‘int main()’:
prog.cpp:11:2: error: static assertion failed: auto deduced as int
  static_assert(std::is_same<std::remove_const_t<decltype(value)>, int&>::value, "auto deduced as int");
  ^~~~~~~~~~~~~
prog.cpp:17:2: error: static assertion failed: auto deduced as std::string
  static_assert(std::is_same<std::remove_const_t<decltype(string_value)>, std::string&>::value, "auto deduced as std::string");
  ^~~~~~~~~~~~~
stdout
Standard output is empty