← Back to team overview

dolfin team mailing list archive

Re: make demo

 

My interpretation is that your gcc complains the about use of
anonymous classes:

Does it help if you change in the three places in
src/demo/pde/convection-diffusion/main.cpp where this is used?

Change from

    class : public Function
    {
        ...
    } f;

to

    class MyFunction : public Function
    {
        ...
    };

    MyFunction f;

and similarly for the two BoundaryConditions.

Does anyone know if 'class : public Foo { } foo;' is not allowed in
ANSI C++? I thought it was ok.

/Anders

On Thu, Mar 23, 2006 at 06:54:35PM +0100, Nguyen Tien Dung wrote:
> Dear all,
> 
> With gcc version 3.3.4, when I put the command: make demo from the top-level
> directory of dolfin 0.6.0, I get the following errors:
> 
> 
> main.cpp: In function `void solveConvectionDiffusion(dolfin::Mesh&,
>    dolfin::Function&)':
> main.cpp:22: error: parse error before `:' token
> main.cpp: At global scope:
> main.cpp:31: error: ISO C++ forbids declaration of `bc' with no type
> main.cpp:34: error: parse error before `:' token
> main.cpp:40: error: ISO C++ forbids declaration of `f' with no type
> main.cpp:50: error: `mesh' was not declared in this scope
> main.cpp:53: error: `velocity' was not declared in this scope
> main.cpp:54: error: `velocity' was not declared in this scope
> main.cpp:57: error: `mesh' was not declared in this scope
> main.cpp:57: error: ISO C++ forbids declaration of `assemble' with no type
> main.cpp:57: error: `int dolfin::FEM::assemble' is not a static member of `
>    class dolfin::FEM'
> main.cpp:57: error: initializer list being treated as compound expression
> main.cpp:69: error: parse error before `while'
> main.cpp:73: error: `mesh' was not declared in this scope
> main.cpp:73: error: ISO C++ forbids declaration of `applyBC' with no type
> main.cpp:73: error: `int dolfin::FEM::applyBC' is not a static member of `class
>    dolfin::FEM'
> main.cpp:73: error: initializer list being treated as compound expression
> main.cpp:76: error: syntax error before `.' token
> main.cpp:79: error: syntax error before `<<' token
> main.cpp:82: error: ISO C++ forbids declaration of `p' with no type
> main.cpp:82: error: conflicting types for `int p'
> main.cpp:68: error: previous declaration as `dolfin::Progress p'
> main.cpp:85: error: syntax error before `+=' token
> main.cpp:86: error: ISO C++ forbids declaration of `U0' with no type
> main.cpp:86: error: conflicting types for `int U0'
> main.cpp:49: error: previous declaration as `dolfin::Function U0'
> main.cpp:87: error: parse error before `}' token
> main.cpp: In function `int main()':
> main.cpp:93: error: parse error before `:' token
> main.cpp:101: error: return-statement with no value, in function declared with
>    a non-void return type
> main.cpp: At global scope:
> main.cpp:105: error: parse error before `if'
> main.cpp:118: error: ISO C++ forbids declaration of `bc' with no type
> main.cpp:118: error: redefinition of `int bc'
> main.cpp:31: error: `int bc' previously declared here
> main.cpp:122: error: conflicting types for `dolfin::Function f'
> main.cpp:40: error: previous declaration as `int f'
> main.cpp:123: error: conflicting types for `dolfin::Stokes::BilinearForm a'
> main.cpp:53: error: previous declaration as `
>    dolfin::ConvectionDiffusion::BilinearForm a'
> main.cpp:124: error: conflicting types for `dolfin::Stokes::LinearForm L'
> main.cpp:54: error: previous declaration as `
>    dolfin::ConvectionDiffusion::LinearForm L'
> main.cpp:125: error: invalid conversion from `int' to `dolfin::PDE::Type'
> main.cpp:125: error:   initializing argument 4 of `
>    dolfin::PDE::PDE(dolfin::BilinearForm&, dolfin::LinearForm&, dolfin::Mesh&,
>    dolfin::PDE::Type)'
> main.cpp:130: error: syntax error before `.' token
> main.cpp:135: error: syntax error before `<<' token
> main.cpp:136: error: syntax error before `<<' token
> main.cpp:139: error: ISO C++ forbids declaration of `solveConvectionDiffusion'
>    with no type
> main.cpp:139: error: `int solveConvectionDiffusion' redeclared as different
>    kind of symbol
> main.cpp:20: error: previous declaration of `void
>    solveConvectionDiffusion(dolfin::Mesh&, dolfin::Function&)'
> main.cpp:139: error: initializer list being treated as compound expression
> main.cpp:139: error: cannot convert `dolfin::Function' to `int' in
>    initialization
> main.cpp:140: error: parse error before `}' token
> main.cpp:124: confused by earlier errors, bailing out
> 
> 
> N.T.Dung
> 

-- 
Anders Logg
Research Assistant Professor
Toyota Technological Institute at Chicago
http://www.tti-c.org/logg/



Follow ups

References