Skip to content
Snippets Groups Projects
Commit 9d4ad324 authored by Boman Romain's avatar Boman Romain
Browse files

fix std::vector<double> problem with swig 4.2.x

parent 8a582baa
No related branches found
No related tags found
1 merge request!10fix std::vector<double> problem with SWIG 4.2.x
Pipeline #44804 passed
......@@ -43,6 +43,11 @@ threads="1"
%include "fwkw.swg"
// Instantiate some std templates
namespace std {
%template(std_vector_double) std::vector<double>;
}
%include "fwk.h"
//%#define SHARED_PTR_DISOWN $disown
......
......@@ -59,7 +59,6 @@ threads="1"
// Instantiate some std templates
namespace std {
%template(std_vector_int) std::vector<int>;
%template(std_vector_double) std::vector<double>;
%template(std_vector_vector_double) std::vector<std::vector<double>>;
%template(std_vector_string) std::vector<std::string>;
}
......
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# Copyright 2020 University of Liège
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# basic test of std::vector<double> binding
# note:
# std_vector_double was defined in tbox.i, but now it is now defined in fwk.i.
# This is because std::vector<double> is a type seen by swig in fwk.
# In version <4.2.0, swig was able to understand that std::vector<double> in fwk
# was the same as std::vector<double> in tbox where the bindings were
# instanciated by the %template command. From 4.2.0, swig fails to understand
# that link and the __setitem__ generates cast failure.
import fwk
v = fwk.std_vector_double()
v.push_back(1.0)
v.push_back(2.0)
# next command fails with swig >4.2.0 if std_vector_double is
# instanciated (%template) in tbox.i:
print('v[0] =', v[0])
v[1] = 3.0
print('vector length =', v.size())
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment