@@ -100,33 +100,33 @@ constexpr auto apply_unary(Self &self, FunctionObject&& f) {
100100
101101// apply on skeleton struct S<F>
102102template <class FunctionObject , template <template <class > class > class S , template <class > class F >
103- __attribute__ ((flatten)) constexpr auto apply (S<F> &self, FunctionObject&& f) {
103+ constexpr auto apply (S<F> &self, FunctionObject&& f) {
104104 return apply_unary (self, std::forward<FunctionObject&&>(f));
105105}
106106
107107template <class FunctionObject , template <template <class > class > class S , template <class > class F >
108- __attribute__ ((flatten)) constexpr auto apply (const S<F> &self, FunctionObject&& f) {
108+ constexpr auto apply (const S<F> &self, FunctionObject&& f) {
109109 return apply_unary (self, std::forward<FunctionObject&&>(f));
110110}
111111
112112// apply on wrappers, forwarding to the base type
113113template <class FunctionObject , class Self >
114114 requires requires { typename Self::Base; }
115- __attribute__ ((flatten)) constexpr auto apply (Self &self, FunctionObject&& f) {
115+ constexpr auto apply (Self &self, FunctionObject&& f) {
116116 return apply_unary<typename Self::Base>(self, std::forward<FunctionObject&&>(f));
117117}
118118
119119template <class FunctionObject , class Self >
120120 requires requires { typename Self::Base; }
121- __attribute__ ((flatten)) constexpr auto apply (const Self &self, FunctionObject&& f) {
121+ constexpr auto apply (const Self &self, FunctionObject&& f) {
122122 return apply_unary<const typename Self::Base>(self, std::forward<FunctionObject&&>(f));
123123}
124124
125125
126126// template <class FunctionObject, class Self, class Other>
127127// constexpr auto apply(Self &self, Other &other, FunctionObject&& f) {
128128template <class Self , class Other , class FunctionObject >
129- __attribute__ ((flatten)) constexpr auto apply_binary (Self &self, Other &other, FunctionObject&& f) {
129+ constexpr auto apply_binary (Self &self, Other &other, FunctionObject&& f) {
130130 auto construct_output = [&]<size_t ... Is>(std::index_sequence<Is...>) -> Self {
131131 return {f (
132132 self.[:nsdms (^^Self)[Is]:], other.[:nsdms (^^Other)[Is]:])...};
@@ -136,24 +136,24 @@ __attribute__((flatten)) constexpr auto apply_binary(Self &self, Other &other, F
136136}
137137
138138template <class FunctionObject , template <template <class > class > class S , template <class > class F_self , template <class > class F_other >
139- __attribute__ ((flatten)) constexpr auto apply (S<F_self> &self, S<F_other> &other, FunctionObject&& f) {
139+ constexpr auto apply (S<F_self> &self, S<F_other> &other, FunctionObject&& f) {
140140 return apply_binary (self, other, std::forward<FunctionObject&&>(f));
141141}
142142
143143template <class FunctionObject , template <template <class > class > class S , template <class > class F_self , template <class > class F_other >
144- __attribute__ ((flatten)) constexpr auto apply (S<F_self> &self, const S<F_other> &other, FunctionObject&& f) {
144+ constexpr auto apply (S<F_self> &self, const S<F_other> &other, FunctionObject&& f) {
145145 return apply_binary (self, other, std::forward<FunctionObject&&>(f));
146146}
147147
148148template <class Self , class Other , class FunctionObject >
149149 requires requires { typename Self::Base; typename Other::Base; }
150- __attribute__ ((flatten)) constexpr auto apply (Self &self, Other &other, FunctionObject&& f) {
150+ constexpr auto apply (Self &self, Other &other, FunctionObject&& f) {
151151 return apply_binary<typename Self::Base, typename Other::Base>(self, other, std::forward<FunctionObject&&>(f));
152152}
153153
154154template <class Self , class Other , class FunctionObject >
155155 requires requires { typename Self::Base; typename Other::Base; }
156- __attribute__ ((flatten)) constexpr auto apply (Self &self, const Other &other, FunctionObject&& f) {
156+ constexpr auto apply (Self &self, const Other &other, FunctionObject&& f) {
157157 return apply_binary<typename Self::Base, const typename Other::Base>(self, other, std::forward<FunctionObject&&>(f));
158158}
159159
0 commit comments