Added BOOST_CONCEPT_USAGE for defining usage requirements: Using this

macro is better than simply defining a destructor because usage
patterns will be tested whenever associated types are accessed.


[SVN r35198]
This commit is contained in:
Dave Abrahams
2006-09-19 13:37:20 +00:00
parent 6b4d01994b
commit ac6415fac2
5 changed files with 80 additions and 22 deletions
Executable
+22
View File
@@ -0,0 +1,22 @@
// Copyright David Abrahams 2006. Distributed under the Boost
// Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
#include <boost/concept/usage.hpp>
template <class T>
struct StringInitializable
{
typedef int associated;
BOOST_CONCEPT_USAGE(StringInitializable)
{
T x = "foo";
}
};
// Test that accessing an associated type will actually exercise usage
// requirements
typedef StringInitializable<int>::associated tee;