7#include <dune/common/exceptions.hh>
8#include <dune/grid/common/gridfactory.hh>
14 template <
class Gr
id,
class FilerReaderImp>
19 using Implementation = FilerReaderImp;
22 struct Accessor :
public Implementation
24 template <
class... Args>
25 static std::unique_ptr<Grid> createGridFromFileImpl (Args&&... args)
27 return Implementation::createGridFromFileImpl(std::forward<Args>(args)...);
30 template <
class... Args>
31 static void fillFactoryImpl (Args&&... args)
33 return Implementation::fillFactoryImpl(std::forward<Args>(args)...);
40 template <
class... Args>
43 return Accessor::createGridFromFileImpl(filename, std::forward<Args>(args)...);
48 template <
class... Args>
50 const std::string &filename,
53 Accessor::fillFactoryImpl(factory, filename, std::forward<Args>(args)...);
59 template <
class... Args>
63 GridFactory<Grid> factory;
64 fillFactory(factory, filename, std::forward<Args>(args)...);
66 return std::unique_ptr<Grid>{ factory.createGrid() };
70 template <
class... Args>
75 DUNE_THROW(NotImplemented,
76 "GridReader using a factory argument not implemented for concrete reader implementation.");
Definition: filereader.hh:16
static void fillFactoryImpl(GridFactory< Grid > &, const std::string &, Args &&...)
Definition: filereader.hh:71
static std::unique_ptr< Grid > createGridFromFile(const std::string &filename, Args &&... args)
Definition: filereader.hh:41
static void fillFactory(GridFactory< Grid > &factory, const std::string &filename, Args &&... args)
Definition: filereader.hh:49
static std::unique_ptr< Grid > createGridFromFileImpl(const std::string &filename, Args &&... args)
Definition: filereader.hh:60