ViennaGrid - The Vienna Grid Library
2.1.0
|
00001 #ifndef VIENNAGRID_CONFIG_ID_GENERATOR_CONFIG_HPP 00002 #define VIENNAGRID_CONFIG_ID_GENERATOR_CONFIG_HPP 00003 00004 /* ======================================================================= 00005 Copyright (c) 2011-2014, Institute for Microelectronics, 00006 Institute for Analysis and Scientific Computing, 00007 TU Wien. 00008 00009 ----------------- 00010 ViennaGrid - The Vienna Grid Library 00011 ----------------- 00012 00013 License: MIT (X11), see file LICENSE in the base directory 00014 ======================================================================= */ 00015 00016 #include "viennagrid/storage/id_generator.hpp" 00017 00022 namespace viennagrid 00023 { 00024 namespace result_of 00025 { 00027 template<typename mesh_config, typename id_generator_tag> 00028 struct id_generator_impl {}; 00029 00030 template<typename mesh_config> 00031 struct id_generator_impl<mesh_config, config::continuous_id_generator_tag> 00032 { 00033 typedef typename viennagrid::detail::result_of::continuous_id_generator_config_from_mesh_config<mesh_config>::type typemap; 00034 typedef viennagrid::continuous_id_generator<typemap> type; 00035 }; 00039 template<typename WrappedConfig> 00040 struct id_generator 00041 { 00042 typedef typename config::result_of::query<WrappedConfig, config::continuous_id_generator_tag, config::id_generator_tag>::type id_generator_tag; 00043 typedef typename id_generator_impl<WrappedConfig, id_generator_tag>::type type; 00044 }; 00045 } 00046 } 00047 00048 #endif