⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 configure.in

📁 改进版本的c++类模版库和其原代码
💻 IN
📖 第 1 页 / 共 3 页
字号:
    [ac_cv_td_bug="no"],    [AC_DEFINE(_STLP_TRIVIAL_DESTRUCTOR_BUG) ac_cv_td_bug="yes"])AC_MSG_RESULT($ac_cv_td_bug)AC_MSG_CHECKING(for explicit function template arguments)AC_TRY_LINK(    [  template <class T> class foo;       template<class T> bool operator==(const foo<T>& lhs,const foo<T>& rhs);      template <class T> class foo {	private:	  T bar;	friend bool operator== <> (const foo<T>&,const foo<T>&);     };     template<class T> bool operator==(const foo<T>& lhs,const foo<T>& rhs) {	return  lhs.bar==rhs.bar;     }],    [ foo<int> f1, f2;      int ret= (f1==f2) ],    [ _NULLARGS="<>" ac_cv_expl_fun_args="yes"],    [ AC_DEFINE(_STLP_NO_EXPLICIT_FUNCTION_TMPL_ARGS) ac_cv_expl_fun_args="no" _NULLARGS=""])AC_MSG_RESULT($ac_cv_expl_fun_args)AC_MSG_CHECKING(for template parameter baseclass matching)AC_TRY_LINK(    [struct output_iterator_tag {};     struct derived1_tag : public output_iterator_tag {};     struct derived2_tag : public derived1_tag {};     template<class T> struct output_iterator { 	public:	output_iterator() {} 	~output_iterator() {} 	friend inline int operator== $_NULLARGS (const output_iterator<T>&,                                       const output_iterator<T>&);	};     template<class T> inline int operator==(const output_iterator<T>&,                               	        const output_iterator<T>&) {       return 0;     }     template<class T> inline output_iterator_tag     iterator_category(const output_iterator<T>&) {return output_iterator_tag();}     template <class T>     struct derived_iterator : public output_iterator<T> {	public:	derived_iterator() {} 	~derived_iterator() {}	};     template<class T> inline T select_foo(T t, output_iterator_tag) { return t;}          template<class T> inline int select_foo_2(T, T,                                             output_iterator_tag) { return 0;}          template<class T> inline T tbase_foo(T pm )  { 	derived_iterator<T> di1, di2; int i( di1==di2 && pm);	return select_foo((int)1,iterator_category(derived_iterator<T>()));     }    ],    [ (void)tbase_foo((int)1); ],    [ac_cv_base_match="yes"],    [AC_DEFINE(_STLP_BASE_MATCH_BUG) ac_cv_base_match="no"])AC_MSG_RESULT($ac_cv_base_match)AC_MSG_CHECKING(for non-template parameter baseclass matching )AC_TRY_LINK(    [struct output_iterator_tag {};     struct derived1_tag : public output_iterator_tag {};     struct derived2_tag : public derived1_tag {};     struct derived3_tag : public derived2_tag {};     template<class T> struct output_iterator { 	public:	output_iterator() {} 	~output_iterator() {} 	};     template<class T> inline output_iterator_tag     iterator_category(const output_iterator<T>&) {return output_iterator_tag();}     template <class T>     struct derived_iterator : public output_iterator<T> {	public:	derived_iterator() {} 	~derived_iterator() {}	};     template<class T> inline int select_foo_2(T, T,                                             output_iterator_tag) { return 0;}          template<class T> inline int select_foo_2(T, T,                                             derived1_tag) { return 0;}          template<class T> inline void nont_base_foo(T pm )  { 	derived_iterator<T> di1, di2; 	(void)select_foo_2(di1, (const derived_iterator<T>&)di2, derived3_tag());    }    ],    [ nont_base_foo((int)1); ],    [ac_cv_nont_base_match="yes"],    [AC_DEFINE(_STLP_NONTEMPL_BASE_MATCH_BUG) ac_cv_nont_base_match="no"])AC_MSG_RESULT($ac_cv_nont_base_match)AC_MSG_CHECKING(for nested type parameters bug)AC_TRY_LINK(    [template<class T> struct nt_o { typedef int ii; inline ii foo(ii);};     template <class T> inline nt_o<T>::ii nt_o<T>::foo(ii) { return 0; }],    [],    [ac_cv_nested_type_param_bug="no"],    [AC_DEFINE(_STLP_NESTED_TYPE_PARAM_BUG) ac_cv_nested_type_param_bug="yes"])AC_MSG_RESULT($ac_cv_nested_type_param_bug)AC_MSG_CHECKING(if inherited template typedefs broken completely)AC_TRY_LINK(    [template <class Arg1, class Arg2, class Result>struct binary_function {    typedef Arg1 first_argument_type;    typedef Arg2 second_argument_type;    typedef Result result_type;};     template <class T>struct equal_to : public binary_function<T, T, int> {    int operator()(const T& x, const T& y) const { return x == y; }};template <class Predicate> class binary_negate     : public binary_function<$__TYPENAME Predicate::first_argument_type,			     $__TYPENAME Predicate::second_argument_type,                              int> {protected:    Predicate pred;public:    binary_negate(const Predicate& x = Predicate()) : pred(x) {}    int operator() (const $__TYPENAME Predicate::first_argument_type& x, 		    const $__TYPENAME Predicate::second_argument_type& y) const {	return !pred(x, y);     }};      typedef equal_to<int> eq_int;      typedef binary_negate<equal_to<int> > int_negate;      int_negate n; ],    [      (void)n(1,2);    ],    [ac_cv_typebug="no"],    [AC_DEFINE(_STLP_BASE_TYPEDEF_BUG)      AC_DEFINE(_STLP_BASE_TYPEDEF_OUTSIDE_BUG) ac_cv_typebug="yes"])AC_MSG_RESULT($ac_cv_typebug)AC_MSG_CHECKING(if inherited typedefs visible from outside)AC_TRY_COMPILE(    [template <class Arg1, class Arg2, class Result>struct binary_function {    typedef Arg1 first_argument_type;    typedef Arg1 second_argument_type;    typedef Result result_type;};     template <class T>class plus : public binary_function<T, T, T> {public:    plus() {}    plus(const T&) {}    T operator()(const T& x, const T& y) const { return x + y; };};plus<int> p;plus<int>::first_argument_type a;],    [],    [ac_cv_outside_typedef="yes"],    [AC_DEFINE(_STLP_BASE_TYPEDEF_OUTSIDE_BUG) ac_cv_outside_typedef="no"])AC_MSG_RESULT($ac_cv_outside_typedef)# fiAC_MSG_CHECKING(if private type static members initializable)AC_TRY_COMPILE(    [struct p_Class { private: struct str_ { 	int a; str_(int i) : a(i) {}}; static str_ my_int;      };     p_Class::str_ p_Class::my_int(0);      ],    [],    [ac_cv_private="yes"],    [AC_DEFINE(_STLP_UNINITIALIZABLE_PRIVATE) ac_cv_private="no"])AC_MSG_RESULT($ac_cv_private)AC_MSG_CHECKING(for const member constructor bug)AC_TRY_LINK([template <class T1, class T2>struct pair {    T1 first;    T2 second;    pair(): first(T1()), second(T2()) {}    pair(const pair<T1,T2>& o) : first(o.first), second(o.second) {}};pair< const int, const int > p;       ],    [],    [ac_cv_const_constructor_bug="no"],    [AC_DEFINE(_STLP_CONST_CONSTRUCTOR_BUG) ac_cv_const_constructor_bug="yes"])AC_MSG_RESULT($ac_cv_const_constructor_bug)AC_MSG_CHECKING(for loop inline problems)AC_TRY_COMPILE(    [inline int il_foo (int a) {       int i; for (i=0; i<a; i++) a+=a;  while (i>0) a-=3; return a; }],    [(void)il_foo(2);],    [ac_cv_inline_problems="no"],    [AC_DEFINE(_STLP_LOOP_INLINE_PROBLEMS) ac_cv_inline_problems="yes"])if test "$ac_cv_inline_problems" = no; then# check if no warnings have been issued  if `check_warning` ; then     ac_cv_inline_problems="no"  else   AC_DEFINE(_STLP_LOOP_INLINE_PROBLEMS)   ac_cv_inline_problems="yes"  fifiAC_MSG_RESULT($ac_cv_inline_problems)AC_MSG_CHECKING(if arrow operator always get instantiated)AC_TRY_LINK(    [     template <class T> struct um_foo { T* ptr; 	T* operator ->() { return &(operator*());}	T  operator *()  { return *ptr; }     };     template <class T>	int operator == ( const um_foo<T>& x, const um_foo<T>& y)	{    		return *x == *y;	}     struct um_tag { int a ; };     um_foo<um_tag> f;     um_foo<int> a;     ],    [      int b(5); a.ptr=&b;],    [ac_cv_unused_required="no"],    [AC_DEFINE(_STPL_NO_ARROW_OPERATOR) ac_cv_unused_required="yes"]    )AC_MSG_RESULT($ac_cv_unused_required)AC_MSG_CHECKING(for pointer-to-member parameter bug)AC_TRY_COMPILE(    [struct pmf_foo {	int bar() { return 0; };};template <class Class, class Result> class mem_fun_t {protected:    typedef Result (Class::*fun_type)(void);    fun_type ptr;public:    mem_fun_t() {}    mem_fun_t(fun_type p) : ptr(p) {}    Result operator()(Class* x) const { return (x->*ptr)();}};template <class Class, class Result>inline mem_fun_t <Class, Result> mem_fun(Result (Class::*ptr)(void)) {    return mem_fun_t<Class, Result>(ptr);}],    [pmf_foo pmf; (void)mem_fun(&pmf_foo::bar)(&pmf)],    [ac_cv_pmf_bug="no"],    [AC_DEFINE( _STLP_MEMBER_POINTER_PARAM_BUG) ac_cv_pmf_bug="yes"])AC_MSG_RESULT($ac_cv_pmf_bug)AC_MSG_CHECKING(if bad_alloc defined in <new>)AC_TRY_COMPILE(    [     #if !defined (_STLP_NO_NEW_STYLE_HEADERS)     #include <new>     #else     #include <new.h>     #endif     # if !defined (_STLP_HAS_NO_NAMESPACES)       using namespace $_TEST_STD;     # endif     bad_alloc badalloc_foo() { bad_alloc err; return err;}],    [(void)badalloc_foo()],    [ac_cv_bad_alloc="yes"],    [AC_DEFINE(_STLP_NO_BAD_ALLOC) ac_cv_bad_alloc="no"])AC_MSG_RESULT($ac_cv_bad_alloc)AC_MSG_CHECKING(for __type_traits automatic specialization)AC_TRY_LINK(    [template <class T> int tt_foo(const T&) {	typedef __type_traits<T> traits;	return 0;     }],    [(void)tt_foo(5)],    [AC_DEFINE(_STLP_AUTOMATIC_TYPE_TRAITS) ac_cv_type_traits="yes"],    [ac_cv_type_traits="no"])AC_MSG_RESULT($ac_cv_type_traits)# package options - exceptionsAC_MSG_RESULT(***)AC_MSG_RESULT($0: Setting implementation options...)AC_MSG_RESULT(***)if test "$ac_cv_exceptions" = yes; thenAC_ARG_ENABLE(exceptions,[--enable-exceptions Use exceptions support (default if posssible) --disable-exceptions Don't use exceptions support],[case "$enableval" in           no) AC_DEFINE(_STLP_NO_EXCEPTIONS)               AC_MSG_RESULT(Config arg --disable-exceptions : disabling exceptions by user request);;           *)  AC_MSG_RESULT(Config default: exceptions enabled)esac],[AC_MSG_RESULT(Config default: exceptions enabled) ])else AC_MSG_RESULT(Compiler restriction : no exceptions support used)fiif test "$ac_cv_namespaces" = yes; thenAC_ARG_ENABLE(relops,[--enable-relops Separate rel_ops namespace for relational operators (default if posssible)--disable-relops No separate rel_ops namespace for relational operators],[case "$enableval" in	no) AC_DEFINE(_STLP_NO_RELOPS_NAMESPACE)             AC_MSG_RESULT(Config arg --disable-relops : no std::rel_ops namespace by user request);;	 *) AC_MSG_RESULT(Config default: Separate std::rel_ops namespace for relational operators)esac],[AC_MSG_RESULT(Config default: Separate std::rel_ops namespace for relational operators)])else AC_DEFINE(_STLP_NO_RELOPS_NAMESPACE) fiif test "$ac_cv_newheaders" = yes; thenAC_ARG_ENABLE(new-style-headers,[--enable-new-style-headers Use new-style headers (default)--disable-new-style-headers Don't use new-style headers],[case "$enableval" in	no) AC_DEFINE(_STLP_NO_NEW_STYLE_HEADERS)             AC_MSG_RESULT(Config arg --disable-new-style-headers : not using new-style headers);;	 *) AC_MSG_RESULT(Config default: using new-style headers)esac],[AC_MSG_RESULT(Config default: using new-style headers)])else AC_DEFINE(_STLP_NO_NEW_STYLE_HEADERS)fiif test "$ac_cv_newstreams" = yes; thenAC_ARG_ENABLE(new-iostreams,[--enable-new-iostreams Use new iostreams (default)--disable-new-iostreams Don't use new iostreams],[case "$enableval" in	no) AC_DEFINE(_STLP_NO_NEW_IOSTREAMS)             AC_MSG_RESULT(Config arg --disable-new-iostreams : not using new iostreams);;	 *) AC_MSG_RESULT(Config default: using new iostreams)esac],[AC_MSG_RESULT(Config default: using new iostreams)])else  AC_DEFINE(_STLP_NO_NEW_IOSTREAMS)fiAC_ARG_ENABLE(sgi-allocators,[--enable-sgi-allocators : set default parameter to SGI-style default alloc, not allocator<T> --disable-sgi-allocators : use allocator<T> if possible],[case "$enableval" in	  yes ) AC_MSG_RESULT(Config arg  --enable-sgi-allocators : SGI-style alloc as default allocator)                 AC_DEFINE(_STLP_USE_RAW_SGI_ALLOCATORS);;	    * ) AC_MSG_RESULT(Config default: using allocator<T> as default allocator if possible )esac],[ AC_MSG_RESULT(Config default: using allocator<T> as default allocator if possible)])AC_ARG_ENABLE(malloc,[--enable-malloc : set default alloc to malloc-based allocator ( malloc_alloc_template<instance_no>, alloc.h )--disable-malloc : choose (default) sgi node allocator (__alloc<threads,no>  alloc.h )],[case "$enableval" in	  yes ) AC_MSG_RESULT(Config arg  --enable-malloc : setting malloc_alloc as default alloc)                 AC_DEFINE(_STLP_USE_MALLOC);;	    * ) AC_MSG_RESULT(Config default: not using malloc_alloc as default alloc)esac],[ AC_MSG_RESULT(Config default: not using malloc_alloc as default alloc)])AC_ARG_ENABLE(newalloc,[--enable-newalloc : set default alloc to new-based allocator ( new_alloc, alloc.h )--disable-newalloc : choose (default) sgi allocator (__alloc<threads,no>  alloc.h )],[case "$enableval" in	  yes ) AC_MSG_RESULT(Config arg  --enable-newalloc : setting new_alloc as default alloc)                 AC_DEFINE(_STLP_USE_NEWALLOC);;	    * )                AC_MSG_RESULT(Config default: not using new_alloc as default alloc)esac],[ AC_MSG_RESULT(Config default: not using new_alloc as default alloc)])AC_ARG_ENABLE(defalloc,[--enable-defalloc : make HP-style defalloc.h included in alloc.h )--disable-defalloc : leave defalloc.h alone],[case "$enableval" in	  no ) AC_MSG_RESULT(Config arg --disable-defalloc : not including HP-style defalloc.h into alloc.h);;	  * ) AC_MSG_RESULT(Config default : including HP-style defalloc.h into alloc.h)                 AC_DEFINE(_STLP_USE_DEFALLOC)esac],[          AC_MSG_RESULT(Config default : not including HP-style defalloc.h into alloc.h)])AC_ARG_ENABLE(debugalloc,[--enable-debugalloc : use debug versions of allocators--disable-debugalloc : not using debug allocators],[case "$enableval" in	  yes ) AC_MSG_RESULT(Config arg --enable-debugalloc : use debug versions of allocators )                 AC_DEFINE(_STLP_DEBUG_ALLOC);;	  * )          AC_MSG_RESULT(Config default : not using debug allocators)esac],[          AC_MSG_RESULT(Config default : not using debug allocators)])AC_ARG_ENABLE(abbrevs,[--enable-abbrevs : use abbreviated class names internally for linker benefit (don't affect interface)--disable-abbrevs : don't use abbreviated names],[case "$enableval" in	  yes ) AC_MSG_RESULT(Config arg --enable-abbrevs : using abbreviated class names internally)                 AC_DEFINE(_STLP_USE_ABBREVS);;	  * )          AC_MSG_RESULT(Config default : not using abbreviated class names internally)esac],[          AC_MSG_RESULT(Config default : not using abbreviated class names internally)])AC_DEFINE(__AUTO_CONFIGURED)AC_MSG_RESULT(***)AC_MSG_RESULT($0: setting up headers...)AC_MSG_RESULT(***)AC_OUTPUT(stlconf.h)AC_MSG_RESULT(***)AC_MSG_RESULT($0: STLport configured for use with \"${CXX}\" compiler, CXXFLAGS used: \"${CXXFLAGS}\".)AC_MSG_RESULT($0: To restore original settings - run \"./unconfigure\" or copy stlconf.h.in to stlconf.h.)AC_MSG_RESULT(***)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -