diff --git a/stdlib/vector.krak b/stdlib/vector.krak index d4a4745..e549508 100644 --- a/stdlib/vector.krak +++ b/stdlib/vector.krak @@ -13,22 +13,6 @@ fun vector(in:T):vector { return out } -fun vector(first:T, second:T):vector { - var out.construct():vector - out.add(first) - out.add(second) - return out -} - -fun vector(first:T, second:T, third:T):vector { - var out.construct():vector - out.add(first) - out.add(second) - out.add(third) - return out -} - - obj vector (Object) { var data: T*; var size: int; diff --git a/stdlib/vector_literals.krak b/stdlib/vector_literals.krak new file mode 100644 index 0000000..a88befa --- /dev/null +++ b/stdlib/vector_literals.krak @@ -0,0 +1,104 @@ +import vector + +fun vector(first:T, second:T):vector::vector { + var out.construct():vector::vector + out.add(first) + out.add(second) + return out +} + +fun vector(first:T, second:T, third:T):vector::vector { + var out.construct():vector::vector + out.add(first) + out.add(second) + out.add(third) + return out +} + +fun vector(first:T, second:T, third:T, fourth:T):vector::vector { + var out.construct():vector::vector + out.add(first) + out.add(second) + out.add(third) + out.add(fourth) + return out +} + +fun vector(first:T, second:T, third:T, fourth:T, fifth:T):vector::vector { + var out.construct():vector::vector + out.add(first) + out.add(second) + out.add(third) + out.add(fourth) + out.add(fifth) + return out +} + +fun vector(first:T, second:T, third:T, fourth:T, fifth:T, sixth:T):vector::vector { + var out.construct():vector::vector + out.add(first) + out.add(second) + out.add(third) + out.add(fourth) + out.add(fifth) + out.add(sixth) + return out +} + +fun vector(first:T, second:T, third:T, fourth:T, fifth:T, sixth:T, seventh:T):vector::vector { + var out.construct():vector::vector + out.add(first) + out.add(second) + out.add(third) + out.add(fourth) + out.add(fifth) + out.add(sixth) + out.add(seventh) + return out +} + +fun vector(first:T, second:T, third:T, fourth:T, fifth:T, sixth:T, seventh:T, eighth:T):vector::vector { + var out.construct():vector::vector + out.add(first) + out.add(second) + out.add(third) + out.add(fourth) + out.add(fifth) + out.add(sixth) + out.add(seventh) + out.add(eighth) + return out +} + +fun vector(first:T, second:T, third:T, fourth:T, fifth:T, sixth:T, seventh:T, eighth:T, ninth:T):vector::vector { + var out.construct():vector::vector + out.add(first) + out.add(second) + out.add(third) + out.add(fourth) + out.add(fifth) + out.add(sixth) + out.add(seventh) + out.add(eighth) + out.add(ninth) + return out +} + +fun vector(first:T, second:T, third:T, fourth:T, fifth:T, sixth:T, seventh:T, eighth:T, ninth:T, tenth:T, eleventh:T, twelveth:T):vector::vector { + var out.construct():vector::vector + out.add(first) + out.add(second) + out.add(third) + out.add(fourth) + out.add(fifth) + out.add(sixth) + out.add(seventh) + out.add(eighth) + out.add(ninth) + out.add(tenth) + out.add(eleventh) + out.add(twelveth) + return out +} + + diff --git a/tests/test_vectorTest.expected_results b/tests/test_vectorTest.expected_results index 94b1324..7c1ac58 100644 --- a/tests/test_vectorTest.expected_results +++ b/tests/test_vectorTest.expected_results @@ -5,6 +5,7 @@ 9131321 15513 3.7000007.7000007.70000015.700000 +123456789101112 Constructed: 0 Copied: 0 to 1 Copied: 1 to 2 diff --git a/tests/test_vectorTest.krak b/tests/test_vectorTest.krak index d9a2b24..3b87a58 100644 --- a/tests/test_vectorTest.krak +++ b/tests/test_vectorTest.krak @@ -1,6 +1,7 @@ import io:*; import mem:*; import vector:*; +import vector_literals:* obj AbleToBeDestroyed (Object) { var data:int @@ -65,6 +66,9 @@ fun main(): int { print(newType.at(i)); println(); + vector(1,2,3,4,5,6,7,8,9,10,11,12).for_each(fun(i:int) { print(i); }) + println() + var desVec: vector* = new>()->construct(); var testDestruct.construct(0): AbleToBeDestroyed; desVec->addEnd(testDestruct);