Basic Image AlgorithmS Library  2.8.0
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
ExampleImageTypes.cpp

Check if all templates instances link correctly such that the bias_Config.h settings match those instances in BIASImageBase lib.

Author
woetzel
/*
This file is part of the BIAS library (Basic ImageAlgorithmS).
Copyright (C) 2003-2009 (see file CONTACT for details)
Multimediale Systeme der Informationsverarbeitung
Institut fuer Informatik
Christian-Albrechts-Universitaet Kiel
BIAS is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 2.1 of the License, or
(at your option) any later version.
BIAS 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 Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with BIAS; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
/**
@example ExampleImageTypes.cpp
@relates Image
@brief Check if all templates instances link correctly
such that the bias_Config.h settings match those instances in BIASImageBase lib.
@ingroup g_examples
@author woetzel
*/
#include <Base/Image/Image.hh>
#include <typeinfo>
#include <string>
using namespace BIAS;
using namespace std;
// RTTI - typeid real time type information available?
#if defined(WIN32) && defined(_CPPRTTI) // real time type information available?
# define HAVE_TYPEID
#elif !defined(WIN32)
// assume having rtti on Linux for now
# define HAVE_TYPEID
#endif
/// check instantiation for T
template<class T>
void check(const string & s=string("") )
{
cout<<"Creating Image< ";
#ifdef HAVE_TYPEID
cout<<"rtti="<<typeid(T).name()<<" ";
#endif
cout<<" -- "<<s<<" >"<<endl;
}
int main(int argc, char *argv[])
{
cout<<"Checking available instances according to bias_config.h defines."<<endl;
#ifdef BUILD_IMAGE_UCHAR
check<unsigned char>("unsigned char");
#endif
#ifdef BUILD_IMAGE_FLOAT
check<float>("float");
#endif
#ifdef BUILD_IMAGE_INT
check<int>("int");
#endif
#ifdef BUILD_IMAGE_CHAR
check<char>("char");
#endif
#ifdef BUILD_IMAGE_SHORT
check<short>("short");
#endif
#ifdef BUILD_IMAGE_USHORT
check<unsigned short>("unsigned short");
#endif
#ifdef BUILD_IMAGE_UINT
check<unsigned int>("unsigned int");
#endif
#ifdef BUILD_IMAGE_DOUBLE
check<double>("double");
#endif
return 0;
}