X-Git-Url: https://ginac.de/ginac.git//ginac.git?a=blobdiff_plain;f=ginac%2Findexed.cpp;h=f9688d8b3d974cba7952c23af77d7ae58437ff6b;hb=63f3e977f92d51ea173382a9b7c4c3b18bda7b8e;hp=2835a904ec767d1208596266bc2f0b15ba97dd4c;hpb=47ecb72dce5ea9c917d1e1e77863c45a8b2b1bba;p=ginac.git diff --git a/ginac/indexed.cpp b/ginac/indexed.cpp index 2835a904..f9688d8b 100644 --- a/ginac/indexed.cpp +++ b/ginac/indexed.cpp @@ -3,7 +3,7 @@ * Implementation of GiNaC's indexed expressions. */ /* - * GiNaC Copyright (C) 1999-2016 Johannes Gutenberg University Mainz, Germany + * GiNaC Copyright (C) 1999-2018 Johannes Gutenberg University Mainz, Germany * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -394,7 +394,7 @@ ex indexed::derivative(const symbol & s) const // global functions ////////// -struct idx_is_equal_ignore_dim : public std::binary_function { +struct idx_is_equal_ignore_dim { bool operator() (const ex &lh, const ex &rh) const { if (lh.is_equal(rh)) @@ -506,7 +506,7 @@ exvector ncmul::get_free_indices() const return free_indices; } -struct is_summation_idx : public std::unary_function { +struct is_summation_idx { bool operator()(const ex & e) { return is_dummy_pair(e, e); @@ -554,7 +554,9 @@ template static ex rename_dummy_indices(const ex & e, exvector & global int remaining = local_size - global_size; auto it = local_dummy_indices.begin(), itend = local_dummy_indices.end(); while (it != itend && remaining > 0) { - if (is_exactly_a(*it) && find_if(global_dummy_indices.begin(), global_dummy_indices.end(), bind2nd(idx_is_equal_ignore_dim(), *it)) == global_dummy_indices.end()) { + if (is_exactly_a(*it) && + find_if(global_dummy_indices.begin(), global_dummy_indices.end(), + [it](const ex &lh) { return idx_is_equal_ignore_dim()(lh, *it); }) == global_dummy_indices.end()) { global_dummy_indices.push_back(*it); global_size++; remaining--; @@ -717,7 +719,7 @@ next_index: ; } /* Ordering that only compares the base expressions of indexed objects. */ -struct ex_base_is_less : public std::binary_function { +struct ex_base_is_less { bool operator() (const ex &lh, const ex &rh) const { return (is_a(lh) ? lh.op(0) : lh).compare(is_a(rh) ? rh.op(0) : rh) < 0;