summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorNoel Grandin <noel.grandin@collabora.co.uk>2019-12-01 18:53:48 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2019-12-05 07:01:44 +0100
commite189a3f5b5c4f381dcf109eb9a2ee9b6d32d5551 (patch)
treeec73a1899adb6af2fa94cff8764fe7bb9b45b34f /include
parent2a9e162564a6af63bece77f50fc553640e747b9e (diff)
make some classes module private
Mark some stuff SAL_DLLPUBLIC_RTTI in include/vcl/metaact.hxx in order to make ASAN happy. Change-Id: I97febe0968bf58b9cbe60ce647f0ada25e6f4bb0 Reviewed-on: https://gerrit.libreoffice.org/84202 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'include')
-rw-r--r--include/filter/msfilter/mstoolbar.hxx4
-rw-r--r--include/oox/ole/oleobjecthelper.hxx2
-rw-r--r--include/sfx2/classificationhelper.hxx2
-rw-r--r--include/svl/zformat.hxx2
-rw-r--r--include/svx/fmgridif.hxx2
-rw-r--r--include/svx/gridctrl.hxx2
-rw-r--r--include/svx/svdundo.hxx6
-rw-r--r--include/toolkit/awt/vclxwindows.hxx2
-rw-r--r--include/toolkit/helper/listenermultiplexer.hxx8
-rw-r--r--include/tools/urlobj.hxx2
-rw-r--r--include/unotools/localedatawrapper.hxx2
-rw-r--r--include/unotools/useroptions.hxx4
-rw-r--r--include/vcl/BitmapDuoToneFilter.hxx2
-rw-r--r--include/vcl/BitmapGaussianSeparableBlurFilter.hxx2
-rw-r--r--include/vcl/BitmapSeparableUnsharpenFilter.hxx2
-rw-r--r--include/vcl/combobox.hxx2
-rw-r--r--include/vcl/dockingarea.hxx2
-rw-r--r--include/vcl/dockwin.hxx2
-rw-r--r--include/vcl/floatwin.hxx2
-rw-r--r--include/vcl/mapmod.hxx2
-rw-r--r--include/vcl/metaact.hxx24
-rw-r--r--include/vcl/popupmenuwindow.hxx2
-rw-r--r--include/vcl/status.hxx2
-rw-r--r--include/vcl/transfer.hxx6
-rw-r--r--include/vcl/treelist.hxx2
-rw-r--r--include/xmloff/xmluconv.hxx2
26 files changed, 46 insertions, 46 deletions
diff --git a/include/filter/msfilter/mstoolbar.hxx b/include/filter/msfilter/mstoolbar.hxx
index 284d55fd2ea9..f3c3e1ac7a47 100644
--- a/include/filter/msfilter/mstoolbar.hxx
+++ b/include/filter/msfilter/mstoolbar.hxx
@@ -156,7 +156,7 @@ public:
OUString const & CustomText() { return customText.getString(); }
};
-class MSFILTER_DLLPUBLIC TBCBitMap final : public TBBase
+class TBCBitMap final : public TBBase
{
friend class TBCBSpecific; // #FIXME hacky access, need to fix
sal_Int32 cbDIB;
@@ -182,7 +182,7 @@ public:
OUString Name();
};
-class MSFILTER_DLLPUBLIC TBCCDData final : public TBBase
+class TBCCDData final : public TBBase
{
sal_Int16 cwstrItems; //Signed integer that specifies the number of items in wstrList. MUST be positive.
std::vector< WString > wstrList; // Zero-based index array of WString structures. Number of elements MUST be equal to cwstrItems.
diff --git a/include/oox/ole/oleobjecthelper.hxx b/include/oox/ole/oleobjecthelper.hxx
index 604785f305b6..19f07cf5f9c0 100644
--- a/include/oox/ole/oleobjecthelper.hxx
+++ b/include/oox/ole/oleobjecthelper.hxx
@@ -40,7 +40,7 @@ namespace ole {
/** Contains generic information about an OLE object. */
-struct OOX_DLLPUBLIC OleObjectInfo
+struct OleObjectInfo
{
StreamDataSequence maEmbeddedData; ///< Data of an embedded OLE object.
OUString maTargetLink; ///< Path to external data for linked OLE object.
diff --git a/include/sfx2/classificationhelper.hxx b/include/sfx2/classificationhelper.hxx
index ed55fe9c04ca..777001fd9de9 100644
--- a/include/sfx2/classificationhelper.hxx
+++ b/include/sfx2/classificationhelper.hxx
@@ -41,7 +41,7 @@ enum class SfxClassificationPolicyType
/// Shared code to handle Business Authorization Identification and Labeling Scheme (BAILS) properties.
class SFX2_DLLPUBLIC SfxClassificationHelper
{
- class Impl;
+ class SAL_DLLPRIVATE Impl;
std::unique_ptr<Impl> m_pImpl;
public:
diff --git a/include/svl/zformat.hxx b/include/svl/zformat.hxx
index b6d962d1fc98..6c9f5b062f4c 100644
--- a/include/svl/zformat.hxx
+++ b/include/svl/zformat.hxx
@@ -142,7 +142,7 @@ private:
class SVL_DLLPUBLIC SvNumberformat
{
- struct LocaleType
+ struct SAL_DLLPRIVATE LocaleType
{
enum class Substitute : sal_uInt8
{
diff --git a/include/svx/fmgridif.hxx b/include/svx/fmgridif.hxx
index 8b2cdb5e4e29..b438e2aace31 100644
--- a/include/svx/fmgridif.hxx
+++ b/include/svx/fmgridif.hxx
@@ -366,7 +366,7 @@ private:
// (I would like to have a vector here but including the stl in an exported file seems
// very risky to me...)
- class GridListenerDelegator;
+ class SAL_DLLPRIVATE GridListenerDelegator;
friend class GridListenerDelegator;
std::unique_ptr<GridListenerDelegator> m_pGridListener;
diff --git a/include/svx/gridctrl.hxx b/include/svx/gridctrl.hxx
index a3e8c4163307..8dbb1c106b78 100644
--- a/include/svx/gridctrl.hxx
+++ b/include/svx/gridctrl.hxx
@@ -170,7 +170,7 @@ public:
// NavigationBar
- class NavigationBar final : public Control
+ class SAL_DLLPRIVATE NavigationBar final : public Control
{
class AbsolutePos : public NumericField
{
diff --git a/include/svx/svdundo.hxx b/include/svx/svdundo.hxx
index 99acdb55660b..67316f7792c7 100644
--- a/include/svx/svdundo.hxx
+++ b/include/svx/svdundo.hxx
@@ -514,7 +514,7 @@ public:
* ABC for all UndoActions that have something to do with SdrPages.
*/
-class SVX_DLLPUBLIC SdrUndoPage : public SdrUndoAction
+class SdrUndoPage : public SdrUndoAction
{
protected:
SdrPage& mrPage;
@@ -618,7 +618,7 @@ public:
* Create Action before moving the Page.
*/
-class SVX_DLLPUBLIC SdrUndoSetPageNum final : public SdrUndoPage
+class SdrUndoSetPageNum final : public SdrUndoPage
{
sal_uInt16 const nOldPageNum;
sal_uInt16 const nNewPageNum;
@@ -678,7 +678,7 @@ public:
* Create Action before changing the MasterPageDescriptors.
*/
-class SVX_DLLPUBLIC SdrUndoPageChangeMasterPage final : public SdrUndoPageMasterPage
+class SdrUndoPageChangeMasterPage final : public SdrUndoPageMasterPage
{
bool mbNewHadMasterPage;
SdrLayerIDSet maNewSet;
diff --git a/include/toolkit/awt/vclxwindows.hxx b/include/toolkit/awt/vclxwindows.hxx
index ab3d0a4ec53a..e3763da5012a 100644
--- a/include/toolkit/awt/vclxwindows.hxx
+++ b/include/toolkit/awt/vclxwindows.hxx
@@ -467,7 +467,7 @@ public:
// class VCLXFixedHyperlink
-class TOOLKIT_DLLPUBLIC VCLXFixedHyperlink final :
+class VCLXFixedHyperlink final :
public css::awt::XFixedHyperlink,
public VCLXWindow
{
diff --git a/include/toolkit/helper/listenermultiplexer.hxx b/include/toolkit/helper/listenermultiplexer.hxx
index a76336996244..503b3390719f 100644
--- a/include/toolkit/helper/listenermultiplexer.hxx
+++ b/include/toolkit/helper/listenermultiplexer.hxx
@@ -159,21 +159,21 @@ DECL_LISTENERMULTIPLEXER_END
// class ActionListenerMultiplexer
-DECL_LISTENERMULTIPLEXER_START_DLLPUB( ActionListenerMultiplexer, css::awt::XActionListener )
+DECL_LISTENERMULTIPLEXER_START( ActionListenerMultiplexer, css::awt::XActionListener )
void SAL_CALL actionPerformed( const css::awt::ActionEvent& rEvent ) override;
DECL_LISTENERMULTIPLEXER_END
// class ItemListenerMultiplexer
-DECL_LISTENERMULTIPLEXER_START_DLLPUB( ItemListenerMultiplexer, css::awt::XItemListener )
+DECL_LISTENERMULTIPLEXER_START( ItemListenerMultiplexer, css::awt::XItemListener )
void SAL_CALL itemStateChanged( const css::awt::ItemEvent& rEvent ) override;
DECL_LISTENERMULTIPLEXER_END
// class TabListenerMultiplexer
-DECL_LISTENERMULTIPLEXER_START_DLLPUB( TabListenerMultiplexer, css::awt::XTabListener )
+DECL_LISTENERMULTIPLEXER_START( TabListenerMultiplexer, css::awt::XTabListener )
void SAL_CALL inserted( ::sal_Int32 ID ) override;
void SAL_CALL removed( ::sal_Int32 ID ) override;
void SAL_CALL changed( ::sal_Int32 ID, const css::uno::Sequence< css::beans::NamedValue >& Properties ) override;
@@ -253,7 +253,7 @@ DECL_LISTENERMULTIPLEXER_END
// class TabPageListenerMultiplexer
-DECL_LISTENERMULTIPLEXER_START_DLLPUB( TabPageListenerMultiplexer, css::awt::tab::XTabPageContainerListener )
+DECL_LISTENERMULTIPLEXER_START( TabPageListenerMultiplexer, css::awt::tab::XTabPageContainerListener )
void SAL_CALL tabPageActivated( const css::awt::tab::TabPageActivatedEvent& aEvent ) override;
DECL_LISTENERMULTIPLEXER_END
diff --git a/include/tools/urlobj.hxx b/include/tools/urlobj.hxx
index 522dcca35fcd..d8b812bb7a81 100644
--- a/include/tools/urlobj.hxx
+++ b/include/tools/urlobj.hxx
@@ -923,7 +923,7 @@ public:
private:
// General Structure:
- class SubString
+ class SAL_DLLPRIVATE SubString
{
sal_Int32 m_nBegin;
sal_Int32 m_nLength;
diff --git a/include/unotools/localedatawrapper.hxx b/include/unotools/localedatawrapper.hxx
index fd0e457943eb..7c790e0ee8b0 100644
--- a/include/unotools/localedatawrapper.hxx
+++ b/include/unotools/localedatawrapper.hxx
@@ -90,7 +90,7 @@ class UNOTOOLS_DLLPUBLIC LocaleDataWrapper
bool bReservedWordValid;
bool bSecondaryCalendarValid;
mutable ::utl::ReadWriteMutex aMutex;
- struct Locale_Compare
+ struct SAL_DLLPRIVATE Locale_Compare
{
bool operator()(const css::lang::Locale& rLocale1, const css::lang::Locale& rLocale2) const;
};
diff --git a/include/unotools/useroptions.hxx b/include/unotools/useroptions.hxx
index 42dfa37c84df..adc5f5055d5b 100644
--- a/include/unotools/useroptions.hxx
+++ b/include/unotools/useroptions.hxx
@@ -90,11 +90,11 @@ public:
void SetBoolValue (UserOptToken nToken, bool bNewValue);
private:
- class Impl;
+ class SAL_DLLPRIVATE Impl;
std::shared_ptr<Impl> xImpl;
static std::weak_ptr<Impl> xSharedImpl;
private:
- class ChangeListener;
+ class SAL_DLLPRIVATE ChangeListener;
};
#endif // INCLUDED_UNOTOOLS_USEROPTIONS_HXX
diff --git a/include/vcl/BitmapDuoToneFilter.hxx b/include/vcl/BitmapDuoToneFilter.hxx
index 8dddfb16bfe2..71aabd6ad02e 100644
--- a/include/vcl/BitmapDuoToneFilter.hxx
+++ b/include/vcl/BitmapDuoToneFilter.hxx
@@ -15,7 +15,7 @@
class BitmapEx;
-class VCL_DLLPUBLIC BitmapDuoToneFilter final : public BitmapFilter
+class BitmapDuoToneFilter final : public BitmapFilter
{
public:
BitmapDuoToneFilter(sal_uLong nColorOne, sal_uLong nColorTwo)
diff --git a/include/vcl/BitmapGaussianSeparableBlurFilter.hxx b/include/vcl/BitmapGaussianSeparableBlurFilter.hxx
index 63188a2c5968..2de99499253d 100644
--- a/include/vcl/BitmapGaussianSeparableBlurFilter.hxx
+++ b/include/vcl/BitmapGaussianSeparableBlurFilter.hxx
@@ -16,7 +16,7 @@
class BitmapEx;
-class VCL_DLLPUBLIC BitmapGaussianSeparableBlurFilter final : public BitmapFilter
+class BitmapGaussianSeparableBlurFilter final : public BitmapFilter
{
public:
BitmapGaussianSeparableBlurFilter(double fRadius)
diff --git a/include/vcl/BitmapSeparableUnsharpenFilter.hxx b/include/vcl/BitmapSeparableUnsharpenFilter.hxx
index d19ea0f0b423..3d867619167a 100644
--- a/include/vcl/BitmapSeparableUnsharpenFilter.hxx
+++ b/include/vcl/BitmapSeparableUnsharpenFilter.hxx
@@ -18,7 +18,7 @@ class BitmapEx;
/** Separable Unsharpen Mask filter is actually a subtracted blurred
image from the original image.
*/
-class VCL_DLLPUBLIC BitmapSeparableUnsharpenFilter final : public BitmapFilter
+class BitmapSeparableUnsharpenFilter final : public BitmapFilter
{
public:
BitmapSeparableUnsharpenFilter(double fRadius)
diff --git a/include/vcl/combobox.hxx b/include/vcl/combobox.hxx
index 0f7f43695b0d..ff34c96411b4 100644
--- a/include/vcl/combobox.hxx
+++ b/include/vcl/combobox.hxx
@@ -34,7 +34,7 @@ class UserDrawEvent;
class VCL_DLLPUBLIC ComboBox : public Edit
{
private:
- struct Impl;
+ struct SAL_DLLPRIVATE Impl;
std::unique_ptr<Impl> m_pImpl;
protected:
diff --git a/include/vcl/dockingarea.hxx b/include/vcl/dockingarea.hxx
index a376d3b5c351..953e21551758 100644
--- a/include/vcl/dockingarea.hxx
+++ b/include/vcl/dockingarea.hxx
@@ -27,7 +27,7 @@
// - its main purpose is theming support
class VCL_DLLPUBLIC DockingAreaWindow final : public vcl::Window
{
- class ImplData;
+ class SAL_DLLPRIVATE ImplData;
private:
std::unique_ptr<ImplData> mpImplData;
diff --git a/include/vcl/dockwin.hxx b/include/vcl/dockwin.hxx
index b2808f043dfc..a3743c2f2c39 100644
--- a/include/vcl/dockwin.hxx
+++ b/include/vcl/dockwin.hxx
@@ -208,7 +208,7 @@ class VCL_DLLPUBLIC DockingWindow
: public vcl::Window
, public VclBuilderContainer
{
- class ImplData;
+ class SAL_DLLPRIVATE ImplData;
private:
VclPtr<FloatingWindow> mpFloatWin;
VclPtr<vcl::Window> mpOldBorderWin;
diff --git a/include/vcl/floatwin.hxx b/include/vcl/floatwin.hxx
index 52d09597b59c..e924807ca44d 100644
--- a/include/vcl/floatwin.hxx
+++ b/include/vcl/floatwin.hxx
@@ -73,7 +73,7 @@ enum class FloatWinTitleType
class VCL_DLLPUBLIC FloatingWindow : public SystemWindow
{
- class ImplData;
+ class SAL_DLLPRIVATE ImplData;
private:
VclPtr<FloatingWindow> mpNextFloat;
VclPtr<vcl::Window> mpFirstPopupModeWin;
diff --git a/include/vcl/mapmod.hxx b/include/vcl/mapmod.hxx
index 2851c966c890..487f039687ab 100644
--- a/include/vcl/mapmod.hxx
+++ b/include/vcl/mapmod.hxx
@@ -36,7 +36,7 @@ class VCL_DLLPUBLIC MapMode
friend class OutputDevice;
public:
- struct ImplMapMode;
+ struct SAL_DLLPRIVATE ImplMapMode;
MapMode();
MapMode( const MapMode& rMapMode );
diff --git a/include/vcl/metaact.hxx b/include/vcl/metaact.hxx
index 2666edb5f334..220eedff3406 100644
--- a/include/vcl/metaact.hxx
+++ b/include/vcl/metaact.hxx
@@ -121,7 +121,7 @@ public:
const Color& GetColor() const { return maColor; }
};
-class VCL_DLLPUBLIC MetaPointAction final : public MetaAction
+class SAL_DLLPUBLIC_RTTI MetaPointAction final : public MetaAction
{
private:
Point maPt;
@@ -457,7 +457,7 @@ public:
const tools::PolyPolygon& GetPolyPolygon() const { return maPolyPoly; }
};
-class VCL_DLLPUBLIC MetaTextAction final : public MetaAction
+class SAL_DLLPUBLIC_RTTI MetaTextAction final : public MetaAction
{
private:
@@ -529,7 +529,7 @@ public:
long* GetDXArray() const { return mpDXAry.get(); }
};
-class VCL_DLLPUBLIC MetaStretchTextAction final : public MetaAction
+class SAL_DLLPUBLIC_RTTI MetaStretchTextAction final : public MetaAction
{
private:
@@ -567,7 +567,7 @@ public:
sal_Int32 GetLen() const { return mnLen; }
};
-class VCL_DLLPUBLIC MetaTextRectAction final : public MetaAction
+class SAL_DLLPUBLIC_RTTI MetaTextRectAction final : public MetaAction
{
private:
@@ -600,7 +600,7 @@ public:
DrawTextFlags GetStyle() const { return mnStyle; }
};
-class VCL_DLLPUBLIC MetaTextLineAction final : public MetaAction
+class SAL_DLLPUBLIC_RTTI MetaTextLineAction final : public MetaAction
{
private:
@@ -840,7 +840,7 @@ public:
const Size& GetSrcSize() const { return maSrcSz; }
};
-class VCL_DLLPUBLIC MetaMaskAction final : public MetaAction
+class SAL_DLLPUBLIC_RTTI MetaMaskAction final : public MetaAction
{
private:
@@ -874,7 +874,7 @@ public:
const Point& GetPoint() const { return maPt; }
};
-class VCL_DLLPUBLIC MetaMaskScaleAction final : public MetaAction
+class SAL_DLLPUBLIC_RTTI MetaMaskScaleAction final : public MetaAction
{
private:
@@ -910,7 +910,7 @@ public:
const Size& GetSize() const { return maSz; }
};
-class VCL_DLLPUBLIC MetaMaskScalePartAction final : public MetaAction
+class SAL_DLLPUBLIC_RTTI MetaMaskScalePartAction final : public MetaAction
{
private:
@@ -951,7 +951,7 @@ public:
const Size& GetSrcSize() const { return maSrcSz; }
};
-class VCL_DLLPUBLIC MetaGradientAction final : public MetaAction
+class SAL_DLLPUBLIC_RTTI MetaGradientAction final : public MetaAction
{
private:
@@ -1011,7 +1011,7 @@ public:
const Gradient& GetGradient() const { return maGradient; }
};
-class VCL_DLLPUBLIC MetaHatchAction final : public MetaAction
+class SAL_DLLPUBLIC_RTTI MetaHatchAction final : public MetaAction
{
private:
@@ -1494,7 +1494,7 @@ public:
RasterOp GetRasterOp() const { return meRasterOp; }
};
-class VCL_DLLPUBLIC MetaTransparentAction final : public MetaAction
+class SAL_DLLPUBLIC_RTTI MetaTransparentAction final : public MetaAction
{
private:
@@ -1524,7 +1524,7 @@ public:
sal_uInt16 GetTransparence() const { return mnTransPercent; }
};
-class VCL_DLLPUBLIC MetaFloatTransparentAction final : public MetaAction
+class SAL_DLLPUBLIC_RTTI MetaFloatTransparentAction final : public MetaAction
{
private:
diff --git a/include/vcl/popupmenuwindow.hxx b/include/vcl/popupmenuwindow.hxx
index 4d035b3b1bdf..42488c2ee206 100644
--- a/include/vcl/popupmenuwindow.hxx
+++ b/include/vcl/popupmenuwindow.hxx
@@ -26,7 +26,7 @@
class VCL_DLLPUBLIC PopupMenuFloatingWindow : public FloatingWindow
{
private:
- struct ImplData;
+ struct SAL_DLLPRIVATE ImplData;
std::unique_ptr<ImplData> mpImplData;
public:
PopupMenuFloatingWindow( vcl::Window* pParent );
diff --git a/include/vcl/status.hxx b/include/vcl/status.hxx
index 169dfa5e7b15..2700e2a8e145 100644
--- a/include/vcl/status.hxx
+++ b/include/vcl/status.hxx
@@ -63,7 +63,7 @@ namespace o3tl
class VCL_DLLPUBLIC StatusBar : public vcl::Window
{
- class ImplData;
+ class SAL_DLLPRIVATE ImplData;
private:
std::vector<std::unique_ptr<ImplStatusItem>> mvItemList;
std::unique_ptr<ImplData> mpImplData;
diff --git a/include/vcl/transfer.hxx b/include/vcl/transfer.hxx
index a0b773984d3b..1c1ba0e7db90 100644
--- a/include/vcl/transfer.hxx
+++ b/include/vcl/transfer.hxx
@@ -133,7 +133,7 @@ class VCL_DLLPUBLIC TransferableHelper : public cppu::WeakImplHelper< css::datat
private:
// nested class to implement the XTerminateListener interface
- class TerminateListener : public cppu::WeakImplHelper< css::frame::XTerminateListener, css::lang::XServiceInfo >
+ class VCL_DLLPRIVATE TerminateListener : public cppu::WeakImplHelper< css::frame::XTerminateListener, css::lang::XServiceInfo >
{
private:
@@ -374,7 +374,7 @@ class VCL_DLLPUBLIC DragSourceHelper
private:
// nested class to implement the XDragGestureListener interface
- class DragGestureListener : public cppu::WeakImplHelper< css::datatransfer::dnd::XDragGestureListener >
+ class SAL_DLLPRIVATE DragGestureListener : public cppu::WeakImplHelper< css::datatransfer::dnd::XDragGestureListener >
{
private:
@@ -420,7 +420,7 @@ class VCL_DLLPUBLIC DropTargetHelper
private:
// nested class to implement the XDropTargetListener interface
- class DropTargetListener : public cppu::WeakImplHelper< css::datatransfer::dnd::XDropTargetListener >
+ class SAL_DLLPRIVATE DropTargetListener : public cppu::WeakImplHelper< css::datatransfer::dnd::XDropTargetListener >
{
private:
diff --git a/include/vcl/treelist.hxx b/include/vcl/treelist.hxx
index 20045cb21804..7ab2639e97fc 100644
--- a/include/vcl/treelist.hxx
+++ b/include/vcl/treelist.hxx
@@ -209,7 +209,7 @@ class VCL_DLLPUBLIC SvListView
{
friend class SvTreeList;
- struct Impl;
+ struct SAL_DLLPRIVATE Impl;
std::unique_ptr<Impl> m_pImpl;
protected:
diff --git a/include/xmloff/xmluconv.hxx b/include/xmloff/xmluconv.hxx
index d791f6cb633d..a17c7d0deea6 100644
--- a/include/xmloff/xmluconv.hxx
+++ b/include/xmloff/xmluconv.hxx
@@ -80,7 +80,7 @@ private:
SvXMLUnitConverter(const SvXMLUnitConverter&) = delete;
SvXMLUnitConverter& operator=(const SvXMLUnitConverter&) = delete;
- struct Impl;
+ struct SAL_DLLPRIVATE Impl;
::std::unique_ptr<Impl> m_pImpl;
public: