Hello Nigel,

On Wed, 2010-11-10 at 17:12 +0000, Nigel Hawkins wrote:
> Hi,
> 
> This should address the first item in the "removal of duplicate template
> classes in calc filter code" section from the easy hacks page.
> 
> Not quite a simple search-and-replace but pretty close.

Yup, good work. :-)  Just reviewed and committed as is.

> The second item (ScfNoInstance) is slightly more involved. All of the
> classes derived from ScfNoInstance are just collections of static
> methods and none of them are derived from. Since C++ doesn't support
> declaring classes as static, I'm thinking that converting those classes
> to namespaces is the correct route? (My C++ skills are a bit rusty).

You could make them non copyable first, then declare their constructor
private and leave the constructor undefined.  This way when someone
tries to instantiate those classes the compiler would fail to link due
to undefined definition.

So, you could do stuff like

class SomeStaticClass : private boost::non_copyable
{
private:
    SomeStaticClass(); // no definition, just declaration.
..

to make the class non-instantiable.

I wouldn't replace them with namespaces, but that's just my personal
preference & I don't see namespaces used like that in this code base.

HTH,

Kohei

> 
> Nigel
> _______________________________________________
> LibreOffice mailing list
> LibreOffice@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/libreoffice

-- 
Kohei Yoshida, LibreOffice hacker, Calc
<kyosh...@novell.com>

_______________________________________________
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice

Reply via email to