mirror of
https://github.com/boostorg/python.git
synced 2026-01-23 05:42:30 +00:00
Move definition of index_style_t from iterator_traits.hpp into suite_utils.hpp
[SVN r20525]
This commit is contained in:
@@ -1,5 +1,3 @@
|
||||
// -*- mode:c++ -*-
|
||||
//
|
||||
// Header file suite_utils.hpp
|
||||
//
|
||||
// Shared utilities for the indexing suite.
|
||||
@@ -23,6 +21,24 @@
|
||||
#include <boost/type_traits.hpp>
|
||||
|
||||
namespace boost { namespace python { namespace indexing {
|
||||
#if !BOOST_MSVC
|
||||
enum index_style_t {
|
||||
index_style_none // No random access (iteration only)
|
||||
, index_style_nonlinear // Random access by key (no slicing)
|
||||
, index_style_linear // Random access by integer index (allows slicing)
|
||||
};
|
||||
#else
|
||||
// MSVC seems to have problems with static member variable constants
|
||||
// of enumerated types, where it doesn't believe that an expression
|
||||
// like (traits::index_style == index_style_linear) is a
|
||||
// compile-time constant. However, the problem doesn't exist for
|
||||
// int.
|
||||
typedef int index_style_t;
|
||||
index_style_t const index_style_none = 0;
|
||||
index_style_t const index_style_nonlinear = 1;
|
||||
index_style_t const index_style_linear = 2;
|
||||
#endif
|
||||
|
||||
template<typename T>
|
||||
class is_mutable_ref
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user