fork download
  1. #include <cstdio>
  2. #include <unordered_map>
  3. #include <vector>
  4. #include <string>
  5.  
  6. using namespace std;
  7.  
  8. class A
  9. {
  10. public:
  11. A(void)
  12. {
  13. }
  14. A(const A &other)
  15. {
  16. }
  17. A &operator=(const A &other)
  18. {
  19. return *this;
  20. }
  21. A(const unordered_map<int, A> &value)
  22. {
  23. }
  24. };
  25.  
  26. int main(void)
  27. {
  28. A a;
  29. unordered_map<wstring, A> m;
  30. m.insert(std::make_pair(L"test", A()));
  31. printf("Hello, World!");
  32. return 0;
  33. }
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
In file included from /usr/include/c++/4.8/bits/move.h:57:0,
                 from /usr/include/c++/4.8/bits/stl_pair.h:59,
                 from /usr/include/c++/4.8/utility:70,
                 from /usr/include/c++/4.8/unordered_map:38,
                 from prog.cpp:2:
/usr/include/c++/4.8/type_traits: In instantiation of ‘struct std::__and_<std::is_convertible<const int&, const int>, std::is_convertible<const A&, A> >’:
/usr/include/c++/4.8/bits/stl_pair.h:121:38:   required from ‘struct std::__is_direct_constructible_impl<std::pair<const int, A>, const std::pair<const int, A>&>’
/usr/include/c++/4.8/type_traits:116:12:   required from ‘struct std::__and_<std::is_destructible<std::pair<const int, A> >, std::__is_direct_constructible_impl<std::pair<const int, A>, const std::pair<const int, A>&> >’
/usr/include/c++/4.8/type_traits:817:12:   required from ‘struct std::__is_direct_constructible_new_safe<std::pair<const int, A>, const std::pair<const int, A>&>’
/usr/include/c++/4.8/type_traits:895:12:   required from ‘struct std::__is_direct_constructible_new<std::pair<const int, A>, const std::pair<const int, A>&>’
/usr/include/c++/4.8/type_traits:903:12:   required from ‘struct std::__is_direct_constructible<std::pair<const int, A>, const std::pair<const int, A>&>’
/usr/include/c++/4.8/type_traits:944:12:   [ skipping 18 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/c++/4.8/type_traits:968:12:   required from ‘struct std::__is_copy_constructible_impl<std::pair<const std::basic_string<wchar_t>, A>, false>’
/usr/include/c++/4.8/type_traits:974:12:   required from ‘struct std::is_copy_constructible<std::pair<const std::basic_string<wchar_t>, A> >’
/usr/include/c++/4.8/bits/alloc_traits.h:540:12:   required from ‘struct std::__is_copy_insertable<std::allocator<std::pair<const std::basic_string<wchar_t>, A> > >’
/usr/include/c++/4.8/bits/alloc_traits.h:560:63:   required by substitution of ‘template<class _Alloc> using __check_copy_constructible = std::__allow_copy_cons<std::__is_copy_insertable<_Alloc>::value> [with _Alloc = std::allocator<std::pair<const std::basic_string<wchar_t>, A> >]’
/usr/include/c++/4.8/bits/unordered_map.h:97:11:   required from ‘class std::unordered_map<std::basic_string<wchar_t>, A>’
prog.cpp:29:31:   required from here
/usr/include/c++/4.8/type_traits:116:12: error: invalid use of incomplete type ‘std::conditional<true, std::is_convertible<const A&, A>, std::is_convertible<const int&, const int> >::type {aka struct std::is_convertible<const A&, A>}’
     struct __and_<_B1, _B2>
            ^
/usr/include/c++/4.8/type_traits:1317:12: error: declaration of ‘std::conditional<true, std::is_convertible<const A&, A>, std::is_convertible<const int&, const int> >::type {aka struct std::is_convertible<const A&, A>}’
     struct is_convertible
            ^
/usr/include/c++/4.8/type_traits: In substitution of ‘template<class _From1, class _To1> static decltype ((__test_aux<_To1>(declval<_From1>()), std::__sfinae_types::__one())) std::__is_convertible_helper<_From, _To, false>::__test(int) [with _From1 = _From1; _To1 = _To1; _From = const A&; _To = A] [with _From1 = const A&; _To1 = A]’:
/usr/include/c++/4.8/type_traits:1312:50:   required from ‘constexpr const bool std::__is_convertible_helper<const A&, A, false>::value’
/usr/include/c++/4.8/type_traits:1317:12:   required from ‘struct std::is_convertible<const A&, A>’
/usr/include/c++/4.8/type_traits:116:12:   required from ‘struct std::__and_<std::is_convertible<const std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >&, const std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >, std::is_convertible<const A&, A> >’
/usr/include/c++/4.8/bits/stl_pair.h:121:38:   required from ‘struct std::__is_direct_constructible_impl<std::pair<const std::basic_string<wchar_t>, A>, const std::pair<const std::basic_string<wchar_t>, A>&>’
/usr/include/c++/4.8/type_traits:116:12:   required from ‘struct std::__and_<std::is_destructible<std::pair<const std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >, A> >, std::__is_direct_constructible_impl<std::pair<const std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >, A>, const std::pair<const std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >, A>&> >’
/usr/include/c++/4.8/type_traits:817:12:   [ skipping 5 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/c++/4.8/type_traits:968:12:   required from ‘struct std::__is_copy_constructible_impl<std::pair<const std::basic_string<wchar_t>, A>, false>’
/usr/include/c++/4.8/type_traits:974:12:   required from ‘struct std::is_copy_constructible<std::pair<const std::basic_string<wchar_t>, A> >’
/usr/include/c++/4.8/bits/alloc_traits.h:540:12:   required from ‘struct std::__is_copy_insertable<std::allocator<std::pair<const std::basic_string<wchar_t>, A> > >’
/usr/include/c++/4.8/bits/alloc_traits.h:560:63:   required by substitution of ‘template<class _Alloc> using __check_copy_constructible = std::__allow_copy_cons<std::__is_copy_insertable<_Alloc>::value> [with _Alloc = std::allocator<std::pair<const std::basic_string<wchar_t>, A> >]’
/usr/include/c++/4.8/bits/unordered_map.h:97:11:   required from ‘class std::unordered_map<std::basic_string<wchar_t>, A>’
prog.cpp:29:31:   required from here
/usr/include/c++/4.8/type_traits:1302:21: error:   initializing argument 1 of ‘static void std::__is_convertible_helper<_From, _To, false>::__test_aux(_To1) [with _To1 = A; _From = const A&; _To = A]’
         static void __test_aux(_To1);
                     ^
stdout
Standard output is empty