Reputation: 1007
This following code:
main.cpp:
#include <iostream>
#include <list>
#include <map>
#include <string>
#include "core_table.h"
using std::cout;
using std::endl;
int main() {
core_table<int, int> t;
cout << sizeof(t) << endl;
return 0;
}
core_table.h:
#ifndef CORE_TABLE_H
#define CORE_TABLE_H
template <typename key, typename value>
class core_table {
std::list<key, value> l;
std::map<key, value> m;
public:
};
#endif // !CORE_TABLE_H
is giving me this list of errors in Visual Studio 2017. I don't know how to solve it, since this is my first time trying to structure my code in multiple files.
Severity Code Description Project File Line Suppression State
Error C2516 '_Alloc': is not a legal base class ali c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.10.24728\include\xmemory0 984
Error C2825 '_Alloc': must be a class or namespace when followed by '::' ali c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.10.24728\include\xmemory0 659
Error C2510 '_Alloc': left of '::' must be a class/struct/union ali c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.10.24728\include\xmemory0 659
Error C3646 'value_type': unknown override specifier ali c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.10.24728\include\xmemory0 659
Error C4430 missing type specifier - int assumed. Note: C++ does not support default-int ali c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.10.24728\include\xmemory0 659
Error C2825 '_Ty': must be a class or namespace when followed by '::' ali c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.10.24728\include\xmemory0 323
Error C2510 '_Ty': left of '::' must be a class/struct/union ali c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.10.24728\include\xmemory0 323
Error C2143 syntax error: missing ';' before '*' ali c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.10.24728\include\xmemory0 323
Error C4430 missing type specifier - int assumed. Note: C++ does not support default-int ali c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.10.24728\include\xmemory0 323
Error C2238 unexpected token(s) preceding ';' ali c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.10.24728\include\xmemory0 323
Error C2039 'type': is not a member of 'std::_Get_pointer_type<_Alloc,void>' ali c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.10.24728\include\xmemory0 661
Error C3646 'pointer': unknown override specifier ali c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.10.24728\include\xmemory0 662
Error C4430 missing type specifier - int assumed. Note: C++ does not support default-int ali c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.10.24728\include\xmemory0 662
Error C2039 'type': is not a member of 'std::_Get_pointer_type<_Alloc,void>' ali c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.10.24728\include\xmemory0 337
Error C3646 '_Ptrty': unknown override specifier ali c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.10.24728\include\xmemory0 337
Error C4430 missing type specifier - int assumed. Note: C++ does not support default-int ali c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.10.24728\include\xmemory0 337
Error C2825 '_Ty': must be a class or namespace when followed by '::' ali c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.10.24728\include\xmemory0 338
Error C2510 '_Ty': left of '::' must be a class/struct/union ali c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.10.24728\include\xmemory0 338
Error C3646 '_Valty': unknown override specifier ali c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.10.24728\include\xmemory0 338
Error C4430 missing type specifier - int assumed. Note: C++ does not support default-int ali c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.10.24728\include\xmemory0 338
Error C2065 '_Ptrty': undeclared identifier ali c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.10.24728\include\xmemory0 339
Error C2923 'std::pointer_traits': '_Ptrty' is not a valid template type argument for parameter '_Ty' ali c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.10.24728\include\xmemory0 339
Error C4430 missing type specifier - int assumed. Note: C++ does not support default-int ali c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.10.24728\include\xmemory0 339
Error C2146 syntax error: missing '>' before identifier '_Valty' ali c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.10.24728\include\xmemory0 339
Error C2903 'rebind': symbol is neither a class template nor a function template ali c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.10.24728\include\xmemory0 339
Error C2371 'std::_Get_const_pointer_type<_Alloc,void>::type': redefinition; different basic types ali c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.10.24728\include\xmemory0 339
Error C2039 'type': is not a member of 'std::_Get_pointer_type<_Alloc,void>' ali c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.10.24728\include\xmemory0 353
Error C3646 '_Ptrty': unknown override specifier ali c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.10.24728\include\xmemory0 353
Error C4430 missing type specifier - int assumed. Note: C++ does not support default-int ali c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.10.24728\include\xmemory0 353
Error C2065 '_Ptrty': undeclared identifier ali c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.10.24728\include\xmemory0 354
Error C2923 'std::pointer_traits': '_Ptrty' is not a valid template type argument for parameter '_Ty' ali c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.10.24728\include\xmemory0 354
Error C2903 'rebind': symbol is neither a class template nor a function template ali c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.10.24728\include\xmemory0 354
Error C2371 'std::_Get_void_pointer_type<_Alloc,void>::type': redefinition; different basic types ali c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.10.24728\include\xmemory0 354
Error C2039 'type': is not a member of 'std::_Get_pointer_type<_Alloc,void>' ali c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.10.24728\include\xmemory0 368
Error C3646 '_Ptrty': unknown override specifier ali c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.10.24728\include\xmemory0 368
Error C4430 missing type specifier - int assumed. Note: C++ does not support default-int ali c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.10.24728\include\xmemory0 368
Error C2065 '_Ptrty': undeclared identifier ali c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.10.24728\include\xmemory0 369
Error C2923 'std::pointer_traits': '_Ptrty' is not a valid template type argument for parameter '_Ty' ali c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.10.24728\include\xmemory0 369
Error C2903 'rebind': symbol is neither a class template nor a function template ali c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.10.24728\include\xmemory0 369
Error C2371 'std::_Get_const_void_pointer_type<_Alloc,void>::type': redefinition; different basic types ali c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.10.24728\include\xmemory0 369
Error C2039 'type': is not a member of 'std::_Get_pointer_type<_Alloc,void>' ali c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.10.24728\include\xmemory0 383
Error C3646 '_Ptrty': unknown override specifier ali c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.10.24728\include\xmemory0 383
Error C4430 missing type specifier - int assumed. Note: C++ does not support default-int ali c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.10.24728\include\xmemory0 383
Error C2065 '_Ptrty': undeclared identifier ali c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.10.24728\include\xmemory0 384
Error C2923 'std::pointer_traits': '_Ptrty' is not a valid template type argument for parameter '_Ty' ali c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.10.24728\include\xmemory0 384
Error C2955 'std::pointer_traits': use of class template requires template argument list ali c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.10.24728\include\xmemory0 384
Error C2371 'std::_Get_difference_type<_Ty,void>::type': redefinition; different basic types ali c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.10.24728\include\xmemory0 384
Error C3646 'allocate': unknown override specifier ali c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.10.24728\include\xmemory0 688
Error C2065 '_Al': undeclared identifier ali c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.10.24728\include\xmemory0 688
Error C2275 '_Alloc': illegal use of this type as an expression ali c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.10.24728\include\xmemory0 688
Error C2226 syntax error: unexpected type 'std::allocator_traits<_Alloc>::size_type' ali c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.10.24728\include\xmemory0 688
Error C2334 unexpected token(s) preceding '{'; skipping apparent function body ali c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.10.24728\include\xmemory0 689
Error C3646 'allocate': unknown override specifier ali c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.10.24728\include\xmemory0 693
Error C2065 '_Al': undeclared identifier ali c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.10.24728\include\xmemory0 693
Error C2275 '_Alloc': illegal use of this type as an expression ali c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.10.24728\include\xmemory0 693
Error C2226 syntax error: unexpected type 'std::allocator_traits<_Alloc>::size_type' ali c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.10.24728\include\xmemory0 693
Error C2334 unexpected token(s) preceding '{'; skipping apparent function body ali c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.10.24728\include\xmemory0 695
Error C2061 syntax error: identifier 'pointer' ali c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.10.24728\include\xmemory0 700
Error C2039 'pointer': is not a member of 'std::allocator_traits<_Alloc>' ali c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.10.24728\include\xmemory0 990
Error C3646 'pointer': unknown override specifier ali c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.10.24728\include\xmemory0 990
Error C4430 missing type specifier - int assumed. Note: C++ does not support default-int ali c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.10.24728\include\xmemory0 990
Error C2027 use of undefined type 'std::_Replace_first_parameter<_Other,_Ty>' ali c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.10.24728\include\xmemory0 469
Error C3646 'type': unknown override specifier ali c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.10.24728\include\xmemory0 469
Error C4430 missing type specifier - int assumed. Note: C++ does not support default-int ali c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.10.24728\include\xmemory0 469
Error C2027 use of undefined type 'std::_Replace_first_parameter<_Other,_Ty>' ali c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.10.24728\include\xmemory0 469
Error C2535 'std::list<key,value>::list(unsigned int,const int &)': member function already defined or declared ali c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.10.24728\include\list 923
What am I doing wrong?
Upvotes: 0
Views: 1626
Reputation: 62563
Second template argument to std::list
should be an allocator, yet you gave it something else - your value
, which is int
.
As a result, compiler is complaining because int
doesn't have any members which allocator
should expose.
On a side note, you should make your include files self-sufficient, i.e. they should include all headers they need themselves.
Upvotes: 2