On Thu, Mar 7, 2019 at 5:41 PM kefu chai <tchaikov@xxxxxxxxx> wrote: > > On Thu, Mar 7, 2019 at 7:33 PM Willem Jan Withagen <wjw@xxxxxxxxxxx> wrote: > > > > Hi, > > > > In its steps forward FreeBSD has moved to Clang 8.0 on the HEAD release, > > soon to be followed on other releases. Also Boost on FreeBSD will soon > > migrate to 1.70, but not clear how much fallout that'll generate. > > > > And this Clang version complains about a protected destructor in Boost > > code, which seems to be intentionally protected. > > So getting Boost to fix this is probably not going to happen. > > > > I now crudely fixed temporarily it by unprotecting the dtor in the boost > > include, but can't ask other to do that. > > > > So I need a dtor in this Temple class. > > I tried all in cantations I could think of but apparently is my C++ foo > > not enough. > > > > Can somebody suggest a dtor? where I can't seem to get the class type > > correct. > > Or another way around this? > > > Willem, probably you could use the same approach explained by > https://github.com/ceph/ceph/pull/26301/commits/09870d7a083913b5a3830ba8b0be04d0b0996aca This is just an opinion, so feel free to ignore it, but I'd just switch to "normal" syntax with parenthesis: IsWriteOpVisitor(). If you decide to go with a dummy constructor, add a comment. Uniform initialization is full of quirks: this issue, mixing with auto, std::initializer_list edge cases, etc. I think the best practice is to use it only where necessary and stick to the traditional assignment and parenthesis syntax otherwise. Thanks, Ilya