Macro: mni_cxx_have_koenig_lookup

Back to the Main Page. | Download the M4 Source.

# mni_cxx_have_koenig_lookup

## Synopsis

`mni_CXX_HAVE_KOENIG_LOOKUP`

## Version

1.1 (2001/09/25) C++_Support @ ac-archive-0.5.32

## Author

Steve Robbins

## Description

Define CXX_HAVE_KOENIG_LOOKUP if the C++ compiler has argument-dependent name lookup (a.k.a. Koenig lookup).

## M4 Source Code

    AC_DEFUN([mni_CXX_HAVE_KOENIG_LOOKUP],
        [AC_CACHE_CHECK(whether the compiler implements Koenig lookup,
                        ac_cv_cxx_have_koenig_lookup,
                        [AC_LANG_PUSH(C++)
                         AC_TRY_COMPILE([
        namespace N1 {
            class C {};
            void f1(const C& c) {}
        }

        namespace N2 {
            void f2() {
                N1::C x;
                f1(x);     // resolves to N1::f1() if we have Koenig lookup,
                           // otherwise this will fail to compile.
            }
        }
        ],[],
                         ac_cv_cxx_have_koenig_lookup=yes,
                         ac_cv_cxx_have_koenig_lookup=no)
                         AC_LANG_POP])
        if test "$ac_cv_cxx_have_koenig_lookup" = yes; then
            AC_DEFINE(CXX_HAVE_KOENIG_LOOKUP,1,
                      [define to 1 if the compiler implements Koenig lookup])
        fi
    ])