/usr/local/lib64/python3.6/site-packages/torch/include/ATen/core
NameSizeModeActions
boxing/-0755rm
dispatch/-0755rm
op_registration/-0755rm
alias_info.h29860644editdlrm
Array.h7680644editdlrm
ATenGeneral.h450644editdlrm
ATenOpList.h2460644editdlrm
aten_interned_strings.h253890644editdlrm
Backtrace.h590644editdlrm
blob.h54220644editdlrm
builtin_function.h36490644editdlrm
DeprecatedTypeProperties.h37730644editdlrm
DeprecatedTypePropertiesRegistry.h7950644editdlrm
Dict.h131950644editdlrm
Dict_inl.h79960644editdlrm
Dimname.h11880644editdlrm
DimVector.h2470644editdlrm
DistributionsHelper.h125940644editdlrm
Formatting.h9590644editdlrm
function.h21450644editdlrm
functional.h14600644editdlrm
function_schema.h135770644editdlrm
function_schema_inl.h93190644editdlrm
Generator.h49350644editdlrm
grad_mode.h2100644editdlrm
interned_strings.h253320644editdlrm
interned_strings_class.h7700644editdlrm
ivalue.h388230644editdlrm
ivalue_inl.h599630644editdlrm
ivalue_to.h7560644editdlrm
jit_type.h759710644editdlrm
jit_type_base.h65080644editdlrm
LegacyTypeDispatch.h46260644editdlrm
List.h156670644editdlrm
List_inl.h110120644editdlrm
Macros.h440644editdlrm
MT19937RNGEngine.h64100644editdlrm
NamedTensor.h50500644editdlrm
operator_name.h30180644editdlrm
PhiloxRNGEngine.h64960644editdlrm
PythonModeTLS.h4030644editdlrm
qualified_name.h43580644editdlrm
QuantizerBase.h24430644editdlrm
Range.h4180644editdlrm
Reduction.h4610644editdlrm
rref_interface.h11440644editdlrm
Scalar.h290644editdlrm
ScalarType.h330644editdlrm
stack.h60340644editdlrm
Tensor.h17560644editdlrm
TensorAccessor.h102960644editdlrm
TensorBase.h327670644editdlrm
TensorBody.h2475550644editdlrm
TransformationHelper.h69110644editdlrm
typeid.h290644editdlrm
UndefinedTensorImpl.h420644editdlrm
UnsafeFromTH.h7080644editdlrm
VariableHooksInterface.h33120644editdlrm
Variadic.h22570644editdlrm
Vitals.h23050644editdlrm
Edit: /usr/local/lib64/python3.6/site-packages/torch/include/ATen/core/Variadic.h (2257B)
#pragma once #include #include #include #include #include #include namespace at { // This class allows you to write variadic functions which // call a (possibly overloaded) function on each argument, // in order. This is most commonly used in autogenerated code, // where it is convenient to have a function that can uniformly // take arguments of different types. If your arguments // are homogenous consider using a std::initializer_list instead. // // For examples of this in use, see torch/csrc/utils/variadic.h template struct IterArgs { template inline F& apply() { return self(); } // NB: Use perfect forwarding here, otherwise we'll make value // copies of all arguments! template inline F& apply(T&& arg, Args&&... args) { self()(std::forward(arg)); if (self().short_circuit()) { return self(); } else { return apply(std::forward(args)...); } } // Here are some handy overloads which provide sensible // defaults for container-like structures that one might // be interested in recursing into. You can enable them // by adding: // // using IterArgs::operator() // // to your struct. These are not enabled by default because // you may be able to process these structures more efficiently // than handling them one-by-one. template void operator()(at::ArrayRef args) { for (const auto& arg : args) { self()(arg); if (self().short_circuit()) return; } } template void operator()(const torch::List& args) { for (const auto& arg : args) { self()(arg); if (self().short_circuit()) return; } } // NB: we need to specify std::vector manually as C++ won't // do an implicit conversion to make a template deduction go through. template void operator()(const std::vector& args) { self()(at::ArrayRef{args}); } constexpr bool short_circuit() const { return false; } private: inline F& self() { return *static_cast(this); } }; } // namespace torch