Ticket #7792: main.cpp

File main.cpp, 932 bytes (added by Marco Wannemaker <marco.wannemaker@…>, 10 years ago)

Minimal example resulting in the error.

Line 
1#include <fstream>
2#include <boost/serialization/base_object.hpp>
3#include <boost/archive/text_oarchive.hpp>
4
5// A class, which must not be used as base class (e.g. because the destructor is not
6// virtual).
7class Foo final{
8public:
9 template<class ArchiveType>
10 void serialize(ArchiveType& rArchive,const unsigned int Version){
11 }
12};
13
14
15void main(){
16 // Create an instance of Foo
17 Foo Instance;
18 // Serialize it to a text archive
19 std::fstream OutputFile("OutputFile.txt");
20 if(OutputFile.is_open()){
21 boost::archive::text_oarchive OutputArchive(OutputFile);
22 // Templates instantiated due to the next line cause the following error,
23 // when compiling with Visual Studio 2012 SP1:
24 // [...]boost\type_traits\is_polymorphic.hpp(46): error C3246:
25 // 'boost::detail::is_polymorphic_imp1<T>::d2' : cannot inherit from 'Foo'
26 // as it has been declared as 'final'
27 OutputArchive<<Instance;
28 }
29}