[odb-users] Persisting empty binary values error. Microsoft SQL Server

Andrey Paraskevopulo andrey.psv at gmail.com
Sat May 23 07:33:15 EDT 2015

I need to store empty binary values in the binary fields.

I’ve try to persist record with empty std::vector<char> (or unsigned char),
but this lead to program termination.

(no matter what was the mapping type – varbinary(max) or image).

After short investigation I think that I’ve found the error.


void default_value_traits<std::vector<char>, id_long_binary


*buffer = &v.front ();

Calling std::vector::front function on an empty container causes undefined

Possible solution:

replace this string with:

*buffer = v.empty()?nullptr:&v.front ();

(for both char and unsigned char).

I am not sure about side effects, but persisting empty vectors is working.

odb version 2.4.0

Andrey Paraskevopulo

More information about the odb-users mailing list