$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r77071 - in trunk/libs: scope_exit/test utility/identity_type/test
From: lorcaminiti_at_[hidden]
Date: 2012-02-18 14:29:37
Author: lcaminiti
Date: 2012-02-18 14:29:35 EST (Sat, 18 Feb 2012)
New Revision: 77071
URL: http://svn.boost.org/trac/boost/changeset/77071
Log:
Updated ScopeExit "world" tests making person a struct instead of a class.
Added a code comment to Utility/IdentityType tmp_assert test.
Text files modified: 
   trunk/libs/scope_exit/test/world.cpp                    |     9 +++++--                                 
   trunk/libs/scope_exit/test/world_checkpoint.cpp         |    45 +++++++++++++++++---------------------- 
   trunk/libs/scope_exit/test/world_checkpoint_all.cpp     |    45 +++++++++++++++++---------------------- 
   trunk/libs/scope_exit/test/world_checkpoint_all_seq.cpp |    45 +++++++++++++++++---------------------- 
   trunk/libs/scope_exit/test/world_checkpoint_seq.cpp     |    44 +++++++++++++++++---------------------  
   trunk/libs/scope_exit/test/world_lambda.cpp             |     2                                         
   trunk/libs/scope_exit/test/world_seq.cpp                |     9 +++++--                                 
   trunk/libs/scope_exit/test/world_this.cpp               |     9 +++++--                                 
   trunk/libs/scope_exit/test/world_this_seq.cpp           |     9 +++++--                                 
   trunk/libs/scope_exit/test/world_tpl.cpp                |     9 +++++--                                 
   trunk/libs/scope_exit/test/world_tpl_seq.cpp            |     9 +++++--                                 
   trunk/libs/scope_exit/test/world_void.cpp               |     2                                         
   trunk/libs/utility/identity_type/test/tmp_assert.cpp    |     8 ++++--                                  
   13 files changed, 123 insertions(+), 122 deletions(-)
Modified: trunk/libs/scope_exit/test/world.cpp
==============================================================================
--- trunk/libs/scope_exit/test/world.cpp	(original)
+++ trunk/libs/scope_exit/test/world.cpp	2012-02-18 14:29:35 EST (Sat, 18 Feb 2012)
@@ -17,14 +17,17 @@
 #include <boost/test/unit_test.hpp>
 #include <vector>
 
-struct person; BOOST_TYPEOF_REGISTER_TYPE(person)
 struct person {};
+BOOST_TYPEOF_REGISTER_TYPE(person)
 
-struct world; BOOST_TYPEOF_REGISTER_TYPE(world)
 struct world {
     void add_person(person const& a_person);
+    size_t population(void) const { return persons_.size(); }
+
+private:
     std::vector<person> persons_;
 };
+BOOST_TYPEOF_REGISTER_TYPE(world)
 
 //[world
 void world::add_person(person const& a_person) {
@@ -46,7 +49,7 @@
     world w;
     person p;
     w.add_person(p);
-    BOOST_CHECK( w.persons_.size() == 1 );
+    BOOST_CHECK( w.population() == 1 );
 }
 
 #else
Modified: trunk/libs/scope_exit/test/world_checkpoint.cpp
==============================================================================
--- trunk/libs/scope_exit/test/world_checkpoint.cpp	(original)
+++ trunk/libs/scope_exit/test/world_checkpoint.cpp	2012-02-18 14:29:35 EST (Sat, 18 Feb 2012)
@@ -20,30 +20,23 @@
 #include <iostream>
 #include <sstream>
 
-class person; BOOST_TYPEOF_REGISTER_TYPE(person)
-class person {
-    friend class world;
-public:
+struct person {
     typedef unsigned int id_t;
     typedef unsigned int evolution_t;
+    
+    id_t id;
+    evolution_t evolution;
 
-    person(void) : id_(0), evolution_(0) {}
+    person(void) : id(0), evolution(0) {}
 
     friend std::ostream& operator<<(std::ostream& o, person const& p) {
-        return o << "person(" << p.id_ << ", " << p.evolution_ << ")";
+        return o << "person(" << p.id << ", " << p.evolution << ")";
     }
-private:
-    id_t id_;
-    evolution_t evolution_;
 };
+BOOST_TYPEOF_REGISTER_TYPE(person)
 
-class world; BOOST_TYPEOF_REGISTER_TYPE(world)
-class world {
-public:
-    typedef unsigned int id_t;
-
+struct world {
     world(void) : next_id_(1) {}
-
     void add_person(person const& a_person);
 
     friend std::ostream& operator<<(std::ostream& o, world const& w) {
@@ -53,10 +46,12 @@
         }
         return o << "})";
     }
+
 private:
-    id_t next_id_;
+    person::id_t next_id_;
     std::vector<person> persons_;
 };
+BOOST_TYPEOF_REGISTER_TYPE(world)
 
 //[world_checkpoint
 void world::add_person(person const& a_person) {
@@ -64,28 +59,28 @@
 
     // This block must be no-throw.
     person& p = persons_.back();
-    person::evolution_t checkpoint = p.evolution_;
+    person::evolution_t checkpoint = p.evolution;
     BOOST_SCOPE_EXIT(checkpoint, &p, &persons_) {
-        if(checkpoint == p.evolution_) persons_.pop_back();
+        if(checkpoint == p.evolution) persons_.pop_back();
     } BOOST_SCOPE_EXIT_END
 
     // ...
 
-    checkpoint = ++p.evolution_;
+    checkpoint = ++p.evolution;
 
     // Assign new identifier to the person.
-    world::id_t const prev_id = p.id_;
-    p.id_ = next_id_++;
+    person::id_t const prev_id = p.id;
+    p.id = next_id_++;
     BOOST_SCOPE_EXIT(checkpoint, &p, &next_id_, prev_id) {
-        if(checkpoint == p.evolution_) {
-            next_id_ = p.id_;
-            p.id_ = prev_id;
+        if(checkpoint == p.evolution) {
+            next_id_ = p.id;
+            p.id = prev_id;
         }
     } BOOST_SCOPE_EXIT_END
 
     // ...
 
-    checkpoint = ++p.evolution_;
+    checkpoint = ++p.evolution;
 }
 //]
 
Modified: trunk/libs/scope_exit/test/world_checkpoint_all.cpp
==============================================================================
--- trunk/libs/scope_exit/test/world_checkpoint_all.cpp	(original)
+++ trunk/libs/scope_exit/test/world_checkpoint_all.cpp	2012-02-18 14:29:35 EST (Sat, 18 Feb 2012)
@@ -20,30 +20,23 @@
 #include <iostream>
 #include <sstream>
 
-class person; BOOST_TYPEOF_REGISTER_TYPE(person)
-class person {
-    friend class world;
-public:
+struct person {
     typedef unsigned int id_t;
     typedef unsigned int evolution_t;
+    
+    id_t id;
+    evolution_t evolution;
 
-    person(void) : id_(0), evolution_(0) {}
+    person(void) : id(0), evolution(0) {}
 
     friend std::ostream& operator<<(std::ostream& o, person const& p) {
-        return o << "person(" << p.id_ << ", " << p.evolution_ << ")";
+        return o << "person(" << p.id << ", " << p.evolution << ")";
     }
-private:
-    id_t id_;
-    evolution_t evolution_;
 };
+BOOST_TYPEOF_REGISTER_TYPE(person)
 
-class world; BOOST_TYPEOF_REGISTER_TYPE(world)
-class world {
-public:
-    typedef unsigned int id_t;
-
+struct world {
     world(void) : next_id_(1) {}
-
     void add_person(person const& a_person);
 
     friend std::ostream& operator<<(std::ostream& o, world const& w) {
@@ -53,10 +46,12 @@
         }
         return o << "})";
     }
+
 private:
-    id_t next_id_;
+    person::id_t next_id_;
     std::vector<person> persons_;
 };
+BOOST_TYPEOF_REGISTER_TYPE(world)
 
 //[world_checkpoint_all
 void world::add_person(person const& a_person) {
@@ -64,28 +59,28 @@
 
     // This block must be no-throw.
     person& p = persons_.back();
-    person::evolution_t checkpoint = p.evolution_;
+    person::evolution_t checkpoint = p.evolution;
     BOOST_SCOPE_EXIT_ALL(&, checkpoint, this_) { // Capture all by ref (C++11).
-        if(checkpoint == p.evolution_) this_->persons_.pop_back();
+        if(checkpoint == p.evolution) this_->persons_.pop_back();
     } BOOST_SCOPE_EXIT_END
 
     // ...
 
-    checkpoint = ++p.evolution_;
+    checkpoint = ++p.evolution;
 
     // Assign new identifier to the person.
-    world::id_t const prev_id = p.id_;
-    p.id_ = next_id_++;
+    person::id_t const prev_id = p.id;
+    p.id = next_id_++;
     BOOST_SCOPE_EXIT_ALL(=, &p, this) { // Capture all by value, `this` (C++11).
-        if(checkpoint == p.evolution_) {
-            this->next_id_ = p.id_;
-            p.id_ = prev_id;
+        if(checkpoint == p.evolution) {
+            this->next_id_ = p.id;
+            p.id = prev_id;
         }
     }; // Use `;` instead of `SCOPE_EXIT_END` (C++11).
 
     // ...
 
-    checkpoint = ++p.evolution_;
+    checkpoint = ++p.evolution;
 }
 //]
 
Modified: trunk/libs/scope_exit/test/world_checkpoint_all_seq.cpp
==============================================================================
--- trunk/libs/scope_exit/test/world_checkpoint_all_seq.cpp	(original)
+++ trunk/libs/scope_exit/test/world_checkpoint_all_seq.cpp	2012-02-18 14:29:35 EST (Sat, 18 Feb 2012)
@@ -20,30 +20,23 @@
 #include <iostream>
 #include <sstream>
 
-class person; BOOST_TYPEOF_REGISTER_TYPE(person)
-class person {
-    friend class world;
-public:
+struct person {
     typedef unsigned int id_t;
     typedef unsigned int evolution_t;
 
-    person(void) : id_(0), evolution_(0) {}
+    id_t id;
+    evolution_t evolution;
+
+    person(void) : id(0), evolution(0) {}
 
     friend std::ostream& operator<<(std::ostream& o, person const& p) {
-        return o << "person(" << p.id_ << ", " << p.evolution_ << ")";
+        return o << "person(" << p.id << ", " << p.evolution << ")";
     }
-private:
-    id_t id_;
-    evolution_t evolution_;
 };
+BOOST_TYPEOF_REGISTER_TYPE(person)
 
-class world; BOOST_TYPEOF_REGISTER_TYPE(world)
-class world {
-public:
-    typedef unsigned int id_t;
-
+struct world {
     world(void) : next_id_(1) {}
-
     void add_person(person const& a_person);
 
     friend std::ostream& operator<<(std::ostream& o, world const& w) {
@@ -53,10 +46,12 @@
         }
         return o << "})";
     }
+
 private:
-    id_t next_id_;
+    person::id_t next_id_;
     std::vector<person> persons_;
 };
+BOOST_TYPEOF_REGISTER_TYPE(world)
 
 //[world_checkpoint_all_seq
 void world::add_person(person const& a_person) {
@@ -64,28 +59,28 @@
 
     // This block must be no-throw.
     person& p = persons_.back();
-    person::evolution_t checkpoint = p.evolution_;
+    person::evolution_t checkpoint = p.evolution;
     BOOST_SCOPE_EXIT_ALL( (&) (checkpoint) (this_) ) {
-        if(checkpoint == p.evolution_) this_->persons_.pop_back();
+        if(checkpoint == p.evolution) this_->persons_.pop_back();
     } BOOST_SCOPE_EXIT_END
 
     // ...
 
-    checkpoint = ++p.evolution_;
+    checkpoint = ++p.evolution;
 
     // Assign new identifier to the person.
-    world::id_t const prev_id = p.id_;
-    p.id_ = next_id_++;
+    person::id_t const prev_id = p.id;
+    p.id = next_id_++;
     BOOST_SCOPE_EXIT_ALL( (=) (&p) (this) ) {
-        if(checkpoint == p.evolution_) {
-            this->next_id_ = p.id_;
-            p.id_ = prev_id;
+        if(checkpoint == p.evolution) {
+            this->next_id_ = p.id;
+            p.id = prev_id;
         }
     };
 
     // ...
 
-    checkpoint = ++p.evolution_;
+    checkpoint = ++p.evolution;
 }
 //]
 
Modified: trunk/libs/scope_exit/test/world_checkpoint_seq.cpp
==============================================================================
--- trunk/libs/scope_exit/test/world_checkpoint_seq.cpp	(original)
+++ trunk/libs/scope_exit/test/world_checkpoint_seq.cpp	2012-02-18 14:29:35 EST (Sat, 18 Feb 2012)
@@ -17,28 +17,22 @@
 #include <iostream>
 #include <sstream>
 
-class person; BOOST_TYPEOF_REGISTER_TYPE(person)
-class person {
-    friend class world;
-public:
+struct person {
     typedef unsigned int id_t;
     typedef unsigned int evolution_t;
 
-    person(void) : id_(0), evolution_(0) {}
+    id_t id;
+    evolution_t evolution;
+
+    person(void) : id(0), evolution(0) {}
 
     friend std::ostream& operator<<(std::ostream& o, person const& p) {
-        return o << "person(" << p.id_ << ", " << p.evolution_ << ")";
+        return o << "person(" << p.id << ", " << p.evolution << ")";
     }
-private:
-    id_t id_;
-    evolution_t evolution_;
 };
+BOOST_TYPEOF_REGISTER_TYPE(person)
 
-class world; BOOST_TYPEOF_REGISTER_TYPE(world)
-class world {
-public:
-    typedef unsigned int id_t;
-
+struct world {
     world(void) : next_id_(1) {}
 
     void add_person(person const& a_person);
@@ -50,10 +44,12 @@
         }
         return o << "})";
     }
+
 private:
-    id_t next_id_;
+    person::id_t next_id_;
     std::vector<person> persons_;
 };
+BOOST_TYPEOF_REGISTER_TYPE(world)
 
 //[world_checkpoint_seq
 void world::add_person(person const& a_person) {
@@ -61,28 +57,28 @@
 
     // This block must be no-throw.
     person& p = persons_.back();
-    person::evolution_t checkpoint = p.evolution_;
+    person::evolution_t checkpoint = p.evolution;
     BOOST_SCOPE_EXIT( (checkpoint) (&p) (&persons_) ) { // Sequence, not commas.
-        if(checkpoint == p.evolution_) persons_.pop_back();
+        if(checkpoint == p.evolution) persons_.pop_back();
     } BOOST_SCOPE_EXIT_END
 
     // ...
 
-    checkpoint = ++p.evolution_;
+    checkpoint = ++p.evolution;
 
     // Assign new identifier to the person.
-    world::id_t const prev_id = p.id_;
-    p.id_ = next_id_++;
+    person::id_t const prev_id = p.id;
+    p.id = next_id_++;
     BOOST_SCOPE_EXIT( (checkpoint) (&p) (&next_id_) (prev_id) ) {
-        if(checkpoint == p.evolution_) {
-            next_id_ = p.id_;
-            p.id_ = prev_id;
+        if(checkpoint == p.evolution) {
+            next_id_ = p.id;
+            p.id = prev_id;
         }
     } BOOST_SCOPE_EXIT_END
 
     // ...
 
-    checkpoint = ++p.evolution_;
+    checkpoint = ++p.evolution;
 }
 //]
 
Modified: trunk/libs/scope_exit/test/world_lambda.cpp
==============================================================================
--- trunk/libs/scope_exit/test/world_lambda.cpp	(original)
+++ trunk/libs/scope_exit/test/world_lambda.cpp	2012-02-18 14:29:35 EST (Sat, 18 Feb 2012)
@@ -34,7 +34,7 @@
     bool commit = false;
 
     persons_.push_back(a_person);
-    scope_exit on_exit1([&commit, &persons_]() { // Use C++11 lambda.
+    scope_exit on_exit1([&commit, &persons_](void) { // Use C++11 lambda.
         if(!commit) persons_.pop_back();
     });
 
Modified: trunk/libs/scope_exit/test/world_seq.cpp
==============================================================================
--- trunk/libs/scope_exit/test/world_seq.cpp	(original)
+++ trunk/libs/scope_exit/test/world_seq.cpp	2012-02-18 14:29:35 EST (Sat, 18 Feb 2012)
@@ -14,14 +14,17 @@
 #include <boost/test/unit_test.hpp>
 #include <vector>
 
-struct person; BOOST_TYPEOF_REGISTER_TYPE(person)
 struct person {};
+BOOST_TYPEOF_REGISTER_TYPE(person)
 
-struct world; BOOST_TYPEOF_REGISTER_TYPE(world)
 struct world {
     void add_person(person const& a_person);
+    size_t population(void) const { return persons_.size(); }
+
+private:
     std::vector<person> persons_;
 };
+BOOST_TYPEOF_REGISTER_TYPE(world)
 
 //[world_seq
 void world::add_person(person const& a_person) {
@@ -42,6 +45,6 @@
     world w;
     person p;
     w.add_person(p);
-    BOOST_CHECK( w.persons_.size() == 1 );
+    BOOST_CHECK( w.population() == 1 );
 }
 
Modified: trunk/libs/scope_exit/test/world_this.cpp
==============================================================================
--- trunk/libs/scope_exit/test/world_this.cpp	(original)
+++ trunk/libs/scope_exit/test/world_this.cpp	2012-02-18 14:29:35 EST (Sat, 18 Feb 2012)
@@ -18,14 +18,17 @@
 #include <boost/config.hpp>
 #include <vector>
 
-struct person; BOOST_TYPEOF_REGISTER_TYPE(person)
 struct person {};
+BOOST_TYPEOF_REGISTER_TYPE(person)
 
-struct world; BOOST_TYPEOF_REGISTER_TYPE(world)
 struct world {
     void add_person(person const& a_person);
+    size_t population(void) const { return persons_.size(); }
+
+private:
     std::vector<person> persons_;
 };
+BOOST_TYPEOF_REGISTER_TYPE(world)
 
 void world::add_person(person const& a_person) {
     bool commit = false;
@@ -54,7 +57,7 @@
     world w;
     person p;
     w.add_person(p);
-    BOOST_CHECK( w.persons_.size() == 1 );
+    BOOST_CHECK( w.population() == 1 );
 }
 
 #else
Modified: trunk/libs/scope_exit/test/world_this_seq.cpp
==============================================================================
--- trunk/libs/scope_exit/test/world_this_seq.cpp	(original)
+++ trunk/libs/scope_exit/test/world_this_seq.cpp	2012-02-18 14:29:35 EST (Sat, 18 Feb 2012)
@@ -15,14 +15,17 @@
 #include <boost/config.hpp>
 #include <vector>
 
-struct person; BOOST_TYPEOF_REGISTER_TYPE(person)
 struct person {};
+BOOST_TYPEOF_REGISTER_TYPE(person)
 
-struct world; BOOST_TYPEOF_REGISTER_TYPE(world)
 struct world {
     void add_person(person const& a_person);
+    size_t population(void) const { return persons_.size(); }
+
+private:
     std::vector<person> persons_;
 };
+BOOST_TYPEOF_REGISTER_TYPE(world)
 
 void world::add_person(person const& a_person) {
     bool commit = false;
@@ -51,6 +54,6 @@
     world w;
     person p;
     w.add_person(p);
-    BOOST_CHECK( w.persons_.size() == 1 );
+    BOOST_CHECK( w.population() == 1 );
 }
 
Modified: trunk/libs/scope_exit/test/world_tpl.cpp
==============================================================================
--- trunk/libs/scope_exit/test/world_tpl.cpp	(original)
+++ trunk/libs/scope_exit/test/world_tpl.cpp	2012-02-18 14:29:35 EST (Sat, 18 Feb 2012)
@@ -17,15 +17,18 @@
 #include <boost/test/unit_test.hpp>
 #include <vector>
 
-struct person; BOOST_TYPEOF_REGISTER_TYPE(peron)
 struct person {};
+BOOST_TYPEOF_REGISTER_TYPE(peron)
 
-template<typename Person> struct world; BOOST_TYPEOF_REGISTER_TEMPLATE(world, 1)
 template<typename Person>
 struct world {
     void add_person(Person const& a_person);
+    size_t population(void) const { return persons_.size(); }
+
+private:
     std::vector<Person> persons_;
 };
+BOOST_TYPEOF_REGISTER_TEMPLATE(world, 1)
 
 //[world_tpl
 template<typename Person>
@@ -47,7 +50,7 @@
     world<person> w;
     person p;
     w.add_person(p);
-    BOOST_CHECK( w.persons_.size() == 1 );
+    BOOST_CHECK( w.population() == 1 );
 }
 
 #else
Modified: trunk/libs/scope_exit/test/world_tpl_seq.cpp
==============================================================================
--- trunk/libs/scope_exit/test/world_tpl_seq.cpp	(original)
+++ trunk/libs/scope_exit/test/world_tpl_seq.cpp	2012-02-18 14:29:35 EST (Sat, 18 Feb 2012)
@@ -14,15 +14,18 @@
 #include <boost/test/unit_test.hpp>
 #include <vector>
 
-struct person; BOOST_TYPEOF_REGISTER_TYPE(person)
 struct person {};
+BOOST_TYPEOF_REGISTER_TYPE(person)
 
-template<typename Person> struct world; BOOST_TYPEOF_REGISTER_TEMPLATE(world, 1)
 template<typename Person>
 struct world {
     void add_person(Person const& a_person);
+    size_t population(void) const { return persons_.size(); }
+
+private:
     std::vector<Person> persons_;
 };
+BOOST_TYPEOF_REGISTER_TEMPLATE(world, 1)
 
 //[world_tpl_seq
 template<typename Person>
@@ -44,6 +47,6 @@
     world<person> w;
     person p;
     w.add_person(p);
-    BOOST_CHECK( w.persons_.size() == 1 );
+    BOOST_CHECK( w.population() == 1 );
 }
 
Modified: trunk/libs/scope_exit/test/world_void.cpp
==============================================================================
--- trunk/libs/scope_exit/test/world_void.cpp	(original)
+++ trunk/libs/scope_exit/test/world_void.cpp	2012-02-18 14:29:35 EST (Sat, 18 Feb 2012)
@@ -14,8 +14,8 @@
 #include <boost/test/unit_test.hpp>
 #include <vector>
 
-struct person; BOOST_TYPEOF_REGISTER_TYPE(person)
 struct person {};
+BOOST_TYPEOF_REGISTER_TYPE(person)
 
 struct world_t; BOOST_TYPEOF_REGISTER_TYPE(world_t)
 //[world_void
Modified: trunk/libs/utility/identity_type/test/tmp_assert.cpp
==============================================================================
--- trunk/libs/utility/identity_type/test/tmp_assert.cpp	(original)
+++ trunk/libs/utility/identity_type/test/tmp_assert.cpp	2012-02-18 14:29:35 EST (Sat, 18 Feb 2012)
@@ -19,7 +19,7 @@
 template<typename T, bool b>
 struct abstract {
     static const bool value = b;
-    virtual void f(T const& x) = 0;
+    virtual void f(T const& x) = 0;     // Pure virtual function.
 };
 
 TMP_ASSERT(
@@ -38,13 +38,15 @@
     /* use `BOOST_IDENTITY_TYPE` in macro definition instead of invocation */ \
     BOOST_STATIC_ASSERT(BOOST_IDENTITY_TYPE(parenthesized_metafunction)::value)
 
+// Specify only extra parenthesis `((...))`.
 TMP_ASSERT_PAREN(( boost::is_const<std::map<int, char> const> ));
+// Specify both the extra parenthesis `((...))` and `BOOST_IDENTITY_TYPE` macro.
 TMP_ASSERT( BOOST_IDENTITY_TYPE((boost::is_const<std::map<int, char> const>)) );
 //]
 
 //[tmp_assert_alternative_always
-TMP_ASSERT_PAREN(( boost::is_const<int const> )); // Always extra `()`.
-TMP_ASSERT( boost::is_const<int const> ); // No extra `()` and no macro.
+TMP_ASSERT_PAREN(( boost::is_const<int const> )); // Always extra `((...))`.
+TMP_ASSERT( boost::is_const<int const> ); // No extra `((...))` and no macro.
 //]
 
 int main() { return 0; }