
I am using boost::optional but have hit a problem with arrays. Using MSVC8, the definition boost::optional<char[R] > foo_; produces a compilation error: boost_1_39_0\boost/optional/optional.hpp(315) : error C2075: 'Target of operator new()' : array initialization needs curly braces boost_1_39_0\boost/optional/optional.hpp(314) : while compiling class template member function 'void boost::optional_detail::optional_base<T>::construct(const char (&))' with [ T=char [3] ] boost_1_39_0\boost/optional/optional.hpp(455) : see reference to class template instantiation 'boost::optional_detail::optional_base<T>' being compiled with [ T=char [3] ] There is no mention of non-arrays in the type requirements, so I don't know if this is specific to MSVC8, or a general/known problem? I have overcome the problem using boost::array boost::optional<boost::array<char,R> > foo_; Is there an opportunity to detect an array and substitute a boost::array for the given type? Thanks -- Craig Craig Henderson <http://craighenderson.co.uk/> http://www.craighenderson.co.uk http://www.siteupdatenotification.com
participants (1)
-
Craig Henderson