2005/5/9

     
 

Compiler_h

artefaktur
Modules   Namespace List   Class Hierarchy   Alphabetical List   Compound List   Namespace Members   Compound Members   Related Pages  

Compiler.h File Reference

#include Platform.h

Defines

#define ACDK_SUPPORT_ANSI_SPECIALIZATION
 ACDK_SUPPORT_ANSI_SPECIALIZATION use template <> void foo(char c) instead of template void foo(char c).

#define ACDK_HAS_ALTERNATIVE_TOKEN
 and,or,xor, etc.

#define ACDK_ALT_CALL_TEMPLATED_FUNCTION
 is defined if compiler needs explicite type in function templates
  template <class T> void foo()
  {
    T dummy;
#ifdef ACDK_ALT_CALL_TEMPLATED_FUNCTION
    anotherMemberTemplate<T>(dummy);
#else
    anotherMemberTemplate(dummy);
#endif
  }


#define ACDK_NEED_FQ_SUPER_QUALIFIER
 If reference to super class needs fully qualified name
  namspace somewhere {
  class A
  {
    void foo() { }
  };
  }
  class B : public somewhere::A
  {
    void foo()
    {
#ifdef ACDK_NEED_FQ_SUPER_QUALIFIER
      somewhere::A::foo();
#else
      A::foo();
#endif
    }
  };
.

#define ACDK_MEMBERTEMPL_TEMPLATE_TEMPLATE
 See code example.

#define template_static   static
 template_static is used to mark a template member function as static.

#define ACDK_NO_NULLPOINTER_CHECKING
 is defined if null pointer checking will be done by structured C exception or signal handling

#define ACDK_NEED_DLLEXPORT
 is defined if platform need to export shared library symbols (Windows)

#define ACDK_HAS_USER_DEFINDED_OPERATOR_DELETE
 is defined if compiler supports user defined delete operator

#define ACDK_HAS_STRUCT_TIMEVAL
 is defined if compiler include has struct timeval

#define ACDK_HAVE_LONG_LONG
 is defined if compiler has long long type

#define ACDK_DLL_EXPORT   __declspec(dllexport)
 Used to export a member/method/class from a DLL/SO.

#define ACDK_DLL_IMPORT   __declspec(dllimport)
 Used to import a member/method/class from a DLL/SO.

#define ACDK_DLL_PRIVATE
 Used to hide symbol from exported symbols (private to DLL/SO).

#define THROWS1(ex)   throw(ex, ::acdk::lang::RThrowable)
 Used to add throwing declarations to methods for example:
    void foo() THROW1(RMyException)
with will be expanded to
      void foo() throw(RMyException, ::acdk::lang::RThrowable)
On some platform this macro expands to nothing (due buggy C++ implementation.

#define THROWS2(ex1, ex2)   throw(ex1, ex2, ::acdk::lang::RThrowable)
#define THROWS3(ex1, ex2, ex3)   throw(ex1, ex2, ex3, ::acdk::lang::RThrowable)
#define THROWS4(ex1, ex2, ex3, ex4)   throw(ex1, ex2, ex3, ex4, ::acdk::lang::RThrowable)
#define ACDK_CHECK_GCC_VERSION(Major, Minor)   ((!(defined(__GNUC__)) || (__GNUC__ > Major) || ((__GNUC__ == Major) && (__GNUC_MINOR__ >= Minor))))
 is true if either not gcc or at least version Major.Minor

#define ACDK_BCC_RTHROWABLE_DEFINITION(ClassName)
#define ACDK_BCC_RTHROWABLE_DEFINITION_FQ(ns, ClassName)
#define WIN32_THREADS
#define ACDK_WIN32_THREADS
#define ACDK_POSIX_THREADS
#define ACDK_FQ_SUPER_QUALIFIER(namespace, class)   namespace class
 ACDK_FQ_SUPER_QUALIFIER is a helper macro to select super class in initialization list:
  struct A : public ::otherns::B
  {
    A() : ACDK_FQ_SUPER_QUALIFIER(::otherns::, B()) { }
  };
.


Define Documentation

#define ACDK_BCC_RTHROWABLE_DEFINITION ClassName   ) 
 

#define ACDK_BCC_RTHROWABLE_DEFINITION_FQ ns,
ClassName   ) 
 

#define ACDK_CHECK_GCC_VERSION Major,
Minor   )     ((!(defined(__GNUC__)) || (__GNUC__ > Major) || ((__GNUC__ == Major) && (__GNUC_MINOR__ >= Minor))))
 

is true if either not gcc or at least version Major.Minor

#define ACDK_POSIX_THREADS
 

#define ACDK_WIN32_THREADS
 

#define WIN32_THREADS