Opened 9 years ago

Last modified 6 years ago

#8767 new Bugs

named_function_params.hpp: Unused variable warnings: (weight_map, tag_namespace)

Reported by: rmann@… Owned by: Jeremiah Willcock
Milestone: To Be Determined Component: graph
Version: Boost 1.53.0 Severity: Problem
Keywords: Cc:

Description

Similar to bug https://svn.boost.org/trac/boost/ticket/6926, building Boost 1.53 with Xcode 4.6.3 gives many warnings like the following:

In file included from ...lib/../../../eos/mesh/face_graph.cpp:1: In file included from ...lib/boost_1_53_0/boost/graph/connected_components.hpp:15: In file included from ...lib/boost_1_53_0/boost/graph/depth_first_search.hpp:21: ...lib/boost_1_53_0/boost/graph/named_function_params.hpp:335:7: warning: unused variable '_weight_map' [-Wunused-variable]

BOOST_BGL_DECLARE_NAMED_PARAMS

...lib/boost_1_53_0/boost/graph/named_function_params.hpp:63:5: note: expanded from macro 'BOOST_BGL_DECLARE_NAMED_PARAMS'

BOOST_BGL_ONE_PARAM_CREF(weight_map, edge_weight) \

...lib/boost_1_53_0/boost/graph/named_function_params.hpp:334:45: note: expanded from macro 'BOOST_BGL_ONE_PARAM_CREF' #define BOOST_BGL_ONE_PARAM_CREF(name, key) BOOST_PARAMETER_NAME(name)

...lib/boost_1_53_0/boost/parameter/name.hpp:139:9: note: expanded from macro 'BOOST_PARAMETER_NAME'

, BOOST_PARAMETER_SIMPLE_NAME \

note: (skipping 6 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all) <scratch space>:113:1: note: expanded from macro '_' _weight_map ...lib/boost_1_53_0/boost/parameter/name.hpp:110:53: note: expanded from macro 'BOOST_PARAMETER_BASIC_NAME'

BOOST_PARAMETER_NAME_OBJECT(tag_namespace::tag, name)

...lib/boost_1_53_0/boost/parameter/name.hpp:86:48: note: expanded from macro 'BOOST_PARAMETER_NAME_OBJECT'

::boost::parameter::keyword<tag> const& name \

Change History (6)

comment:1 by Jeremiah Willcock, 9 years ago

Is this from Clang or GCC? Would it be possible to preprocess the test file you have using -E -P (or Clang's equivalent), then try to compile it again and send the regions of the file around where the warnings occur? Alternatively, is there a test program in Boost that triggers these warnings with Clang?

comment:2 by rmann@…, 9 years ago

Sorry, yes, this is with clang.

I'm not sure what you're asking for. I can tell you exactly where in the file this happens. It's <named_function_params.hpp:333>, where the BOOST_BGL_DECLARE_NAMED_PARAMS macro is expanded. I dealt with it by replacing that line with:

#if __clang__
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wunused-variable"
#endif
      BOOST_BGL_DECLARE_NAMED_PARAMS
#if __clang__
#pragma clang diagnostic pop
#endif

comment:3 by anonymous, 9 years ago

For what it's worth, this is the invocation used by Xcode (somewhat sanitized of proprietary info):

    /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang
-x c++
-arch i386
-fmessage-length=0
-std=gnu++11
-stdlib=libc++
-Wno-trigraphs
-fpascal-strings
-O0
-Wno-missing-field-initializers
-Wno-missing-prototypes
-Wreturn-type
-Wno-non-virtual-dtor
-Wno-overloaded-virtual
-Wno-exit-time-destructors
-Wformat
-Wno-missing-braces
-Wparentheses
-Wswitch
-Wno-unused-function
-Wno-unused-label
-Wno-unused-parameter
-Wunused-variable
-Wunused-value
-Wempty-body
-Wuninitialized
-Wno-unknown-pragmas
-Wno-shadow
-Wno-four-char-constants
-Wno-conversion
-Wconstant-conversion
-Wint-conversion
-Wenum-conversion
-Wno-shorten-64-to-32
-Wno-newline-eof
-Wno-c++11-extensions
-DDEBUG=1
-DqDebugLogging=1
-isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator6.1.sdk
-fexceptions
-fasm-blocks
-fstrict-aliasing
-Wdeprecated-declarations
-Winvalid-offsetof
-g
-fvisibility-inlines-hidden
-Wno-sign-conversion
-mios-simulator-version-min=6.1
-iquote /Users/me/Library/Developer/Xcode/DerivedData/MyCompanyScan-auobiejrzuhkuqauzyhmxrwpscqz/Build/Intermediates/MyCompanyScan.build/Debug-iphonesimulator/MyCompanyScan.build/MyCompanyScan-generated-files.hmap
-I/Users/me/Library/Developer/Xcode/DerivedData/MyCompanyScan-auobiejrzuhkuqauzyhmxrwpscqz/Build/Intermediates/MyCompanyScan.build/Debug-iphonesimulator/MyCompanyScan.build/MyCompanyScan-own-target-headers.hmap
-I/Users/me/Library/Developer/Xcode/DerivedData/MyCompanyScan-auobiejrzuhkuqauzyhmxrwpscqz/Build/Intermediates/MyCompanyScan.build/Debug-iphonesimulator/MyCompanyScan.build/MyCompanyScan-all-target-headers.hmap
-iquote /Users/me/Library/Developer/Xcode/DerivedData/MyCompanyScan-auobiejrzuhkuqauzyhmxrwpscqz/Build/Intermediates/MyCompanyScan.build/Debug-iphonesimulator/MyCompanyScan.build/MyCompanyScan-project-headers.hmap
-I/Users/me/Library/Developer/Xcode/DerivedData/MyCompanyScan-auobiejrzuhkuqauzyhmxrwpscqz/Build/Products/Debug-iphonesimulator/include
-I/Users/me/Projects/Clients/MyCompany/repo/trunk/iOS/Controller/lib/boost_1_53_0
-I/Users/me/Projects/Clients/MyCompany/repo/trunk/iOS/Controller/lib/eigen
-I/Users/me/Projects/Clients/MyCompany/repo/trunk/iOS/Controller/lib
-I/Users/me/Projects/Clients/MyCompany/repo/trunk/iOS/Controller/../..
-I/Users/me/Projects/Clients/MyCompany/repo/trunk/iOS/Controller/lib/protobuf-2.4.1
-I/Users/me/Projects/Clients/MyCompany/repo/trunk/iOS/Controller/lib/protobuf-2.4.1/src
-I/Users/me/Library/Developer/Xcode/DerivedData/MyCompanyScan-auobiejrzuhkuqauzyhmxrwpscqz/Build/Intermediates/MyCompanyScan.build/Debug-iphonesimulator/MyCompanyScan.build/DerivedSources/i386
-I/Users/me/Library/Developer/Xcode/DerivedData/MyCompanyScan-auobiejrzuhkuqauzyhmxrwpscqz/Build/Intermediates/MyCompanyScan.build/Debug-iphonesimulator/MyCompanyScan.build/DerivedSources
-F/Users/me/Library/Developer/Xcode/DerivedData/MyCompanyScan-auobiejrzuhkuqauzyhmxrwpscqz/Build/Products/Debug-iphonesimulator
-F/Users/me/Projects/Clients/MyCompany/repo/trunk/iOS/Controller/lib
-F/Applications/Development/Reveal.app/Contents/SharedSupport/iOS-Libraries
-O3
-include /Users/me/Library/Developer/Xcode/DerivedData/MyCompanyScan-auobiejrzuhkuqauzyhmxrwpscqz/Build/Intermediates/PrecompiledHeaders/MyCompanyScan-Prefix-gejrsvewfhgkanargppwqajbnhcr/MyCompanyScan-Prefix.pch
-MMD
-MT dependencies
-MF /Users/me/Library/Developer/Xcode/DerivedData/MyCompanyScan-auobiejrzuhkuqauzyhmxrwpscqz/Build/Intermediates/MyCompanyScan.build/Debug-iphonesimulator/MyCompanyScan.build/Objects-normal/i386/face_graph.d
--serialize-diagnostics /Users/me/Library/Developer/Xcode/DerivedData/MyCompanyScan-auobiejrzuhkuqauzyhmxrwpscqz/Build/Intermediates/MyCompanyScan.build/Debug-iphonesimulator/MyCompanyScan.build/Objects-normal/i386/face_graph.dia
-c /Users/me/Projects/Clients/MyCompany/repo/trunk/iOS/Controller/lib/../../../eos/mesh/face_graph.cpp
-o /Users/me/Library/Developer/Xcode/DerivedData/MyCompanyScan-auobiejrzuhkuqauzyhmxrwpscqz/Build/Intermediates/MyCompanyScan.build/Debug-iphonesimulator/MyCompanyScan.build/Objects-normal/i386/face_graph.o

comment:4 by Jeremiah Willcock, 9 years ago

I can't tell from the macro definitions where the variable that the compiler is complaining about is coming from. I don't see any local variables in those macros, so having the relevant parts of the preprocessed output might help to show what particular code is causing the warnings.

comment:5 by anonymous, 9 years ago

I tried to add an attachment, but even compressed it's too big for the Trac limits. Here's the relevant part:

namespace graph {
namespace keywords {


namespace tag {
    struct weight_map {
        static char const* keyword_name() { return "weight_map"; }
        typedef boost::parameter::value_type< boost::mpl::_2, weight_map, boost::parameter::void_ > _;
        typedef boost::parameter::value_type< boost::mpl::_2, weight_map, boost::parameter::void_ > _1;
    };
}
namespace {
    ::boost::parameter::keyword<tag::weight_map> const& _weight_map = ::boost::parameter::keyword<tag::weight_map>::instance;
} 

namespace tag { struct weight_map2 { static char const* keyword_name() { return "weight_map2"; } typedef boost::parameter::value_type< boost::mpl::_2, weight_map2, boost::parameter::void_ > _; typedef boost::parameter::value_type< boost::mpl::_2, weight_map2, boost::parameter::void_ > _1; }; } namespace { ::boost::parameter::keyword<tag::weight_map2> const& _weight_map2 = ::boost::parameter::keyword<tag::weight_map2>::instance; } 
namespace tag { struct distance_map { static char const* keyword_name() { return "distance_map"; } typedef boost::parameter::value_type< boost::mpl::_2, distance_map, boost::parameter::void_ > _; typedef boost::parameter::value_type< boost::mpl::_2, distance_map, boost::parameter::void_ > _1; }; } namespace { ::boost::parameter::keyword<tag::distance_map> const& _distance_map = ::boost::parameter::keyword<tag::distance_map>::instance; } 
namespace tag { struct predecessor_map { static char const* keyword_name() { return "predecessor_map"; } typedef boost::parameter::value_type< boost::mpl::_2, predecessor_map, boost::parameter::void_ > _; typedef boost::parameter::value_type< boost::mpl::_2, predecessor_map, boost::parameter::void_ > _1; }; } namespace { ::boost::parameter::keyword<tag::predecessor_map> const& _predecessor_map = ::boost::parameter::keyword<tag::predecessor_map>::instance; } 
namespace tag { struct rank_map { static char const* keyword_name() { return "rank_map"; } typedef boost::parameter::value_type< boost::mpl::_2, rank_map, boost::parameter::void_ > _; typedef boost::parameter::value_type< boost::mpl::_2, rank_map, boost::parameter::void_ > _1; }; } namespace { ::boost::parameter::keyword<tag::rank_map> const& _rank_map = ::boost::parameter::keyword<tag::rank_map>::instance; } 
namespace tag { struct root_map { static char const* keyword_name() { return "root_map"; } typedef boost::parameter::value_type< boost::mpl::_2, root_map, boost::parameter::void_ > _; typedef boost::parameter::value_type< boost::mpl::_2, root_map, boost::parameter::void_ > _1; }; } namespace { ::boost::parameter::keyword<tag::root_map> const& _root_map = ::boost::parameter::keyword<tag::root_map>::instance; } 
namespace tag { struct root_vertex { static char const* keyword_name() { return "root_vertex"; } typedef boost::parameter::value_type< boost::mpl::_2, root_vertex, boost::parameter::void_ > _; typedef boost::parameter::value_type< boost::mpl::_2, root_vertex, boost::parameter::void_ > _1; }; } namespace { ::boost::parameter::keyword<tag::root_vertex> const& _root_vertex = ::boost::parameter::keyword<tag::root_vertex>::instance; } 
namespace tag { struct edge_centrality_map { static char const* keyword_name() { return "edge_centrality_map"; } typedef boost::parameter::value_type< boost::mpl::_2, edge_centrality_map, boost::parameter::void_ > _; typedef boost::parameter::value_type< boost::mpl::_2, edge_centrality_map, boost::parameter::void_ > _1; }; } namespace { ::boost::parameter::keyword<tag::edge_centrality_map> const& _edge_centrality_map = ::boost::parameter::keyword<tag::edge_centrality_map>::instance; } 
namespace tag { struct centrality_map { static char const* keyword_name() { return "centrality_map"; } typedef boost::parameter::value_type< boost::mpl::_2, centrality_map, boost::parameter::void_ > _; typedef boost::parameter::value_type< boost::mpl::_2, centrality_map, boost::parameter::void_ > _1; }; } namespace { ::boost::parameter::keyword<tag::centrality_map> const& _centrality_map = ::boost::parameter::keyword<tag::centrality_map>::instance; } 
namespace tag { struct parity_map { static char const* keyword_name() { return "parity_map"; } typedef boost::parameter::value_type< boost::mpl::_2, parity_map, boost::parameter::void_ > _; typedef boost::parameter::value_type< boost::mpl::_2, parity_map, boost::parameter::void_ > _1; }; } namespace { ::boost::parameter::keyword<tag::parity_map> const& _parity_map = ::boost::parameter::keyword<tag::parity_map>::instance; } 
namespace tag { struct color_map { static char const* keyword_name() { return "color_map"; } typedef boost::parameter::value_type< boost::mpl::_2, color_map, boost::parameter::void_ > _; typedef boost::parameter::value_type< boost::mpl::_2, color_map, boost::parameter::void_ > _1; }; } namespace { ::boost::parameter::keyword<tag::color_map> const& _color_map = ::boost::parameter::keyword<tag::color_map>::instance; } 
namespace tag { struct edge_color_map { static char const* keyword_name() { return "edge_color_map"; } typedef boost::parameter::value_type< boost::mpl::_2, edge_color_map, boost::parameter::void_ > _; typedef boost::parameter::value_type< boost::mpl::_2, edge_color_map, boost::parameter::void_ > _1; }; } namespace { ::boost::parameter::keyword<tag::edge_color_map> const& _edge_color_map = ::boost::parameter::keyword<tag::edge_color_map>::instance; } 
namespace tag { struct capacity_map { static char const* keyword_name() { return "capacity_map"; } typedef boost::parameter::value_type< boost::mpl::_2, capacity_map, boost::parameter::void_ > _; typedef boost::parameter::value_type< boost::mpl::_2, capacity_map, boost::parameter::void_ > _1; }; } namespace { ::boost::parameter::keyword<tag::capacity_map> const& _capacity_map = ::boost::parameter::keyword<tag::capacity_map>::instance; } 
namespace tag { struct residual_capacity_map { static char const* keyword_name() { return "residual_capacity_map"; } typedef boost::parameter::value_type< boost::mpl::_2, residual_capacity_map, boost::parameter::void_ > _; typedef boost::parameter::value_type< boost::mpl::_2, residual_capacity_map, boost::parameter::void_ > _1; }; } namespace { ::boost::parameter::keyword<tag::residual_capacity_map> const& _residual_capacity_map = ::boost::parameter::keyword<tag::residual_capacity_map>::instance; } 
namespace tag { struct reverse_edge_map { static char const* keyword_name() { return "reverse_edge_map"; } typedef boost::parameter::value_type< boost::mpl::_2, reverse_edge_map, boost::parameter::void_ > _; typedef boost::parameter::value_type< boost::mpl::_2, reverse_edge_map, boost::parameter::void_ > _1; }; } namespace { ::boost::parameter::keyword<tag::reverse_edge_map> const& _reverse_edge_map = ::boost::parameter::keyword<tag::reverse_edge_map>::instance; } 
namespace tag { struct discover_time_map { static char const* keyword_name() { return "discover_time_map"; } typedef boost::parameter::value_type< boost::mpl::_2, discover_time_map, boost::parameter::void_ > _; typedef boost::parameter::value_type< boost::mpl::_2, discover_time_map, boost::parameter::void_ > _1; }; } namespace { ::boost::parameter::keyword<tag::discover_time_map> const& _discover_time_map = ::boost::parameter::keyword<tag::discover_time_map>::instance; } 
namespace tag { struct lowpoint_map { static char const* keyword_name() { return "lowpoint_map"; } typedef boost::parameter::value_type< boost::mpl::_2, lowpoint_map, boost::parameter::void_ > _; typedef boost::parameter::value_type< boost::mpl::_2, lowpoint_map, boost::parameter::void_ > _1; }; } namespace { ::boost::parameter::keyword<tag::lowpoint_map> const& _lowpoint_map = ::boost::parameter::keyword<tag::lowpoint_map>::instance; } 
namespace tag { struct vertex_index_map { static char const* keyword_name() { return "vertex_index_map"; } typedef boost::parameter::value_type< boost::mpl::_2, vertex_index_map, boost::parameter::void_ > _; typedef boost::parameter::value_type< boost::mpl::_2, vertex_index_map, boost::parameter::void_ > _1; }; } namespace { ::boost::parameter::keyword<tag::vertex_index_map> const& _vertex_index_map = ::boost::parameter::keyword<tag::vertex_index_map>::instance; } 
namespace tag { struct vertex_index1_map { static char const* keyword_name() { return "vertex_index1_map"; } typedef boost::parameter::value_type< boost::mpl::_2, vertex_index1_map, boost::parameter::void_ > _; typedef boost::parameter::value_type< boost::mpl::_2, vertex_index1_map, boost::parameter::void_ > _1; }; } namespace { ::boost::parameter::keyword<tag::vertex_index1_map> const& _vertex_index1_map = ::boost::parameter::keyword<tag::vertex_index1_map>::instance; } 
namespace tag { struct vertex_index2_map { static char const* keyword_name() { return "vertex_index2_map"; } typedef boost::parameter::value_type< boost::mpl::_2, vertex_index2_map, boost::parameter::void_ > _; typedef boost::parameter::value_type< boost::mpl::_2, vertex_index2_map, boost::parameter::void_ > _1; }; } namespace { ::boost::parameter::keyword<tag::vertex_index2_map> const& _vertex_index2_map = ::boost::parameter::keyword<tag::vertex_index2_map>::instance; } 
namespace tag { struct vertex_assignment_map { static char const* keyword_name() { return "vertex_assignment_map"; } typedef boost::parameter::value_type< boost::mpl::_2, vertex_assignment_map, boost::parameter::void_ > _; typedef boost::parameter::value_type< boost::mpl::_2, vertex_assignment_map, boost::parameter::void_ > _1; }; } namespace { ::boost::parameter::keyword<tag::vertex_assignment_map> const& _vertex_assignment_map = ::boost::parameter::keyword<tag::vertex_assignment_map>::instance; } 
namespace tag { struct visitor { static char const* keyword_name() { return "visitor"; } typedef boost::parameter::value_type< boost::mpl::_2, visitor, boost::parameter::void_ > _; typedef boost::parameter::value_type< boost::mpl::_2, visitor, boost::parameter::void_ > _1; }; } namespace { ::boost::parameter::keyword<tag::visitor> const& _visitor = ::boost::parameter::keyword<tag::visitor>::instance; } 
namespace tag { struct distance_compare { static char const* keyword_name() { return "distance_compare"; } typedef boost::parameter::value_type< boost::mpl::_2, distance_compare, boost::parameter::void_ > _; typedef boost::parameter::value_type< boost::mpl::_2, distance_compare, boost::parameter::void_ > _1; }; } namespace { ::boost::parameter::keyword<tag::distance_compare> const& _distance_compare = ::boost::parameter::keyword<tag::distance_compare>::instance; } 
namespace tag { struct distance_combine { static char const* keyword_name() { return "distance_combine"; } typedef boost::parameter::value_type< boost::mpl::_2, distance_combine, boost::parameter::void_ > _; typedef boost::parameter::value_type< boost::mpl::_2, distance_combine, boost::parameter::void_ > _1; }; } namespace { ::boost::parameter::keyword<tag::distance_combine> const& _distance_combine = ::boost::parameter::keyword<tag::distance_combine>::instance; } 
namespace tag { struct distance_inf { static char const* keyword_name() { return "distance_inf"; } typedef boost::parameter::value_type< boost::mpl::_2, distance_inf, boost::parameter::void_ > _; typedef boost::parameter::value_type< boost::mpl::_2, distance_inf, boost::parameter::void_ > _1; }; } namespace { ::boost::parameter::keyword<tag::distance_inf> const& _distance_inf = ::boost::parameter::keyword<tag::distance_inf>::instance; } 
namespace tag { struct distance_zero { static char const* keyword_name() { return "distance_zero"; } typedef boost::parameter::value_type< boost::mpl::_2, distance_zero, boost::parameter::void_ > _; typedef boost::parameter::value_type< boost::mpl::_2, distance_zero, boost::parameter::void_ > _1; }; } namespace { ::boost::parameter::keyword<tag::distance_zero> const& _distance_zero = ::boost::parameter::keyword<tag::distance_zero>::instance; } 
namespace tag { struct edge_copy { static char const* keyword_name() { return "edge_copy"; } typedef boost::parameter::value_type< boost::mpl::_2, edge_copy, boost::parameter::void_ > _; typedef boost::parameter::value_type< boost::mpl::_2, edge_copy, boost::parameter::void_ > _1; }; } namespace { ::boost::parameter::keyword<tag::edge_copy> const& _edge_copy = ::boost::parameter::keyword<tag::edge_copy>::instance; } 
namespace tag { struct vertex_copy { static char const* keyword_name() { return "vertex_copy"; } typedef boost::parameter::value_type< boost::mpl::_2, vertex_copy, boost::parameter::void_ > _; typedef boost::parameter::value_type< boost::mpl::_2, vertex_copy, boost::parameter::void_ > _1; }; } namespace { ::boost::parameter::keyword<tag::vertex_copy> const& _vertex_copy = ::boost::parameter::keyword<tag::vertex_copy>::instance; } 
namespace tag { struct buffer { static char const* keyword_name() { return "buffer"; } typedef boost::parameter::value_type< boost::mpl::_2, buffer, boost::parameter::void_ > _; typedef boost::parameter::value_type< boost::mpl::_2, buffer, boost::parameter::void_ > _1; }; } namespace { ::boost::parameter::keyword<tag::buffer> const& _buffer = ::boost::parameter::keyword<tag::buffer>::instance; } 
namespace tag { struct orig_to_copy { static char const* keyword_name() { return "orig_to_copy"; } typedef boost::parameter::value_type< boost::mpl::_2, orig_to_copy, boost::parameter::void_ > _; typedef boost::parameter::value_type< boost::mpl::_2, orig_to_copy, boost::parameter::void_ > _1; }; } namespace { ::boost::parameter::keyword<tag::orig_to_copy> const& _orig_to_copy = ::boost::parameter::keyword<tag::orig_to_copy>::instance; } 
namespace tag { struct isomorphism_map { static char const* keyword_name() { return "isomorphism_map"; } typedef boost::parameter::value_type< boost::mpl::_2, isomorphism_map, boost::parameter::void_ > _; typedef boost::parameter::value_type< boost::mpl::_2, isomorphism_map, boost::parameter::void_ > _1; }; } namespace { ::boost::parameter::keyword<tag::isomorphism_map> const& _isomorphism_map = ::boost::parameter::keyword<tag::isomorphism_map>::instance; } 
namespace tag { struct vertex_invariant { static char const* keyword_name() { return "vertex_invariant"; } typedef boost::parameter::value_type< boost::mpl::_2, vertex_invariant, boost::parameter::void_ > _; typedef boost::parameter::value_type< boost::mpl::_2, vertex_invariant, boost::parameter::void_ > _1; }; } namespace { ::boost::parameter::keyword<tag::vertex_invariant> const& _vertex_invariant = ::boost::parameter::keyword<tag::vertex_invariant>::instance; } 
namespace tag { struct vertex_invariant1 { static char const* keyword_name() { return "vertex_invariant1"; } typedef boost::parameter::value_type< boost::mpl::_2, vertex_invariant1, boost::parameter::void_ > _; typedef boost::parameter::value_type< boost::mpl::_2, vertex_invariant1, boost::parameter::void_ > _1; }; } namespace { ::boost::parameter::keyword<tag::vertex_invariant1> const& _vertex_invariant1 = ::boost::parameter::keyword<tag::vertex_invariant1>::instance; } 
namespace tag { struct vertex_invariant2 { static char const* keyword_name() { return "vertex_invariant2"; } typedef boost::parameter::value_type< boost::mpl::_2, vertex_invariant2, boost::parameter::void_ > _; typedef boost::parameter::value_type< boost::mpl::_2, vertex_invariant2, boost::parameter::void_ > _1; }; } namespace { ::boost::parameter::keyword<tag::vertex_invariant2> const& _vertex_invariant2 = ::boost::parameter::keyword<tag::vertex_invariant2>::instance; } 
namespace tag { struct vertex_max_invariant { static char const* keyword_name() { return "vertex_max_invariant"; } typedef boost::parameter::value_type< boost::mpl::_2, vertex_max_invariant, boost::parameter::void_ > _; typedef boost::parameter::value_type< boost::mpl::_2, vertex_max_invariant, boost::parameter::void_ > _1; }; } namespace { ::boost::parameter::keyword<tag::vertex_max_invariant> const& _vertex_max_invariant = ::boost::parameter::keyword<tag::vertex_max_invariant>::instance; } 
namespace tag { struct polling { static char const* keyword_name() { return "polling"; } typedef boost::parameter::value_type< boost::mpl::_2, polling, boost::parameter::void_ > _; typedef boost::parameter::value_type< boost::mpl::_2, polling, boost::parameter::void_ > _1; }; } namespace { ::boost::parameter::keyword<tag::polling> const& _polling = ::boost::parameter::keyword<tag::polling>::instance; } 
namespace tag { struct lookahead { static char const* keyword_name() { return "lookahead"; } typedef boost::parameter::value_type< boost::mpl::_2, lookahead, boost::parameter::void_ > _; typedef boost::parameter::value_type< boost::mpl::_2, lookahead, boost::parameter::void_ > _1; }; } namespace { ::boost::parameter::keyword<tag::lookahead> const& _lookahead = ::boost::parameter::keyword<tag::lookahead>::instance; } 
namespace tag { struct in_parallel { static char const* keyword_name() { return "in_parallel"; } typedef boost::parameter::value_type< boost::mpl::_2, in_parallel, boost::parameter::void_ > _; typedef boost::parameter::value_type< boost::mpl::_2, in_parallel, boost::parameter::void_ > _1; }; } namespace { ::boost::parameter::keyword<tag::in_parallel> const& _in_parallel = ::boost::parameter::keyword<tag::in_parallel>::instance; } 
namespace tag { struct displacement_map { static char const* keyword_name() { return "displacement_map"; } typedef boost::parameter::value_type< boost::mpl::_2, displacement_map, boost::parameter::void_ > _; typedef boost::parameter::value_type< boost::mpl::_2, displacement_map, boost::parameter::void_ > _1; }; } namespace { ::boost::parameter::keyword<tag::displacement_map> const& _displacement_map = ::boost::parameter::keyword<tag::displacement_map>::instance; } 
namespace tag { struct attractive_force { static char const* keyword_name() { return "attractive_force"; } typedef boost::parameter::value_type< boost::mpl::_2, attractive_force, boost::parameter::void_ > _; typedef boost::parameter::value_type< boost::mpl::_2, attractive_force, boost::parameter::void_ > _1; }; } namespace { ::boost::parameter::keyword<tag::attractive_force> const& _attractive_force = ::boost::parameter::keyword<tag::attractive_force>::instance; } 
namespace tag { struct repulsive_force { static char const* keyword_name() { return "repulsive_force"; } typedef boost::parameter::value_type< boost::mpl::_2, repulsive_force, boost::parameter::void_ > _; typedef boost::parameter::value_type< boost::mpl::_2, repulsive_force, boost::parameter::void_ > _1; }; } namespace { ::boost::parameter::keyword<tag::repulsive_force> const& _repulsive_force = ::boost::parameter::keyword<tag::repulsive_force>::instance; } 
namespace tag { struct force_pairs { static char const* keyword_name() { return "force_pairs"; } typedef boost::parameter::value_type< boost::mpl::_2, force_pairs, boost::parameter::void_ > _; typedef boost::parameter::value_type< boost::mpl::_2, force_pairs, boost::parameter::void_ > _1; }; } namespace { ::boost::parameter::keyword<tag::force_pairs> const& _force_pairs = ::boost::parameter::keyword<tag::force_pairs>::instance; } 
namespace tag { struct cooling { static char const* keyword_name() { return "cooling"; } typedef boost::parameter::value_type< boost::mpl::_2, cooling, boost::parameter::void_ > _; typedef boost::parameter::value_type< boost::mpl::_2, cooling, boost::parameter::void_ > _1; }; } namespace { ::boost::parameter::keyword<tag::cooling> const& _cooling = ::boost::parameter::keyword<tag::cooling>::instance; } 
namespace tag { struct iterations { static char const* keyword_name() { return "iterations"; } typedef boost::parameter::value_type< boost::mpl::_2, iterations, boost::parameter::void_ > _; typedef boost::parameter::value_type< boost::mpl::_2, iterations, boost::parameter::void_ > _1; }; } namespace { ::boost::parameter::keyword<tag::iterations> const& _iterations = ::boost::parameter::keyword<tag::iterations>::instance; } 
namespace tag { struct diameter_range { static char const* keyword_name() { return "diameter_range"; } typedef boost::parameter::value_type< boost::mpl::_2, diameter_range, boost::parameter::void_ > _; typedef boost::parameter::value_type< boost::mpl::_2, diameter_range, boost::parameter::void_ > _1; }; } namespace { ::boost::parameter::keyword<tag::diameter_range> const& _diameter_range = ::boost::parameter::keyword<tag::diameter_range>::instance; } 
namespace tag { struct learning_constant_range { static char const* keyword_name() { return "learning_constant_range"; } typedef boost::parameter::value_type< boost::mpl::_2, learning_constant_range, boost::parameter::void_ > _; typedef boost::parameter::value_type< boost::mpl::_2, learning_constant_range, boost::parameter::void_ > _1; }; } namespace { ::boost::parameter::keyword<tag::learning_constant_range> const& _learning_constant_range = ::boost::parameter::keyword<tag::learning_constant_range>::instance; } 
namespace tag { struct vertices_equivalent { static char const* keyword_name() { return "vertices_equivalent"; } typedef boost::parameter::value_type< boost::mpl::_2, vertices_equivalent, boost::parameter::void_ > _; typedef boost::parameter::value_type< boost::mpl::_2, vertices_equivalent, boost::parameter::void_ > _1; }; } namespace { ::boost::parameter::keyword<tag::vertices_equivalent> const& _vertices_equivalent = ::boost::parameter::keyword<tag::vertices_equivalent>::instance; } 
namespace tag { struct edges_equivalent { static char const* keyword_name() { return "edges_equivalent"; } typedef boost::parameter::value_type< boost::mpl::_2, edges_equivalent, boost::parameter::void_ > _; typedef boost::parameter::value_type< boost::mpl::_2, edges_equivalent, boost::parameter::void_ > _1; }; } namespace { ::boost::parameter::keyword<tag::edges_equivalent> const& _edges_equivalent = ::boost::parameter::keyword<tag::edges_equivalent>::instance; } 
namespace tag { struct index_in_heap_map { static char const* keyword_name() { return "index_in_heap_map"; } typedef boost::parameter::value_type< boost::mpl::_2, index_in_heap_map, boost::parameter::void_ > _; typedef boost::parameter::value_type< boost::mpl::_2, index_in_heap_map, boost::parameter::void_ > _1; }; } namespace { ::boost::parameter::keyword<tag::index_in_heap_map> const& _index_in_heap_map = ::boost::parameter::keyword<tag::index_in_heap_map>::instance; } 
namespace tag { struct max_priority_queue { static char const* keyword_name() { return "max_priority_queue"; } typedef boost::parameter::value_type< boost::mpl::_2, max_priority_queue, boost::parameter::void_ > _; typedef boost::parameter::value_type< boost::mpl::_2, max_priority_queue, boost::parameter::void_ > _1; }; } namespace { ::boost::parameter::keyword<tag::max_priority_queue> const& _max_priority_queue = ::boost::parameter::keyword<tag::max_priority_queue>::instance; }

}  //  namespace keywords
}  //  namespace graph

The warnings are about unused variables like _weight_map in the anonymous namespace. The example above pretty-formats the first entry in this list. Each "namespace tag" row after that is the same except for the variable name.

comment:6 by Murray Cumming <murrayc@…>, 6 years ago

Summary: Unused variable warningsnamed_function_params.hpp: Unused variable warnings: (weight_map, tag_namespace)
Note: See TracTickets for help on using tickets.