Update lazyvec / vec api as well as rect are mostly constexpr now
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
cmake_minimum_required(VERSION 3.22)
|
||||
|
||||
project(lazyvec LANGUAGES CXX VERSION 2.0.0)
|
||||
project(lazyvec LANGUAGES CXX VERSION 2.1.0)
|
||||
|
||||
set(CMAKE_CXX_STANDARD 20)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED true)
|
||||
|
||||
@@ -25,7 +25,7 @@ SOFTWARE.
|
||||
|
||||
constexpr std::string_view _funcs = R"text(
|
||||
double Len() const {{ return std::sqrt(SqLen()); }}
|
||||
double SqLen() const {{ return {1}; }}
|
||||
constexpr double SqLen() const {{ return {1}; }}
|
||||
|
||||
template <typename T1>
|
||||
double Distance(const vec{0}<T1>& v) const {{
|
||||
@@ -41,14 +41,14 @@ constexpr std::string_view _funcs = R"text(
|
||||
}}
|
||||
|
||||
template <typename T1>
|
||||
T Dot(const vec{0}<T1>&v) const {{
|
||||
constexpr T Dot(const vec{0}<T1>&v) const {{
|
||||
return {2};
|
||||
}}
|
||||
)text";
|
||||
|
||||
constexpr std::string_view _cross = R"text(
|
||||
template <typename T1>
|
||||
vec3<T> Cross(const vec3<T1>& v) const {
|
||||
constexpr vec3<T> Cross(const vec3<T1>& v) const {
|
||||
return vec3<T>(y * v.z - z * v.y, z * v.x - x * v.z, x * v.y - y * v.x);
|
||||
}
|
||||
)text";
|
||||
|
||||
@@ -25,24 +25,24 @@ SOFTWARE.
|
||||
|
||||
constexpr std::string_view _op_template = R"text(
|
||||
template <typename T1>
|
||||
vec{0}<T>& operator{1}=(T1 v) {{
|
||||
constexpr vec{0}<T>& operator{1}=(T1 v) {{
|
||||
{2}
|
||||
return *this;
|
||||
}}
|
||||
|
||||
template <typename T1>
|
||||
vec{0}<T>& operator{1}=(const vec{0}<T1>& v) {{
|
||||
constexpr vec{0}<T>& operator{1}=(const vec{0}<T1>& v) {{
|
||||
{3}
|
||||
return *this;
|
||||
}}
|
||||
|
||||
template <typename T1>
|
||||
vec{0}<T> operator{1}(T1 v) const {{
|
||||
constexpr vec{0}<T> operator{1}(T1 v) const {{
|
||||
return vec{0}<T>({4});
|
||||
}}
|
||||
|
||||
template <typename T1>
|
||||
vec{0}<T> operator{1}(const vec{0}<T1>& v) const {{
|
||||
constexpr vec{0}<T> operator{1}(const vec{0}<T1>& v) const {{
|
||||
return vec{0}<T>({5});
|
||||
}}
|
||||
)text";
|
||||
|
||||
@@ -30,11 +30,11 @@ SOFTWARE.
|
||||
*/
|
||||
|
||||
constexpr std::string_view _generic_ops = R"text(
|
||||
vec{0} operator-() const {{ return vec{0}({1}); }}
|
||||
constexpr vec{0} operator-() const {{ return vec{0}({1}); }}
|
||||
template <typename T1>
|
||||
bool operator==(const vec{0}<T1>& v) const {{ return {2}; }}
|
||||
constexpr bool operator==(const vec{0}<T1>& v) const {{ return {2}; }}
|
||||
template <typename T1>
|
||||
bool operator!=(const vec{0}<T1>& v) const {{ return !(*this == v); }}
|
||||
constexpr bool operator!=(const vec{0}<T1>& v) const {{ return !(*this == v); }}
|
||||
)text";
|
||||
|
||||
namespace LVec {
|
||||
|
||||
@@ -36,7 +36,7 @@ std::string MakeSwap(int n) {
|
||||
if (a == b || done.count(b + a)) {
|
||||
continue;
|
||||
}
|
||||
s << " void Swap" << (char)toupper(a[0]) << (char)toupper(b[0])
|
||||
s << " constexpr void Swap" << (char)toupper(a[0]) << (char)toupper(b[0])
|
||||
<< "() {\n";
|
||||
s << " T t = " << a << ";\n " << a << " = " << b << ";\n";
|
||||
s << " " << b << " = t;\n }\n";
|
||||
|
||||
@@ -48,9 +48,9 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
*/
|
||||
|
||||
// This file is generated by lazyvec 2.0.0
|
||||
// This file is generated by lazyvec 2.1.0
|
||||
|
||||
#include <pd/core/common.hpp>
|
||||
#include <pd/common.hpp>
|
||||
{7}
|
||||
|
||||
namespace PD {{
|
||||
|
||||
Reference in New Issue
Block a user