I always have compiler problems when using operator[](unsigned) when I pass int instead, so I added a note to the comments.
diff --git a/include/json/value.h b/include/json/value.h
index 1eb5e6c..3884b08 100644
--- a/include/json/value.h
+++ b/include/json/value.h
@@ -271,8 +271,12 @@
       /// Access an array element (zero based index ).
       /// If the array contains less than index element, then null value are inserted
       /// in the array so that its size is index+1.
+      /// (You may need to say 'value[0u]' to get your compiler to distinguish
+      ///  this from the operator[] which takes a string.)
       Value &operator[]( UInt index );
       /// Access an array element (zero based index )
+      /// (You may need to say 'value[0u]' to get your compiler to distinguish
+      ///  this from the operator[] which takes a string.)
       const Value &operator[]( UInt index ) const;
       /// If the array contains at least index+1 elements, returns the element value, 
       /// otherwise returns defaultValue.