# sol2 3.5.0 documentation

## customization traits

### Search the Documentation

# customization traits

These are customization points within the library to help you make sol2 work for the types in your framework and types.

To learn more about various customizable traits, visit:

- containers customization traits

    - This is how to work with containers in their entirety and what operations you’re afforded on them

    - when you have an compiler error when serializing a type that has `begin` and `end` functions but isn’t exactly a container

- unique usertype (custom pointer) traits

    - This is how to deal with unique usertypes, e.g. `boost::shared_ptr`, reference-counted pointers, etc

    - Useful for custom pointers from all sorts of frameworks or handle types that employ very specific kinds of destruction semantics and access

- customization points

    - This is how to customize a type to work with sol2

    - Can be used for specializations to push strings and other class types that are not natively `std::string` or `const char*`, like a wxString, for example