An AMQP message body can hold binary data using any encoding you like. AMQP also defines its own encoding and types. The AMQP encoding is often used in message bodies because it is supported by AMQP libraries on many languages and platforms. You also need to use the AMQP types to set and examine message properties.

You can set the value in a holder by assignment, and use the proton::get() and proton::coerce() templates to extract data in a type-safe way. Holders also provide functions to query the type of value they contain.