diff --git a/dynamic_bitset.html b/dynamic_bitset.html
index 108527a..6cb66f8 100644
--- a/dynamic_bitset.html
+++ b/dynamic_bitset.html
@@ -198,7 +198,7 @@ public:
dynamic_bitset operator<<(size_type n) const;
dynamic_bitset operator>>(size_type n) const;
- dynamic_bitset& set(size_type n, size_type len, bool val = true);
+ dynamic_bitset& set(size_type n, size_type len, bool val);
dynamic_bitset& set(size_type n, bool val = true);
dynamic_bitset& set();
dynamic_bitset& reset(size_type n, size_type len);
@@ -1069,7 +1069,7 @@ dynamic_bitset& reset()
dynamic_bitset& set(size_type n, size_type len, bool val = true);
+"set3">set(size_type n, size_type len, bool val);
Precondition: n + len < this->size().
diff --git a/include/boost/dynamic_bitset/dynamic_bitset.hpp b/include/boost/dynamic_bitset/dynamic_bitset.hpp
index 941332b..a128a69 100644
--- a/include/boost/dynamic_bitset/dynamic_bitset.hpp
+++ b/include/boost/dynamic_bitset/dynamic_bitset.hpp
@@ -281,7 +281,7 @@ public:
dynamic_bitset operator>>(size_type n) const;
// basic bit operations
- dynamic_bitset& set(size_type n, size_type len, bool val = true);
+ dynamic_bitset& set(size_type n, size_type len, bool val /* = true */); // default would make it ambiguous
dynamic_bitset& set(size_type n, bool val = true);
dynamic_bitset& set();
dynamic_bitset& reset(size_type n, size_type len);
diff --git a/test/Jamfile.v2 b/test/Jamfile.v2
index 53d1461..25cf932 100644
--- a/test/Jamfile.v2
+++ b/test/Jamfile.v2
@@ -15,6 +15,7 @@ test-suite dynamic_bitset :
[ run dyn_bitset_unit_tests3.cpp : : : /boost/system//boost_system ]
[ run dyn_bitset_unit_tests4.cpp : : : /boost/filesystem//boost_filesystem
/boost/system//boost_system ]
+ [ run test_ambiguous_set.cpp ]
[ run test_lowest_bit.cpp ]
;
diff --git a/test/test_ambiguous_set.cpp b/test/test_ambiguous_set.cpp
new file mode 100644
index 0000000..ccc6508
--- /dev/null
+++ b/test/test_ambiguous_set.cpp
@@ -0,0 +1,30 @@
+//
+// Copyright (C) 2018 James E. King III
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+// 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
+#include
+
+int main(int, char*[])
+{
+ boost::dynamic_bitset<> x(5); // all 0's by default
+ x.set(1, 2);
+ x.set(3, 1, true);
+ x.set(2, 1, false);
+ BOOST_TEST(!x.test(0));
+ BOOST_TEST( x.test(1));
+ BOOST_TEST(!x.test(2));
+ BOOST_TEST( x.test(3));
+ BOOST_TEST(!x.test(4));
+
+ return boost::report_errors();
+}