[petsc-dev] Problem with PETSC_NULL and variadic functions

Barry Smith bsmith at mcs.anl.gov
Wed Nov 9 15:34:41 CST 2011


On Nov 9, 2011, at 3:30 PM, Matthew Knepley wrote:

> On Wed, Nov 9, 2011 at 9:28 PM, Jed Brown <jedbrown at mcs.anl.gov> wrote:
> On Wed, Nov 9, 2011 at 15:22, Matthew Knepley <knepley at gmail.com> wrote:
> So the problem is that in C++, when using a variadic function, you cannot type PETSC_NULL directly into the argument list? When would you ever
> do this? If an argument to Printf() is equal to PETSC_NULL, no problem. Its only when PETSC_NULL is passed directly. Why not prevent that in
> all PETSc variadic functions, which I think are only the prints.
> 
> include/petscdmcomposite.h:extern PetscErrorCode   DMCompositeScatter(DM,Vec,...);
> include/petscdmcomposite.h:extern PetscErrorCode   DMCompositeGather(DM,Vec,InsertMode,...);
> include/petscdmcomposite.h:extern PetscErrorCode   DMCompositeGetAccess(DM,Vec,...);
> include/petscdmcomposite.h:extern PetscErrorCode   DMCompositeRestoreAccess(DM,Vec,...);
> include/petscdmcomposite.h:extern PetscErrorCode   DMCompositeGetLocalVectors(DM,...);
> include/petscdmcomposite.h:extern PetscErrorCode   DMCompositeGetEntries(DM,...);
> include/petscdmcomposite.h:extern PetscErrorCode   DMCompositeRestoreLocalVectors(DM,...);
> 
> Yes, I am in favor of getting rid of all variadic functions and replacing them with array arguments.

   Actually with the redesign where everything is a DM that becomes possible I think. Though a little ugly.

   Barry

> 
>    Matt
> 
> -- 
> What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.
> -- Norbert Wiener




More information about the petsc-dev mailing list