From 439bc0ff201f38025d224ce421c86ca44f3dc063 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Tue, 28 Feb 2012 12:46:48 +0200 Subject: Test std::shared_ptr in C++11 mode and std::tr1::shared_ptr in C++98 mode --- common/relationship-query/test.hxx | 43 ++++++++++++++++++++++---------------- 1 file changed, 25 insertions(+), 18 deletions(-) (limited to 'common/relationship-query/test.hxx') diff --git a/common/relationship-query/test.hxx b/common/relationship-query/test.hxx index 5168ac4..c2e167c 100644 --- a/common/relationship-query/test.hxx +++ b/common/relationship-query/test.hxx @@ -5,21 +5,28 @@ #ifndef TEST_HXX #define TEST_HXX -#include // HAVE_TR1_MEMORY +#include // HAVE_CXX11, HAVE_TR1_MEMORY -#ifdef HAVE_TR1_MEMORY +#if defined(HAVE_CXX11) || defined(HAVE_TR1_MEMORY) #include #include -#include + +#ifdef HAVE_CXX11 +# include +using std::shared_ptr; +#else +# include +using std::tr1::shared_ptr; +#endif struct country; #pragma db value struct residence_info { - residence_info (bool p, std::tr1::shared_ptr l) + residence_info (bool p, shared_ptr l) : permanent (p), location (l) { } @@ -31,19 +38,19 @@ struct residence_info bool permanent; #pragma db not_null - std::tr1::shared_ptr location; + shared_ptr location; }; -#pragma db object pointer(std::tr1::shared_ptr) +#pragma db object pointer(shared_ptr) struct person { person (unsigned long i, const std::string& fn, const std::string& ln, unsigned short a, - std::tr1::shared_ptr r, + shared_ptr r, bool p, - std::tr1::shared_ptr n) + shared_ptr n) : id (i), first_name (fn), last_name (ln), @@ -71,24 +78,24 @@ struct person residence_info residence; #pragma db not_null - std::tr1::shared_ptr nationality; + shared_ptr nationality; - std::tr1::shared_ptr husband; // Self-join. + shared_ptr husband; // Self-join. }; struct employer; -#pragma db object pointer(std::tr1::shared_ptr) +#pragma db object pointer(shared_ptr) struct employee: person { employee (unsigned long i, const std::string& fn, const std::string& ln, unsigned short a, - std::tr1::shared_ptr r, + shared_ptr r, bool p, - std::tr1::shared_ptr n, - std::tr1::shared_ptr e) + shared_ptr n, + shared_ptr e) : person (i, fn, ln, a, r, p, n), employed_by (e) { @@ -98,10 +105,10 @@ struct employee: person { } - std::tr1::shared_ptr employed_by; + shared_ptr employed_by; }; -#pragma db object pointer(std::tr1::shared_ptr) +#pragma db object pointer(shared_ptr) struct employer { employer (const std::string& n) @@ -117,7 +124,7 @@ struct employer std::string name; }; -#pragma db object pointer(std::tr1::shared_ptr) +#pragma db object pointer(shared_ptr) struct country { country (const std::string& c, std::string const& n) @@ -135,5 +142,5 @@ struct country std::string name; }; -#endif // HAVE_TR1_MEMORY +#endif // HAVE_CXX11 || HAVE_TR1_MEMORY #endif // TEST_HXX -- cgit v1.1