NH-3675

https://nhibernate.jira.com/browse/NH-3675
Initial implementation with unit tests
`c++`