; size_t = long unsigned int]':
../include/PointerTable.cxx:56:12: required from 'P OpenSP::PointerTable::insert(P, OpenSP::Boolean) [with P = OpenSP::Ptr; K = OpenSP::String; HF = OpenSP::Hash; KF = OpenSP::NamedResourceKeyFunction; OpenSP::Boolean = bool]'
../include/NamedResourceTable.h:37:30: required from 'OpenSP::Ptr OpenSP::NamedResourceTable::insert(const OpenSP::Ptr&, OpenSP::Boolean) [with T = OpenSP::Entity; OpenSP::Boolean = bool]'
../include/Dtd.h:165:35: required from here
../include/Vector.h:66:6: warning: 'OpenSP::Vector >::ptr_' will be initialized after [-Wreorder]
66 | T *ptr_;
| ^~~~
../include/Vector.h:65:10: warning: 'size_t OpenSP::Vector >::size_' [-Wreorder]
65 | size_t size_;
| ^~~~~
../include/Vector.cxx:33:1: warning: when initialized here [-Wreorder]
33 | Vector::Vector(size_t n, const T &t)
| ^~~~~~~~~
../include/Vector.cxx: In instantiation of 'OpenSP::Vector::Vector(size_t, const T&) [with T = OpenSP::Named*; size_t = long unsigned int]':
../include/PointerTable.cxx:56:12: required from 'P OpenSP::PointerTable::insert(P, OpenSP::Boolean) [with P = OpenSP::Named*; K = OpenSP::String; HF = OpenSP::Hash; KF = OpenSP::NamedTableKeyFunction; OpenSP::Boolean = bool]'
../include/NamedTable.h:28:40: required from 'T* OpenSP::NamedTable::insert(T*) [with T = OpenSP::ElementType]'
../include/Dtd.h:279:34: required from here
../include/Vector.h:66:6: warning: 'OpenSP::Vector::ptr_' will be initialized after [-Wreorder]
66 | T *ptr_;
| ^~~~
../include/Vector.h:65:10: warning: 'size_t OpenSP::Vector::size_' [-Wreorder]
65 | size_t size_;
| ^~~~~
../include/Vector.cxx:33:1: warning: when initialized here [-Wreorder]
33 | Vector::Vector(size_t n, const T &t)
| ^~~~~~~~~
../include/Vector.cxx: In instantiation of 'void OpenSP::Vector::insert(const T*, size_t, const T&) [with T = OpenSP::Ptr; size_t = long unsigned int]':
../include/Vector.cxx:62:11: required from 'void OpenSP::Vector::assign(size_t, const T&) [with T = OpenSP::Ptr; size_t = long unsigned int]'
../include/PointerTable.cxx:32:16: required from 'P OpenSP::PointerTable::insert(P, OpenSP::Boolean) [with P = OpenSP::Ptr; K = OpenSP::String; HF = OpenSP::Hash; KF = OpenSP::NamedResourceKeyFunction; OpenSP::Boolean = bool]'
../include/NamedResourceTable.h:37:30: required from 'OpenSP::Ptr OpenSP::NamedResourceTable::insert(const OpenSP::Ptr&, OpenSP::Boolean) [with T = OpenSP::Entity; OpenSP::Boolean = bool]'
../include/Dtd.h:165:35: required from here
../include/Vector.cxx:76:12: warning: 'void* memmove(void*, const void*, size_t)' writing to an object of type 'class OpenSP::Ptr' with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess]
76 | memmove(ptr_ + i + n, ptr_ + i, (size_ - i)*sizeof(T));
| ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../include/Ptr.h:17:7: note: 'class OpenSP::Ptr' declared here
17 | class Ptr {
| ^~~
../include/Vector.cxx: In instantiation of 'T* OpenSP::Vector::erase(const T*, const T*) [with T = OpenSP::Ptr]':
../include/Vector.cxx:65:5: required from 'void OpenSP::Vector::assign(size_t, const T&) [with T = OpenSP::Ptr; size_t = long unsigned int]'
../include/PointerTable.cxx:32:16: required from 'P OpenSP::PointerTable::insert(P, OpenSP::Boolean) [with P = OpenSP::Ptr; K = OpenSP::String; HF = OpenSP::Hash; KF = OpenSP::NamedResourceKeyFunction; OpenSP::Boolean = bool]'
../include/NamedResourceTable.h:37:30: required from 'OpenSP::Ptr OpenSP::NamedResourceTable::insert(const OpenSP::Ptr&, OpenSP::Boolean) [with T = OpenSP::Entity; OpenSP::Boolean = bool]'
../include/Dtd.h:165:35: required from here
../include/Vector.cxx:134:12: warning: 'void* memmove(void*, const void*, size_t)' writing to an object of type 'class OpenSP::Ptr' with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess]
134 | memmove((T *)p1, p2, ((const T *)(ptr_ + size_) - p2)*sizeof(T));
| ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../include/Ptr.h:17:7: note: 'class OpenSP::Ptr' declared here
17 | class Ptr {
| ^~~
make[3]: Leaving directory '/usr/src/RPM/BUILD/OpenSP-1.5.2/lib'
make[3]: Entering directory '/usr/src/RPM/BUILD/OpenSP-1.5.2/lib'
/bin/sh ../libtool --tag=CXX --mode=compile x86_64-alt-linux-g++ -DHAVE_CONFIG_H -I. -I.. -I../include -I../generic -pipe -frecord-gcc-switches -Wall -g -O2 -flto=auto -c -o EntityDecl.lo EntityDecl.cxx
libtool: compile: x86_64-alt-linux-g++ -DHAVE_CONFIG_H -I. -I.. -I../include -I../generic -pipe -frecord-gcc-switches -Wall -g -O2 -flto=auto -c EntityDecl.cxx -fPIC -DPIC -o .libs/EntityDecl.o
In file included from ../include/EntityDecl.h:12,
from EntityDecl.cxx:8:
../include/Ptr.h:72:3: warning: access declarations are deprecated in favour of using-declarations; suggestion: add the 'using' keyword [-Wdeprecated]
72 | Ptr::isNull;
| ^~~~~~
../include/Ptr.h:73:3: warning: access declarations are deprecated in favour of using-declarations; suggestion: add the 'using' keyword [-Wdeprecated]
73 | Ptr::clear;
| ^~~~~~
../include/EntityDecl.h: In constructor 'OpenSP::EntityDecl::EntityDecl(const OpenSP::StringC&, DeclType, DataType, const OpenSP::Location&)':
../include/EntityDecl.h:50:12: warning: 'OpenSP::EntityDecl::defLocation_' will be initialized after [-Wreorder]
50 | Location defLocation_;
| ^~~~~~~~~~~~
../include/EntityDecl.h:48:17: warning: 'OpenSP::PackedBoolean OpenSP::EntityDecl::dtdIsBase_' [-Wreorder]
48 | PackedBoolean dtdIsBase_;
| ^~~~~~~~~~
EntityDecl.cxx:14:1: warning: when initialized here [-Wreorder]
14 | EntityDecl::EntityDecl(const StringC &str, DeclType declType, DataType dataType,
| ^~~~~~~~~~
make[3]: Leaving directory '/usr/src/RPM/BUILD/OpenSP-1.5.2/lib'
make[3]: Entering directory '/usr/src/RPM/BUILD/OpenSP-1.5.2/lib'
/bin/sh ../libtool --tag=CXX --mode=compile x86_64-alt-linux-g++ -DHAVE_CONFIG_H -I. -I.. -I../include -I../generic -pipe -frecord-gcc-switches -Wall -g -O2 -flto=auto -c -o EntityApp.lo EntityApp.cxx
libtool: compile: x86_64-alt-linux-g++ -DHAVE_CONFIG_H -I. -I.. -I../include -I../generic -pipe -frecord-gcc-switches -Wall -g -O2 -flto=auto -c EntityApp.cxx -fPIC -DPIC -o .libs/EntityApp.o
In file included from ../include/Location.h:12,
from ../include/Message.h:12,
from ../include/MessageFormatter.h:14,
from ../include/MessageReporter.h:12,
from ../include/CmdLineApp.h:17,
from ../include/EntityApp.h:11,
from EntityApp.cxx:9:
../include/Ptr.h:72:3: warning: access declarations are deprecated in favour of using-declarations; suggestion: add the 'using' keyword [-Wdeprecated]
72 | Ptr::isNull;
| ^~~~~~
../include/Ptr.h:73:3: warning: access declarations are deprecated in favour of using-declarations; suggestion: add the 'using' keyword [-Wdeprecated]
73 | Ptr::clear;
| ^~~~~~
In file included from ../include/List.h:7,
from ../include/DescriptorManager.h:8,
from ../include/PosixStorage.h:11,
from EntityApp.cxx:14:
../include/IList.h:29:3: warning: access declarations are deprecated in favour of using-declarations; suggestion: add the 'using' keyword [-Wdeprecated]
29 | IListBase::clear;
| ^~~~~~~~~
../include/IList.h:30:3: warning: access declarations are deprecated in favour of using-declarations; suggestion: add the 'using' keyword [-Wdeprecated]
30 | IListBase::empty;
| ^~~~~~~~~
In file included from ../include/List.cxx:7,
from ../include/List.h:48:
../include/IListIter.h:20:3: warning: access declarations are deprecated in favour of using-declarations; suggestion: add the 'using' keyword [-Wdeprecated]
20 | IListIterBase::next;
| ^~~~~~~~~~~~~
../include/IListIter.h:21:3: warning: access declarations are deprecated in favour of using-declarations; suggestion: add the 'using' keyword [-Wdeprecated]
21 | IListIterBase::done;
| ^~~~~~~~~~~~~
In file included from ../include/Location.h:15:
../include/Vector.cxx: In instantiation of 'OpenSP::Vector::Vector(const OpenSP::Vector&) [with T = OpenSP::RangeMapRange]':
../include/RangeMap.h:27:7: required from here
../include/Vector.h:66:6: warning: 'OpenSP::Vector >::ptr_' will be initialized after [-Wreorder]
66 | T *ptr_;
| ^~~~
../include/Vector.h:65:10: warning: 'size_t OpenSP::Vector >::size_' [-Wreorder]
65 | size_t size_;
| ^~~~~
In file included from ../include/Vector.h:77:
../include/Vector.cxx:26:1: warning: when initialized here [-Wreorder]
26 | Vector::Vector(const Vector &v)
| ^~~~~~~~~
../include/Vector.h: In instantiation of 'OpenSP::Vector::Vector(size_t) [with T = OpenSP::String; size_t = long unsigned int]':
EntityApp.cxx:88:53: required from here
../include/Vector.h:66:6: warning: 'OpenSP::Vector >::ptr_' will be initialized after [-Wreorder]
66 | T *ptr_;
| ^~~~
../include/Vector.h:65:10: warning: 'size_t OpenSP::Vector >::size_' [-Wreorder]
65 | size_t size_;
| ^~~~~
../include/Vector.h:25:3: warning: when initialized here [-Wreorder]
25 | Vector(size_t n) : ptr_(0), size_(0), alloc_(0) { append(n); }
| ^~~~~~
../include/Vector.cxx: In instantiation of 'T* OpenSP::Vector::erase(const T*, const T*) [with T = OpenSP::MessageType1]':
../include/Vector.cxx:18:5: required from 'OpenSP::Vector::~Vector() [with T = OpenSP::MessageType1]'
../include/CmdLineApp.h:36:14: required from here
../include/Vector.cxx:134:12: warning: 'void* memmove(void*, const void*, size_t)' writing to an object of non-trivially copyable type 'class OpenSP::MessageType1'; use copy-assignment or copy-initialization instead [-Wclass-memaccess]
134 | memmove((T *)p1, p2, ((const T *)(ptr_ + size_) - p2)*sizeof(T));
| ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../include/Message.h:90:14: note: 'class OpenSP::MessageType1' declared here
90 | class SP_API MessageType1 : public MessageType {
| ^~~~~~~~~~~~
../include/Vector.cxx: In instantiation of 'T* OpenSP::Vector::erase(const T*, const T*) [with T = OpenSP::MessageFragment]':
../include/Vector.cxx:18:5: required from 'OpenSP::Vector::~Vector() [with T = OpenSP::MessageFragment]'
../include/CmdLineApp.h:36:14: required from here
../include/Vector.cxx:134:12: warning: 'void* memmove(void*, const void*, size_t)' writing to an object of non-trivially copyable type 'class OpenSP::MessageFragment'; use copy-assignment or copy-initialization instead [-Wclass-memaccess]
134 | memmove((T *)p1, p2, ((const T *)(ptr_ + size_) - p2)*sizeof(T));
| ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../include/Message.h:33:14: note: 'class OpenSP::MessageFragment' declared here
33 | class SP_API MessageFragment {
| ^~~~~~~~~~~~~~~
../include/Vector.cxx: In instantiation of 'T* OpenSP::Vector::erase(const T*, const T*) [with T = OpenSP::String]':
../include/Vector.cxx:18:5: required from 'OpenSP::Vector::~Vector() [with T = OpenSP::String]'
EntityApp.cxx:88:53: required from here
../include/Vector.cxx:134:12: warning: 'void* memmove(void*, const void*, size_t)' writing to an object of type 'class OpenSP::String' with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess]
134 | memmove((T *)p1, p2, ((const T *)(ptr_ + size_) - p2)*sizeof(T));
| ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../include/StringC.h:8,
from ../include/Location.h:17:
../include/StringOf.h:23:7: note: 'class OpenSP::String' declared here
23 | class String {
| ^~~~~~
make[3]: Leaving directory '/usr/src/RPM/BUILD/OpenSP-1.5.2/lib'
make[3]: Entering directory '/usr/src/RPM/BUILD/OpenSP-1.5.2/lib'
/bin/sh ../libtool --tag=CXX --mode=compile x86_64-alt-linux-g++ -DHAVE_CONFIG_H -I. -I.. -I../include -I../generic -pipe -frecord-gcc-switches -Wall -g -O2 -flto=auto -c -o ErrnoMessageArg.lo ErrnoMessageArg.cxx
libtool: compile: x86_64-alt-linux-g++ -DHAVE_CONFIG_H -I. -I.. -I../include -I../generic -pipe -frecord-gcc-switches -Wall -g -O2 -flto=auto -c ErrnoMessageArg.cxx -fPIC -DPIC -o .libs/ErrnoMessageArg.o
make[3]: Leaving directory '/usr/src/RPM/BUILD/OpenSP-1.5.2/lib'
make[3]: Entering directory '/usr/src/RPM/BUILD/OpenSP-1.5.2/lib'
/bin/sh ../libtool --tag=CXX --mode=compile x86_64-alt-linux-g++ -DHAVE_CONFIG_H -I. -I.. -I../include -I../generic -pipe -frecord-gcc-switches -Wall -g -O2 -flto=auto -c -o ContentState.lo ContentState.cxx
libtool: compile: x86_64-alt-linux-g++ -DHAVE_CONFIG_H -I. -I.. -I../include -I../generic -pipe -frecord-gcc-switches -Wall -g -O2 -flto=auto -c ContentState.cxx -fPIC -DPIC -o .libs/ContentState.o
In file included from ../include/Location.h:12,
from ../include/Text.h:13,
from ../include/ContentToken.h:11,
from ../include/OpenElement.h:11,
from ../include/ContentState.h:12,
from ContentState.cxx:9:
../include/Ptr.h:72:3: warning: access declarations are deprecated in favour of using-declarations; suggestion: add the 'using' keyword [-Wdeprecated]
72 | Ptr::isNull;
| ^~~~~~
../include/Ptr.h:73:3: warning: access declarations are deprecated in favour of using-declarations; suggestion: add the 'using' keyword [-Wdeprecated]
73 | Ptr::clear;
| ^~~~~~
In file included from ../include/ContentState.h:13:
../include/IList.h:29:3: warning: access declarations are deprecated in favour of using-declarations; suggestion: add the 'using' keyword [-Wdeprecated]
29 | IListBase::clear;
| ^~~~~~~~~
../include/IList.h:30:3: warning: access declarations are deprecated in favour of using-declarations; suggestion: add the 'using' keyword [-Wdeprecated]
30 | IListBase::empty;
| ^~~~~~~~~
In file included from ../include/Markup.h:12,
from ../include/Entity.h:22,
from ../include/Dtd.h:14,
from ../include/ContentState.h:16:
../include/Syntax.h: In member function 'OpenSP::Boolean OpenSP::Syntax::isB(OpenSP::Xchar) const':
../include/Syntax.h:382:49: warning: comparison of integer expressions of different signedness: 'OpenSP::Xchar' {aka 'int'} and 'const OpenSP::Char' {aka 'const unsigned int'} [-Wsign-compare]
382 | && !(standardFunctionValid_[fRE] && c == standardFunction_[fRE])
| ~~^~~~~~~~~~~~~~~~~~~~~~~~~
../include/Syntax.h:383:49: warning: comparison of integer expressions of different signedness: 'OpenSP::Xchar' {aka 'int'} and 'const OpenSP::Char' {aka 'const unsigned int'} [-Wsign-compare]
383 | && !(standardFunctionValid_[fRS] && c == standardFunction_[fRS]));
| ~~^~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ContentState.cxx:10:
../include/IListIter.h: At global scope:
../include/IListIter.h:20:3: warning: access declarations are deprecated in favour of using-declarations; suggestion: add the 'using' keyword [-Wdeprecated]
20 | IListIterBase::next;
| ^~~~~~~~~~~~~
../include/IListIter.h:21:3: warning: access declarations are deprecated in favour of using-declarations; suggestion: add the 'using' keyword [-Wdeprecated]
21 | IListIterBase::done;
| ^~~~~~~~~~~~~
In file included from ../include/Text.h:12:
../include/Vector.h: In instantiation of 'OpenSP::Vector::Vector(size_t) [with T = OpenSP::LeafContentToken*; size_t = long unsigned int]':
../include/ContentToken.h:61:51: required from here
../include/Vector.h:66:6: warning: 'OpenSP::Vector::ptr_' will be initialized after [-Wreorder]
66 | T *ptr_;
| ^~~~
../include/Vector.h:65:10: warning: 'size_t OpenSP::Vector::size_' [-Wreorder]
65 | size_t size_;
| ^~~~~
../include/Vector.h:25:3: warning: when initialized here [-Wreorder]
25 | Vector(size_t n) : ptr_(0), size_(0), alloc_(0) { append(n); }
| ^~~~~~
../include/Vector.cxx: In instantiation of 'OpenSP::Vector::Vector(const OpenSP::Vector&) [with T = OpenSP::RangeMapRange]':
../include/RangeMap.h:27:7: required from here
../include/Vector.h:66:6: warning: 'OpenSP::Vector >::ptr_' will be initialized after [-Wreorder]
66 | T *ptr_;
| ^~~~
../include/Vector.h:65:10: warning: 'size_t OpenSP::Vector >::size_' [-Wreorder]
65 | size_t size_;
| ^~~~~
In file included from ../include/Vector.h:77:
../include/Vector.cxx:26:1: warning: when initialized here [-Wreorder]
26 | Vector::Vector(const Vector &v)
| ^~~~~~~~~
In file included from ../include/NCVector.h:12,
from ../include/ContentToken.h:13:
../include/Vector.h: In instantiation of 'OpenSP::NCVector::NCVector(size_t) [with T = OpenSP::Owner; size_t = long unsigned int]':
ContentState.cxx:31:42: required from here
../include/Vector.h:66:6: warning: 'OpenSP::NCVector >::ptr_' will be initialized after [-Wreorder]
66 | T *ptr_;
| ^~~~
../include/Vector.h:65:10: warning: 'size_t OpenSP::NCVector >::size_' [-Wreorder]
65 | size_t size_;
| ^~~~~
../include/NCVector.h:4:16: warning: when initialized here [-Wreorder]
4 | #define Vector NCVector
| ^~~~~~~~
../include/Vector.h:25:3: note: in expansion of macro 'Vector'
25 | Vector(size_t n) : ptr_(0), size_(0), alloc_(0) { append(n); }
| ^~~~~~
In file included from ../include/NCVector.h:48:
../include/Vector.cxx: In instantiation of 'T* OpenSP::NCVector::erase(const T*, const T*) [with T = OpenSP::Owner]':
../include/Vector.cxx:18:5: required from 'OpenSP::NCVector::~NCVector() [with T = OpenSP::Owner]'
../include/ContentToken.h:123:32: required from here
../include/Vector.cxx:134:12: warning: 'void* memmove(void*, const void*, size_t)' writing to an object of type 'class OpenSP::Owner' with no trivial copy-assignment [-Wclass-memaccess]
134 | memmove((T *)p1, p2, ((const T *)(ptr_ + size_) - p2)*sizeof(T));
| ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../include/ContentToken.h:10:
../include/Owner.h:16:7: note: 'class OpenSP::Owner' declared here
16 | class Owner {
| ^~~~~
../include/Vector.cxx: In instantiation of 'T* OpenSP::Vector::erase(const T*, const T*) [with T = OpenSP::Transition]':
../include/Vector.cxx:18:5: required from 'OpenSP::Vector::~Vector() [with T = OpenSP::Transition]'
../include/ContentToken.h:187:13: required from here
../include/Vector.cxx:134:12: warning: 'void* memmove(void*, const void*, size_t)' writing to an object of non-trivially copyable type 'struct OpenSP::Transition'; use copy-assignment or copy-initialization instead [-Wclass-memaccess]
134 | memmove((T *)p1, p2, ((const T *)(ptr_ + size_) - p2)*sizeof(T));
| ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../include/ContentToken.h:22:15: note: 'struct OpenSP::Transition' declared here
22 | struct SP_API Transition {
| ^~~~~~~~~~
../include/Vector.cxx: In instantiation of 'T* OpenSP::Vector::erase(const T*, const T*) [with T = OpenSP::String]':
../include/Vector.cxx:18:5: required from 'OpenSP::Vector::~Vector() [with T = OpenSP::String]'
../include/Attribute.h:57:29: required from here
../include/Vector.cxx:134:12: warning: 'void* memmove(void*, const void*, size_t)' writing to an object of type 'class OpenSP::String' with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess]
134 | memmove((T *)p1, p2, ((const T *)(ptr_ + size_) - p2)*sizeof(T));
| ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../include/StringC.h:8,
from ../include/Text.h:11:
../include/StringOf.h:23:7: note: 'class OpenSP::String' declared here
23 | class String {
| ^~~~~~
../include/Vector.cxx: In instantiation of 'T* OpenSP::Vector::erase(const T*, const T*) [with T = OpenSP::Attribute]':
../include/Vector.cxx:18:5: required from 'OpenSP::Vector::~Vector() [with T = OpenSP::Attribute]'
../include/Attribute.h:486:27: required from here
../include/Vector.cxx:134:12: warning: 'void* memmove(void*, const void*, size_t)' writing to an object of type 'class OpenSP::Attribute' with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess]
134 | memmove((T *)p1, p2, ((const T *)(ptr_ + size_) - p2)*sizeof(T));
| ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../include/Attributed.h:8,
from ../include/ElementType.h:18,
from ../include/OpenElement.h:12:
../include/Attribute.h:461:14: note: 'class OpenSP::Attribute' declared here
461 | class SP_API Attribute {
| ^~~~~~~~~
../include/Vector.cxx: In instantiation of 'T* OpenSP::Vector