コードで次のように宣言しました
vector <const A> mylist;
次のコンパイルエラーが発生します-
new_allocator.h:75: error: `const _Tp* __gnu_cxx::new_allocator<_Tp>::address(const _Tp&) const \[with _Tp = const A]' and `_Tp* __gnu_cxx::new_allocator<_Tp>::address(_Tp&) const [with _Tp = const A]' cannot be overloaded
しかし、宣言した場合 -
vector <A> mylist;
私のコードはコンパイルされます。
このコンテキストでは const は許可されていませんか?
みんなの参考のためにここに私のコードをコピーしています -
#include <iostream>
#include <vector>
using namespace std;
class A
{
public:
A () {cout << "default constructor\n";}
A (int i): m(i) {cout << "non-default constructor\n";}
private:
int m;
};
int main (void)
{
vector<const A> mylist;
mylist.push_back(1);
return 0;
}