Skip to content

Commit 01fedf4

Browse files
authored
Remove boost::static_visitor (#44024)
1 parent cd00d9b commit 01fedf4

16 files changed

+37
-55
lines changed

paddle/fluid/framework/dlpack_tensor.cc

+2-1
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,8 @@ static DLDataType GetDLDataTypeFromTypeIndex(proto::VarType::Type type) {
6969
#undef REG_DL_DATA_TYPE
7070
}
7171

72-
struct DLDeviceVisitor : public boost::static_visitor<::DLDevice> {
72+
struct DLDeviceVisitor
73+
: public std::unary_function<const platform::Place &, ::DLDevice> {
7374
inline ::DLDevice operator()(const platform::CPUPlace &place) const {
7475
::DLDevice device;
7576
device.device_type = kDLCPU;

paddle/fluid/framework/ir/generate_pass.cc

+2-2
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ namespace paddle {
2121
namespace framework {
2222
namespace ir {
2323

24-
class element_visitor : public boost::static_visitor<Attribute> {
24+
class element_visitor {
2525
public:
2626
explicit element_visitor(int index) : index_(index) {}
2727

@@ -47,7 +47,7 @@ class element_visitor : public boost::static_visitor<Attribute> {
4747
int index_;
4848
};
4949

50-
class operation_visitor : public boost::static_visitor<Attribute> {
50+
class operation_visitor {
5151
public:
5252
explicit operation_visitor(const proto::PassDesc::OperationType& type)
5353
: type_(type) {}

paddle/fluid/framework/op_desc.cc

+1-1
Original file line numberDiff line numberDiff line change
@@ -764,7 +764,7 @@ void OpDesc::RenameInput(const std::string &old_name,
764764
need_update_ = true;
765765
}
766766

767-
struct SetAttrDescVisitor : public boost::static_visitor<void> {
767+
struct SetAttrDescVisitor {
768768
explicit SetAttrDescVisitor(proto::OpDesc::Attr *attr) : attr_(attr) {}
769769
mutable proto::OpDesc::Attr *attr_;
770770
void operator()(int v) const { attr_->set_i(v); }

paddle/fluid/framework/tensor_util.cc

+4-4
Original file line numberDiff line numberDiff line change
@@ -689,7 +689,7 @@ inline void AnyImpl(Predicate predicate,
689689
}
690690

691691
template <typename Predicate>
692-
class AnyVisitor : public boost::static_visitor<bool> {
692+
class AnyVisitor : public std::unary_function<const Place&, bool> {
693693
private:
694694
const framework::Tensor& tensor_;
695695
Predicate predicate_;
@@ -774,7 +774,7 @@ class AnyVisitor : public boost::static_visitor<bool> {
774774
};
775775

776776
template <typename Predicate>
777-
class AnyOutVisitor : public boost::static_visitor<> {
777+
class AnyOutVisitor : public std::unary_function<const Place&, void> {
778778
private:
779779
const framework::Tensor& tensor_;
780780
mutable framework::Tensor* out_;
@@ -843,7 +843,7 @@ inline void AllImpl(Predicate predicate,
843843
}
844844

845845
template <typename Predicate>
846-
class AllOutVisitor : public boost::static_visitor<> {
846+
class AllOutVisitor : public std::unary_function<const Place&, void> {
847847
private:
848848
const framework::Tensor& tensor_;
849849
mutable framework::Tensor* out_;
@@ -942,7 +942,7 @@ static inline void __global__ BothFalse(const T* cmp, T* out, int element_num) {
942942
}
943943
#endif
944944

945-
struct BothFalseVisitor : public boost::static_visitor<> {
945+
struct BothFalseVisitor : public std::unary_function<const Place&, void> {
946946
const framework::Tensor& in_;
947947
mutable framework::Tensor* out_;
948948
BothFalseVisitor(const framework::Tensor& in, framework::Tensor* out)

paddle/fluid/imperative/gradient_accumulator.cc

+2-1
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,8 @@ static void MoveOrCopyVar(framework::Variable* dst,
7979
}
8080

8181
template <typename T>
82-
class TensorAddFunctor : public boost::static_visitor<> {
82+
class TensorAddFunctor
83+
: public std::unary_function<const platform::Place&, void> {
8384
public:
8485
TensorAddFunctor(int64_t numel, const T* x, T* y)
8586
: numel_(numel), x_(x), y_(y) {}

paddle/fluid/memory/allocation/naive_best_fit_allocator.cc

+4-4
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ uint64_t Release(const Place &place);
5959
template <typename Place>
6060
size_t Used(const Place &place);
6161

62-
struct Usage : public boost::static_visitor<size_t> {
62+
struct Usage {
6363
size_t operator()(const platform::CPUPlace &cpu) const;
6464
size_t operator()(const platform::CUDAPlace &gpu) const;
6565
size_t operator()(const platform::CUDAPinnedPlace &cuda_pinned) const;
@@ -894,7 +894,7 @@ size_t Used<platform::CustomPlace>(const platform::CustomPlace &place) {
894894
#endif
895895
}
896896

897-
struct AllocVisitor : public boost::static_visitor<void *> {
897+
struct AllocVisitor : std::unary_function<const Place, void *> {
898898
inline explicit AllocVisitor(size_t size) : size_(size) {}
899899

900900
template <typename Place>
@@ -906,7 +906,7 @@ struct AllocVisitor : public boost::static_visitor<void *> {
906906
size_t size_;
907907
};
908908

909-
struct FreeVisitor : public boost::static_visitor<void> {
909+
struct FreeVisitor : public std::unary_function<const Place, void> {
910910
inline explicit FreeVisitor(void *ptr, size_t size)
911911
: ptr_(ptr), size_(size) {}
912912

@@ -920,7 +920,7 @@ struct FreeVisitor : public boost::static_visitor<void> {
920920
size_t size_;
921921
};
922922

923-
struct ReleaseVisitor : public boost::static_visitor<uint64_t> {
923+
struct ReleaseVisitor : std::unary_function<const Place, uint64_t> {
924924
template <typename Place>
925925
inline uint64_t operator()(const Place &place) const {
926926
return Release<Place>(place);

paddle/fluid/operators/array_to_lod_tensor_op.cc

+1-1
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ struct ArrayToLoDFunctorImpl {
4343
void apply();
4444
};
4545

46-
struct ArrayToLoDFunctor : public boost::static_visitor<void> {
46+
struct ArrayToLoDFunctor : public std::unary_function<platform::Place, void> {
4747
std::vector<framework::Tensor> in;
4848
mutable framework::Tensor *out;
4949

paddle/fluid/operators/controlflow/feed_op.cc

+1-1
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ namespace operators {
2929

3030
// FeedVariableVisitor is to feed the variable data
3131
// according to data type (LoDTensor or Strings).
32-
class FeedVariableVisitor : public boost::static_visitor<void> {
32+
class FeedVariableVisitor {
3333
public:
3434
explicit FeedVariableVisitor(framework::Variable *out_var,
3535
const platform::Place &place)

paddle/fluid/operators/controlflow/op_variant.cc

+4-7
Original file line numberDiff line numberDiff line change
@@ -17,24 +17,21 @@
1717
namespace paddle {
1818
namespace operators {
1919

20-
struct InputsVisitor
21-
: public boost::static_visitor<const framework::VariableNameMap *> {
20+
struct InputsVisitor {
2221
template <typename OpType>
2322
const framework::VariableNameMap *operator()(const OpType *op) const {
2423
return &(op->Inputs());
2524
}
2625
};
2726

28-
struct OutputsVisitor
29-
: public boost::static_visitor<const framework::VariableNameMap *> {
27+
struct OutputsVisitor {
3028
template <typename OpType>
3129
const framework::VariableNameMap *operator()(const OpType *op) const {
3230
return &(op->Outputs());
3331
}
3432
};
3533

36-
struct AttributeMapVisitor
37-
: public boost::static_visitor<const framework::AttributeMap *> {
34+
struct AttributeMapVisitor {
3835
const framework::AttributeMap *operator()(const framework::OpDesc *op) const {
3936
return &(op->GetAttrMap());
4037
}
@@ -45,7 +42,7 @@ struct AttributeMapVisitor
4542
}
4643
};
4744

48-
struct RawPointerVisitor : public boost::static_visitor<const void *> {
45+
struct RawPointerVisitor {
4946
template <typename OpType>
5047
const void *operator()(const OpType *op) const {
5148
return op;

paddle/fluid/operators/lod_tensor_to_array_op.cc

+2-1
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,8 @@ struct LoDTensorToArrayFunctorImpl {
4444
void apply();
4545
};
4646

47-
struct LoDTensorToArrayFunctor : public boost::static_visitor<void> {
47+
struct LoDTensorToArrayFunctor
48+
: public std::unary_function<platform::Place, void> {
4849
std::vector<const framework::Tensor *> ref_inputs_;
4950
mutable std::vector<framework::Tensor *> outputs_;
5051
const framework::Tensor &input_;

paddle/fluid/operators/math/matrix_bit_code.cc

+8-9
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ namespace operators {
1919
namespace math {
2020

2121
template <typename T>
22-
struct MatrixBitCodeFunctorAdd : public boost::static_visitor<void> {
22+
struct MatrixBitCodeFunctorAdd {
2323
const framework::Tensor &vec_;
2424
framework::Tensor *tmat_;
2525

@@ -51,7 +51,7 @@ void MatrixBitCodeFunctor<T>::Add(const framework::Tensor &vec,
5151
}
5252

5353
template <typename T>
54-
struct MatrixBitCodeFunctorAddGrad : public boost::static_visitor<void> {
54+
struct MatrixBitCodeFunctorAddGrad {
5555
const framework::Tensor &tmat_;
5656
framework::Tensor *vec_;
5757
MatrixBitCodeFunctorAddGrad(const framework::Tensor &tmat,
@@ -83,7 +83,7 @@ void MatrixBitCodeFunctor<T>::AddGrad(const framework::Tensor &tmat,
8383
}
8484

8585
template <typename T>
86-
struct MatrixBitCodeFunctorSum : public boost::static_visitor<void> {
86+
struct MatrixBitCodeFunctorSum {
8787
const framework::Tensor &tmat_;
8888
framework::Tensor *sum_;
8989
T scale_sum_;
@@ -125,7 +125,7 @@ void MatrixBitCodeFunctor<T>::Sum(const framework::Tensor &tmat,
125125
}
126126

127127
template <typename T>
128-
struct MatrixBitCodeFunctorMul : public boost::static_visitor<void> {
128+
struct MatrixBitCodeFunctorMul {
129129
framework::Tensor *tmat_;
130130
const framework::Tensor &weight_;
131131
const framework::Tensor &input_;
@@ -174,7 +174,7 @@ class ReservedVector : public std::vector<T> {
174174
};
175175

176176
template <typename T>
177-
struct MatrixBitCodeFunctorMulGradWeight : public boost::static_visitor<void> {
177+
struct MatrixBitCodeFunctorMulGradWeight {
178178
const framework::Tensor &tmat_;
179179
framework::Tensor *weight_;
180180
const framework::Tensor &input_;
@@ -224,8 +224,7 @@ void MatrixBitCodeFunctor<T>::MulGradWeight(const framework::Tensor &tmat,
224224
}
225225

226226
template <typename T>
227-
struct MatrixBitCodeFunctorMulGradWeightSR
228-
: public boost::static_visitor<void> {
227+
struct MatrixBitCodeFunctorMulGradWeightSR {
229228
const framework::Tensor &tmat_;
230229
phi::SelectedRows *weight_;
231230
const framework::Tensor &input_;
@@ -280,7 +279,7 @@ void MatrixBitCodeFunctor<T>::MulGradWeight(const framework::Tensor &tmat,
280279
}
281280

282281
template <typename T>
283-
struct MatrixBitCodeFunctorMulGradError : public boost::static_visitor<void> {
282+
struct MatrixBitCodeFunctorMulGradError {
284283
const framework::Tensor &tmat_;
285284
const framework::Tensor &weight_;
286285
framework::Tensor *input_;
@@ -324,7 +323,7 @@ void MatrixBitCodeFunctor<T>::MulGradError(const framework::Tensor &tmat,
324323
}
325324

326325
template <typename T>
327-
struct MatrixBitCodeFunctorSub : public boost::static_visitor<void> {
326+
struct MatrixBitCodeFunctorSub {
328327
framework::Tensor *tmat_;
329328

330329
explicit MatrixBitCodeFunctorSub(framework::Tensor *tmat) : tmat_(tmat) {}

paddle/fluid/platform/device/ipu/ipu_compiler.cc

+2-2
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ namespace ipu {
3232

3333
namespace {
3434

35-
struct CustomOpAttrVisitor : public boost::static_visitor<void> {
35+
struct CustomOpAttrVisitor {
3636
CustomOpAttrVisitor(std::map<std::string, popart::any>* attr,
3737
const std::string& attr_name)
3838
: attrs_(attr), attr_name_(attr_name) {}
@@ -82,7 +82,7 @@ struct CustomOpAttrVisitor : public boost::static_visitor<void> {
8282
}
8383
};
8484

85-
struct ConstantOpAttrVisitor : public boost::static_visitor<void> {
85+
struct ConstantOpAttrVisitor {
8686
ConstantOpAttrVisitor(framework::LoDTensor* tensor, VarType::Type dtype)
8787
: tensor_(tensor), dtype_(dtype) {}
8888

paddle/fluid/platform/variant.h

-1
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@ limitations under the License. */
4040

4141
#include <boost/mpl/comparison.hpp>
4242
#include <boost/mpl/less_equal.hpp>
43-
#include <boost/variant.hpp>
4443

4544
#include "paddle/utils/any.h"
4645
#include "paddle/utils/optional.h"

paddle/fluid/pybind/global_value_getter_setter.cc

+1-1
Original file line numberDiff line numberDiff line change
@@ -217,7 +217,7 @@ void BindGlobalValueGetterSetter(pybind11::module *module) {
217217
GlobalVarGetterSetterRegistry::CreateSetter(&var)); \
218218
} while (0)
219219

220-
struct RegisterGetterSetterVisitor : public boost::static_visitor<void> {
220+
struct RegisterGetterSetterVisitor {
221221
RegisterGetterSetterVisitor(const std::string &name,
222222
bool is_writable,
223223
void *value_ptr)

paddle/fluid/pybind/pybind_boost_headers.h

+1-18
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,12 @@ limitations under the License. */
1818
#include <vector>
1919

2020
#include "glog/logging.h"
21-
#include "paddle/fluid/platform/variant.h"
2221
#include "paddle/utils/variant.h"
2322
#include "pybind11/numpy.h"
2423
#include "pybind11/pybind11.h"
2524
#include "pybind11/stl.h"
2625
// Cast paddle::variant for PyBind.
2726
// Copy from
28-
2927
// https://github.com/pybind/pybind11/issues/576#issuecomment-269563199
3028
namespace pybind11 {
3129
namespace detail {
@@ -78,10 +76,7 @@ struct paddle_variant_caster<V<Ts...>> {
7876
using Type = V<Ts...>;
7977

8078
template <typename T>
81-
typename std::enable_if<
82-
!std::is_same<T, boost::detail::variant::void_>::value,
83-
bool>::type
84-
try_load(handle src, bool convert) {
79+
bool try_load(handle src, bool convert) {
8580
auto caster = make_caster<T>();
8681
if (!load_success_ && caster.load(src, convert)) {
8782
load_success_ = true;
@@ -112,13 +107,6 @@ struct paddle_variant_caster<V<Ts...>> {
112107
return false;
113108
}
114109

115-
template <typename T>
116-
typename std::enable_if<std::is_same<T, boost::detail::variant::void_>::value,
117-
bool>::type
118-
try_load(handle src, bool convert) {
119-
return false;
120-
}
121-
122110
bool load(handle src, bool convert) {
123111
auto unused = {false, try_load<Ts>(src, convert)...};
124112
(void)(unused);
@@ -128,11 +116,6 @@ struct paddle_variant_caster<V<Ts...>> {
128116
static handle cast(Type const& src,
129117
return_value_policy policy,
130118
handle parent) {
131-
/*
132-
auto paddle_variant_caster_visitor = [&](Type const& src)->handle {
133-
return make_caster<Type>::cast(src, policy, parent);
134-
}
135-
*/
136119
paddle_variant_caster_visitor visitor(policy, parent);
137120
return paddle::visit(visitor, src);
138121
}

paddle/phi/kernels/funcs/math_function.cc

+2-1
Original file line numberDiff line numberDiff line change
@@ -214,7 +214,8 @@ void set_constant_with_place<paddle::platform::CUDAPinnedPlace>(
214214
phi::VisitDataType(tensor->dtype(), TensorSetConstantCPU(tensor, value));
215215
}
216216

217-
struct TensorSetConstantWithPlace : public boost::static_visitor<void> {
217+
struct TensorSetConstantWithPlace
218+
: public std::unary_function<paddle::platform::Place, void> {
218219
TensorSetConstantWithPlace(const paddle::platform::DeviceContext& context,
219220
paddle::framework::Tensor* tensor,
220221
float value)

0 commit comments

Comments
 (0)