NH-3675

https://nhibernate.jira.com/browse/NH-3675
Initial implementation with unit tests
For c++ you need a temporary variable, which is what it returns. ++c doesn't