source: issm/trunk/src/c/shared/Numerics/recast.h@ 13975

Last change on this file since 13975 was 13975, checked in by Mathieu Morlighem, 12 years ago

merged trunk-jpl and trunk for revision 13974

File size: 835 bytes
Line 
1/*
2 * recast.h
3 *
4 * Created on: Jun 26, 2012
5 * Author: utke
6 */
7
8#ifndef _RECAST_H_
9#define _RECAST_H_
10
11#ifdef HAVE_CONFIG_H
12 #include <config.h>
13#else
14#error "Cannot compile with HAVE_CONFIG_H symbol! run configure first!"
15#endif
16
17#if !defined(_HAVE_ADOLC_) || defined(_WRAPPERS_)
18
19template<class To, class From>
20To reCast(const From& from) {
21 return (To)from;
22}
23
24#else
25
26template<class To, class From>
27struct ForPartialSpecialization {
28 static To reCast(const From& from ) { return (To) from;}
29};
30
31template<class To, class From>
32To reCast(const From& from) {
33 return ForPartialSpecialization<To,From>::reCast(from);
34}
35/**
36 * partial specialization
37 */
38template<class To>
39struct ForPartialSpecialization<To,adouble> {
40 static To reCast(const adouble& from ) { return (To) (from.getValue());}
41};
42
43#endif
44
45#endif
Note: See TracBrowser for help on using the repository browser.