I don't think this is a bug but certainly it is a problem.
Would you please consider it and let me know? I hope so. Thanks.
The following simple volcalc.cpp code compiles with no errors (and
works) in Windows Visual C++.
It simply sizes the "alldata" array later in the code.
With g++ v.4.3.2 instead I get the error reported hereby.
For some reason it does not like the fact that struct is declared
local. If you declare struct as global it will be working but I cannot
change the code so drastically.
I would thankfully appreciate any help (including tough critics to the code).
volcalc.cpp:26: error: template argument for ‘template<class _Alloc>
class std::allocator’ uses local type ‘main(int, char**)::series’
volcalc.cpp:26: error: trying to instantiate ‘template<class _Alloc>
class std::allocator’
volcalc.cpp:26: error: template argument 2 is invalid
volcalc.cpp:66: error: request for member ‘resize’ in ‘alldata’, which
is of non-class type ‘int’
int main(int argc, char *argv[])
{
struct series {
....
};
int nr;
....
vector<series> alldata; // line 26
.... // calculate nr as int.
alldata.resize(nr); // line 66
}