Commit c72bb4c0 authored by Tiago Peixoto's avatar Tiago Peixoto

Enable (and clear) more strict warnings during compilation

parent e0db25e0
......@@ -34,7 +34,7 @@ AC_PROG_INSTALL
AC_CANONICAL_TARGET
dnl turn on warnings
[CXXFLAGS="-Wall -Wextra -Wno-unused-local-typedefs -Wno-unused-parameter ${CXXFLAGS}"]
[CXXFLAGS="-Wall -Wextra -ftemplate-backtrace-limit=0 ${CXXFLAGS}"]
dnl Checks for options
......
......@@ -305,7 +305,6 @@ namespace detail { namespace graph {
ShortestPaths shortest_paths)
{
typedef typename graph_traits<Graph>::vertex_iterator vertex_iterator;
typedef typename graph_traits<Graph>::edge_iterator edge_iterator;
typedef typename graph_traits<Graph>::vertex_descriptor vertex_descriptor;
// Initialize centrality
......@@ -446,7 +445,6 @@ namespace detail { namespace graph {
VertexIndexMap vertex_index)
{
typedef typename graph_traits<Graph>::degree_size_type degree_size_type;
typedef typename graph_traits<Graph>::vertex_descriptor vertex_descriptor;
typedef typename graph_traits<Graph>::edge_descriptor edge_descriptor;
typedef typename mpl::if_c<(is_same<CentralityMap,
dummy_property_map>::value),
......@@ -482,7 +480,6 @@ namespace detail { namespace graph {
VertexIndexMap vertex_index)
{
typedef typename graph_traits<Graph>::degree_size_type degree_size_type;
typedef typename graph_traits<Graph>::vertex_descriptor vertex_descriptor;
typedef typename graph_traits<Graph>::edge_descriptor edge_descriptor;
typedef typename mpl::if_c<(is_same<CentralityMap,
dummy_property_map>::value),
......
......@@ -173,7 +173,6 @@ namespace boost
// We build a custom graph in this algorithm.
typedef adjacency_list <vecS, vecS, directedS, no_property, no_property > MSTImpl;
typedef graph_traits<MSTImpl>::edge_descriptor Edge;
typedef graph_traits<MSTImpl>::vertex_descriptor Vertex;
typedef graph_traits<MSTImpl>::vertex_iterator VItr;
......
......@@ -212,7 +212,6 @@ namespace boost {
inline typename boost::property_traits<WeightMap>::value_type
stoer_wagner_min_cut(const UndirectedGraph& g, WeightMap weights, const boost::bgl_named_params<P, T, R>& params) {
typedef typename boost::graph_traits<UndirectedGraph>::vertex_descriptor vertex_descriptor;
typedef typename std::vector<vertex_descriptor>::size_type heap_container_size_type;
typedef typename boost::property_traits<WeightMap>::value_type weight_type;
typedef boost::bgl_named_params<P, T, R> params_type;
......
......@@ -121,7 +121,7 @@ struct get_closeness
: _comp_size(comp_size) { }
template <class Vertex, class Graph>
void discover_vertex(Vertex u, const Graph&)
void discover_vertex(Vertex, const Graph&)
{
++_comp_size;
}
......
......@@ -46,7 +46,6 @@ struct get_eigenvector
CentralityMap c, double epsilon, size_t max_iter,
long double& eig) const
{
typedef typename property_traits<WeightMap>::value_type c_type;
typedef typename property_traits<CentralityMap>::value_type t_type;
CentralityMap c_temp(vertex_index, num_vertices(g));
......
......@@ -46,7 +46,6 @@ struct get_hits
CentralityMap x, CentralityMap y, double epsilon,
size_t max_iter, long double& eig) const
{
typedef typename property_traits<WeightMap>::value_type c_type;
typedef typename property_traits<CentralityMap>::value_type t_type;
CentralityMap x_temp(vertex_index, num_vertices(g));
......
......@@ -46,7 +46,6 @@ struct get_katz
CentralityMap c, PersonalizationMap beta, long double alpha,
long double epsilon, size_t max_iter) const
{
typedef typename property_traits<WeightMap>::value_type c_type;
typedef typename property_traits<CentralityMap>::value_type t_type;
CentralityMap c_temp(vertex_index, num_vertices(g));
......
......@@ -100,8 +100,6 @@ struct get_trust_transitivity
int64_t target, TrustMap c, InferredTrustMap t) const
{
typedef typename graph_traits<Graph>::vertex_descriptor vertex_t;
typedef typename graph_traits<Graph>::edge_descriptor edge_t;
typedef typename property_traits<TrustMap>::value_type c_type;
typedef typename
property_traits<InferredTrustMap>::value_type::value_type t_type;
......
......@@ -332,7 +332,6 @@ struct move_sweep_dispatch
sampler_map_t sampler = any_cast<sampler_map_t>(asampler);
sampler_map_t cavity_sampler = any_cast<sampler_map_t>(acavity_sampler);
ConstantPropertyMap<int, typename graph_traits<Graph>::edge_descriptor> ce(0);
ConstantPropertyMap<std::array<int, 1>, typename graph_traits<Graph>::vertex_descriptor> cv({-1});
IdentityArrayPropertyMap<typename graph_traits<Graph>::vertex_descriptor> vmap;
boost::typed_identity_property_map<int> identity;
......@@ -362,7 +361,7 @@ struct move_sweep_dispatch
move_sweep(states, m_entries,
wr.get_unchecked(num_vertices(bg)),
b.get_unchecked(num_vertices(g)),
ce, cv, vmap,
cv, vmap,
label.get_unchecked(num_vertices(bg)), vlist, deg_corr,
dense, multigraph, beta,
eweight.get_unchecked(max_edge_index),
......@@ -371,7 +370,7 @@ struct move_sweep_dispatch
nmerges,
merge_map.get_unchecked(num_vertices(g)),
niter, num_vertices(bg),
verbose, rng, S, nmoves, ostats);
verbose, rng, S, nmoves);
}
};
......
This diff is collapsed.
......@@ -324,7 +324,6 @@ struct cov_move_sweep_dispatch
move_sweep(states, m_entries,
wr[0].get().get_unchecked(B),
b.get_unchecked(num_vertices(g)),
ce.get_unchecked(meindex),
cv.get_unchecked(num_vertices(g)),
vmap.get_unchecked(num_vertices(g)),
label.get_unchecked(B),
......@@ -336,7 +335,7 @@ struct cov_move_sweep_dispatch
nmerges,
merge_map.get_unchecked(num_vertices(g)),
niter, B,
verbose, rng, S, nmoves, ostats);
verbose, rng, S, nmoves);
}
else
{
......@@ -387,10 +386,9 @@ struct cov_move_sweep_dispatch
{
move_sweep_overlap(states, m_entries, overlap_stats[0].get(),
wr[0].get().get_unchecked(B),
b.get_unchecked(num_vertices(g)), ce, cv,
b.get_unchecked(num_vertices(g)), cv,
vmap, label.get_unchecked(B),
vlist, deg_corr, dense, multigraph, beta,
eweight[0].get().get_unchecked(max_edge_index[0]),
vweight[0].get().get_unchecked(num_vertices(g)), g,
sequential, parallel, random_move, c, niter,
B, verbose, rng, S, nmoves);
......@@ -402,14 +400,13 @@ struct cov_move_sweep_dispatch
m_entries.emplace_back(num_vertices(state.bg));
coherent_move_sweep_overlap(states, m_entries, overlap_stats[0].get(),
wr[0].get().get_unchecked(B),
b.get_unchecked(num_vertices(g)), ce, cv,
b.get_unchecked(num_vertices(g)), cv,
vmap, label.get_unchecked(B),
vlist, deg_corr, dense, multigraph, beta,
eweight[0].get().get_unchecked(max_edge_index[0]),
vweight[0].get().get_unchecked(num_vertices(g)), g,
sequential, parallel, random_move, c,
sequential, random_move, c,
confine_layers, niter,
B, verbose, rng, S, nmoves);
B, rng, S, nmoves);
}
}
else
......@@ -417,14 +414,10 @@ struct cov_move_sweep_dispatch
merge_sweep_overlap(states, m_entries, overlap_stats[0].get(),
wr[0].get().get_unchecked(B),
b.get_unchecked(num_vertices(g)), ce, cv,
vmap, label.get_unchecked(B),
vlist, deg_corr, dense, multigraph, beta,
eweight[0].get().get_unchecked(max_edge_index[0]),
vweight[0].get().get_unchecked(num_vertices(g)), g,
sequential, parallel, random_move, c, confine_layers,
nmerges, niter,
merge_map.get_unchecked(num_vertices(g)),
B, verbose, rng, S, nmoves);
vmap, label.get_unchecked(B), vlist,
deg_corr, dense, multigraph, g,
random_move, confine_layers, nmerges, niter,
B, rng, S, nmoves);
}
}
}
......
......@@ -215,10 +215,9 @@ struct move_sweep_overlap_dispatch
{
move_sweep_overlap(states, m_entries, overlap_stats,
wr.get_unchecked(num_vertices(bg)),
b.get_unchecked(num_vertices(g)), ce, cv,
b.get_unchecked(num_vertices(g)), cv,
vmap, label.get_unchecked(num_vertices(bg)),
vlist, deg_corr, dense, multigraph, beta,
eweight.get_unchecked(max_edge_index),
vweight.get_unchecked(num_vertices(g)), g,
sequential, parallel, random_move, c, niter,
num_vertices(bg), verbose, rng, S, nmoves);
......@@ -228,29 +227,24 @@ struct move_sweep_overlap_dispatch
vector<EntrySet<Graph>> m_entries(1, EntrySet<Graph>(num_vertices(bg)));
coherent_move_sweep_overlap(states, m_entries, overlap_stats,
wr.get_unchecked(num_vertices(bg)),
b.get_unchecked(num_vertices(g)), ce, cv,
b.get_unchecked(num_vertices(g)), cv,
vmap, label.get_unchecked(num_vertices(bg)),
vlist, deg_corr, dense, multigraph, beta,
eweight.get_unchecked(max_edge_index),
vweight.get_unchecked(num_vertices(g)), g,
sequential, parallel, random_move, c,
sequential, random_move, c,
false, niter,
num_vertices(bg), verbose, rng, S, nmoves);
num_vertices(bg), rng, S, nmoves);
}
}
else
{
merge_sweep_overlap(states, m_entries, overlap_stats,
wr.get_unchecked(num_vertices(bg)),
b.get_unchecked(num_vertices(g)), ce, cv,
vmap, label.get_unchecked(num_vertices(bg)),
vlist, deg_corr, dense, multigraph, beta,
eweight.get_unchecked(max_edge_index),
vweight.get_unchecked(num_vertices(g)), g,
sequential, parallel, random_move, c, false,
nmerges, niter,
merge_map.get_unchecked(num_vertices(g)),
num_vertices(bg), verbose, rng, S, nmoves);
b.get_unchecked(num_vertices(g)), ce, cv, vmap,
label.get_unchecked(num_vertices(bg)), vlist,
deg_corr, dense, multigraph, g, random_move,
false, nmerges, niter,
num_vertices(bg), rng, S, nmoves);
}
}
};
......@@ -387,19 +381,13 @@ do_get_overlap_partition_stats(GraphInterface& gi, boost::any ob,
return partition_stats;
}
double do_get_overlap_parallel_entropy(GraphInterface& gi, boost::any ob,
double do_get_overlap_parallel_entropy(GraphInterface& gi,
overlap_stats_t& overlap_stats)
{
typedef property_map_type::apply<int32_t,
GraphInterface::vertex_index_map_t>::type
vmap_t;
vmap_t b = any_cast<vmap_t>(ob);
double S = 0;
run_action<>()
(gi, std::bind(entropy_parallel_edges_overlap(),
placeholders::_1, b, std::ref(overlap_stats),
placeholders::_1, std::ref(overlap_stats),
std::ref(S)))();
return S;
}
......@@ -513,9 +501,6 @@ void do_get_be_overlap(GraphInterface& gi, GraphInterface& egi, boost::any obe,
typedef property_map_type::apply<vector<int32_t>,
GraphInterface::edge_index_map_t>::type
evmap_t;
typedef property_map_type::apply<int32_t,
GraphInterface::edge_index_map_t>::type
emap_t;
vmap_t b = any_cast<vmap_t>(ob);
evmap_t be = any_cast<evmap_t>(obe);
......@@ -642,9 +627,6 @@ void do_get_bv_overlap(GraphInterface& gi, boost::any ob, boost::any onode_inde
typedef property_map_type::apply<vector<int32_t>,
GraphInterface::vertex_index_map_t>::type
vvmap_t;
typedef property_map_type::apply<vector<int32_t>,
GraphInterface::edge_index_map_t>::type
evmap_t;
vmap_t b = any_cast<vmap_t>(ob);
vimap_t node_index = any_cast<vimap_t>(onode_index);
......@@ -662,8 +644,6 @@ struct get_wr_overlap
template <class Graph, class VProp, class VVProp>
void operator()(Graph& g, VVProp bv, VProp wr) const
{
typedef typename graph_traits<Graph>::vertex_descriptor vertex_t;
for (auto v : vertices_range(g))
{
for (size_t i = 0; i < bv[v].size(); ++i)
......@@ -728,9 +708,6 @@ struct get_augmented_overlap
void operator()(Graph& g, VProp b, VIProp node_index, VProp br_map,
vector<int32_t>& br_b, vector<int32_t>& br_ni) const
{
typedef typename graph_traits<Graph>::vertex_descriptor vertex_t;
unordered_map<std::tuple<int, int>, size_t> idx_map;
vector<std::tuple<int, int>> idx_rmap;
size_t pos = 0;
......@@ -824,8 +801,6 @@ struct get_maj_overlap
template <class Graph, class VProp, class VVProp>
void operator()(Graph& g, VVProp bv, VVProp bc_total, VProp b) const
{
typedef typename graph_traits<Graph>::vertex_descriptor vertex_t;
for (auto v : vertices_range(g))
{
if (bv[v].empty())
......
......@@ -54,7 +54,6 @@ struct get_communities
pair<bool, string> verbose) const
{
typedef typename graph_traits<Graph>::vertex_descriptor vertex_t;
typedef typename graph_traits<Graph>::edge_descriptor edge_t;
typedef typename property_traits<WeightMap>::key_type weight_key_t;
......@@ -490,10 +489,6 @@ struct get_modularity
template <class Graph, class WeightMap, class CommunityMap>
void operator()(const Graph& g, WeightMap weights, CommunityMap b, double& Q) const
{
typedef typename property_traits<WeightMap>::key_type weight_key_t;
typedef typename property_traits<WeightMap>::value_type weight_val_t;
typedef typename property_traits<CommunityMap>::value_type s_val_t;
vector<double> er, err;
double W = 0;
......
......@@ -45,15 +45,10 @@ struct get_community_network_vertices
VertexProperty vertex_count) const
{
typedef typename graph_traits<Graph>::vertex_descriptor vertex_t;
typedef typename graph_traits<Graph>::edge_descriptor edge_t;
typedef typename graph_traits<CommunityGraph>::vertex_descriptor
cvertex_t;
typedef typename graph_traits<CommunityGraph>::edge_descriptor
cedge_t;
typedef typename boost::property_traits<CommunityMap>::value_type
s_type;
typedef typename boost::property_traits<VertexProperty>::value_type
vprop_type;
#ifdef HAVE_SPARSEHASH
google::dense_hash_map<s_type, vertex_t, std::hash<s_type> > comms;
......@@ -114,7 +109,6 @@ struct get_community_network_edges
bool self_loops, bool parallel_edges) const
{
typedef typename graph_traits<Graph>::vertex_descriptor vertex_t;
typedef typename graph_traits<Graph>::edge_descriptor edge_t;
typedef typename graph_traits<CommunityGraph>::vertex_descriptor
cvertex_t;
typedef typename graph_traits<CommunityGraph>::edge_descriptor
......@@ -262,9 +256,6 @@ struct get_vertex_community_property_sum
CCommunityMap cs_map, Vprop vprop, Vprop cvprop) const
{
typedef typename graph_traits<Graph>::vertex_descriptor vertex_t;
typedef typename graph_traits<Graph>::edge_descriptor edge_t;
typedef typename graph_traits<CommunityGraph>::vertex_descriptor
cvertex_t;
typedef typename boost::property_traits<CommunityMap>::value_type
s_type;
......@@ -308,7 +299,6 @@ struct get_edge_community_property_sum
bool self_loops) const
{
typedef typename graph_traits<Graph>::vertex_descriptor vertex_t;
typedef typename graph_traits<Graph>::edge_descriptor edge_t;
typedef typename graph_traits<CommunityGraph>::vertex_descriptor
cvertex_t;
typedef typename graph_traits<CommunityGraph>::edge_descriptor
......
......@@ -57,7 +57,6 @@ void sum_eprops(GraphInterface& gi, GraphInterface& cgi,
void community_network_eavg(GraphInterface& gi, GraphInterface& cgi,
boost::any community_property,
boost::any condensed_community_property,
boost::any edge_count,
boost::any eweight,
boost::python::list aeprops,
bool self_loops)
......
......@@ -67,7 +67,6 @@ struct get_vertex_sum_dispatch
void community_network_vavg(GraphInterface& gi, GraphInterface& cgi,
boost::any community_property,
boost::any condensed_community_property,
boost::any vertex_count,
boost::any vweight,
boost::python::list avprops)
{
......
......@@ -33,9 +33,6 @@ struct get_line_graph
LineGraph& line_graph, EdgeIndexMap edge_index,
LGVertexIndex vmap) const
{
typedef typename graph_traits<Graph>::vertex_descriptor vertex_t;
typedef boost::property<edge_index_t, size_t> EdgeProperty;
typedef typename graph_traits<LineGraph>::vertex_descriptor lg_vertex_t;
typedef HashedDescriptorMap<EdgeIndexMap,lg_vertex_t>
edge_to_vertex_map_t;
......
......@@ -67,7 +67,7 @@ target(const pair<size_t, bool>& e,
template <class Nmap, class Graph>
void add_count(size_t s, size_t t, Nmap& nvmap, Graph& g)
void add_count(size_t s, size_t t, Nmap& nvmap, Graph&)
{
if (!is_directed::apply<Graph>::type::value && s > t)
std::swap(s, t);
......@@ -76,7 +76,7 @@ void add_count(size_t s, size_t t, Nmap& nvmap, Graph& g)
}
template <class Nmap, class Graph>
void remove_count(size_t s, size_t t, Nmap& nvmap, Graph& g)
void remove_count(size_t s, size_t t, Nmap& nvmap, Graph&)
{
if (!is_directed::apply<Graph>::type::value && s > t)
std::swap(s, t);
......@@ -88,7 +88,7 @@ void remove_count(size_t s, size_t t, Nmap& nvmap, Graph& g)
}
template <class Nmap, class Graph>
size_t get_count(size_t s, size_t t, Nmap& nvmap, Graph& g)
size_t get_count(size_t s, size_t t, Nmap& nvmap, Graph&)
{
if (!is_directed::apply<Graph>::type::value && s > t)
std::swap(s, t);
......@@ -384,7 +384,7 @@ public:
ErdosRewireStrategy(Graph& g, EdgeIndexMap edge_index,
vector<edge_t>& edges, CorrProb, BlockDeg,
bool, rng_t& rng, bool parallel_edges)
bool, rng_t& rng, bool)
: _g(g), _edge_index(edge_index), _edges(edges),
_vertices(HardNumVertices()(g)), _rng(rng)
{
......@@ -566,7 +566,7 @@ public:
bool, rng_t& rng, bool parallel_edges)
: base_t(g, edge_index, edges, rng, parallel_edges), _g(g) {}
pair<size_t,bool> get_target_edge(pair<size_t,bool>& e, bool parallel_edges)
pair<size_t,bool> get_target_edge(pair<size_t,bool>& e, bool)
{
std::uniform_int_distribution<> sample(0, base_t::_edges.size() - 1);
pair<size_t, bool> et = make_pair(sample(base_t::_rng), false);
......@@ -637,7 +637,7 @@ public:
}
}
pair<size_t,bool> get_target_edge(pair<size_t, bool>& e, bool parallel_edge)
pair<size_t,bool> get_target_edge(pair<size_t, bool>& e, bool)
{
if (!is_directed::apply<Graph>::type::value)
{
......@@ -769,8 +769,7 @@ public:
return _blockdeg.get_block(v, g);
}
pair<size_t, bool> get_target_edge(pair<size_t, bool>& e,
bool parallel_edges)
pair<size_t, bool> get_target_edge(pair<size_t, bool>& e, bool)
{
if (!is_directed::apply<Graph>::type::value)
{
......@@ -1017,8 +1016,7 @@ public:
return _blockdeg.get_block(v, g);
}
pair<size_t, bool> get_target_edge(pair<size_t, bool>& e,
bool parallel_edges)
pair<size_t, bool> get_target_edge(pair<size_t, bool>& e, bool)
{
if (!is_directed::apply<Graph>::type::value)
{
......@@ -1240,7 +1238,7 @@ public:
TradBlockRewireStrategy(Graph& g, EdgeIndexMap edge_index,
vector<edge_t>& edges, CorrProb corr_prob,
BlockDeg blockdeg, bool, rng_t& rng,
bool parallel_edges)
bool)
: _g(g), _edge_index(edge_index), _edges(edges), _corr_prob(corr_prob),
_blockdeg(blockdeg), _rng(rng), _sampler(nullptr)
......
......@@ -147,7 +147,7 @@ struct export_vector_types
}
template <class ValueType>
void wrap_array(class_<vector<ValueType> >& vc, boost::mpl::false_) const
void wrap_array(class_<vector<ValueType> >&, boost::mpl::false_) const
{
}
};
......@@ -359,7 +359,7 @@ struct graph_type_name
{
typedef void result_type;
template <class Graph>
void operator()(const Graph& g, string& name) const
void operator()(const Graph&, string& name) const
{
using boost::python::detail::gcc_demangle;
name = string(gcc_demangle(typeid(Graph).name()));
......
......@@ -453,8 +453,6 @@ struct write_to_file
void operator()(ostream& stream, Graph& g, IndexMap index_map,
dynamic_properties& dp, const string& format) const
{
typedef typename graph_traits<Graph>::vertex_descriptor vertex_t;
if (format == "dot")
{
string name = graphviz_insert_index(dp, index_map, false);
......
......@@ -259,7 +259,7 @@ struct graph_range_traits
{
typedef GraphInterface::graph_index_map_t index_map_t;
template <class Graph>
static index_map_t get_index_map(Graph& g) { return index_map_t(0); }
static index_map_t get_index_map(Graph&) { return index_map_t(0); }
struct graph_range
{
......
......@@ -35,7 +35,7 @@ void operator+=(std::vector<Val1>& v1, const std::vector<Val2>& v2)
v1[i] += v2[i];
}
void operator*=(std::string& v1, const std::string& v2)
void operator*=(std::string&, const std::string&)
{
throw GraphException("Cannot multiply strings.");
}
......@@ -157,7 +157,6 @@ struct do_out_edges_op
typename mpl::if_<std::is_same<eval_t, size_t>,
int64_t, eval_t>::type,
GraphInterface::vertex_index_map_t>::type VProp;
typedef typename property_traits<VProp>::value_type vval_t;
auto vprop = boost::any_cast<VProp>(avprop).get_unchecked(num_vertices(g));
......
......@@ -190,11 +190,10 @@ python::object add_edge(python::object g, const python::object& s,
struct get_edge_descriptor
{
template <class Graph>
void operator()(const Graph& g, const python::object& e,
void operator()(const Graph&, const python::object& e,
typename GraphInterface::edge_t& edge,
bool& found) const
{
typedef typename graph_traits<Graph>::edge_descriptor edge_t;
PythonEdge<Graph>& pe = python::extract<PythonEdge<Graph>&>(e);
pe.CheckValid();
pe.SetValid(false);
......
......@@ -463,7 +463,7 @@ public:
}
template <class PythonDescriptor>
void set_value(const PythonDescriptor& key, const value_type& val,
void set_value(const PythonDescriptor&, const value_type&,
std::false_type)
{
throw ValueException("property is read-only");
......@@ -508,16 +508,16 @@ public:
typename boost::mpl::not_<
typename boost::mpl::has_key<numpy_types, value_type>::type >
::type>::type isnt_vector_map;
return get_array(_pmap, size, isnt_vector_map());
return get_array(size, isnt_vector_map());
}
boost::python::object get_array(PropertyMap pmap, size_t size, boost::mpl::bool_<false>)
boost::python::object get_array(size_t size, boost::mpl::bool_<false>)
{
_pmap.reserve(size);
return wrap_vector_not_owned(_pmap.get_storage());
}
boost::python::object get_array(PropertyMap pmap, size_t size, boost::mpl::bool_<true>)
boost::python::object get_array(size_t, boost::mpl::bool_<true>)
{
return boost::python::object();
}
......
......@@ -534,7 +534,7 @@ struct tuple_combine
template <class... T>
struct tuple_combine<0, T...>
{
void operator()(size_t& seed, const std::tuple<T...>& v) const {}
void operator()(size_t&, const std::tuple<T...>&) const {}
};
template <class... T>
......
......@@ -121,8 +121,7 @@ struct get_layout
Value _r;
template <class Graph, class Vertex, class KVal, class DVal>
Value operator()(Vertex v1, Vertex v2, KVal k, DVal dist,
const Graph&) const
Value operator()(Vertex, Vertex, KVal k, DVal dist, const Graph&) const
{
return _r * power(k, 2) / dist;
}
......
......@@ -70,7 +70,7 @@ void sfdp_layout(GraphInterface& g, boost::any pos, boost::any vweight,
std::bind(get_sfdp_layout(C, K, p, theta, gamma, mu, mu_p, init_step,
step_schedule, max_level, epsilon,
max_iter, adaptive),