All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Classes | Namespaces | Macros
MultTrait.h File Reference

Header file for the multiplication trait. More...

#include <cstddef>
#include <blaze/util/Complex.h>
#include <blaze/util/InvalidType.h>
#include <blaze/util/SelectType.h>
#include <blaze/util/typetraits/IsConst.h>
#include <blaze/util/typetraits/IsReference.h>
#include <blaze/util/typetraits/IsVolatile.h>
#include <blaze/util/typetraits/RemoveCV.h>
#include <blaze/util/typetraits/RemoveReference.h>

Go to the source code of this file.

Classes

struct  blaze::MultTrait< T1, T2 >
 Base template for the MultTrait class. More...
 

Namespaces

namespace  blaze
 Namespace of the Blaze C++ math library.
 

Macros

#define BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION(T1, T2, RES)
 
#define BLAZE_CREATE_COMPLEX_MULTTRAIT_SPECIALIZATION(T1)
 

Detailed Description

Header file for the multiplication trait.

Copyright (C) 2011 Klaus Iglberger - All Rights Reserved

This file is part of the Blaze library. This library is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version.

This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with a special exception for linking and compiling against the Blaze library, the so-called "runtime exception"; see the file COPYING. If not, see http://www.gnu.org/licenses/.

Macro Definition Documentation

#define BLAZE_CREATE_BUILTIN_MULTTRAIT_SPECIALIZATION (   T1,
  T2,
  RES 
)
Value:
template<> \
struct MultTrait< T1, T2 > \
{ \
typedef RES Type; \
}
#define BLAZE_CREATE_COMPLEX_MULTTRAIT_SPECIALIZATION (   T1)
Value:
template< typename T2 > \
struct MultTrait< T1, complex<T2> > \
{ \
typedef complex<T2> Type; \
}; \
template< typename T2 > \
struct MultTrait< complex<T2>, T1 > \
{ \
typedef complex<T2> Type; \
}