|
| 1 | +[[cpp4r::register]] list cpp4r_named_list_push_back_() { |
| 2 | + writable::list result; |
| 3 | + |
| 4 | + double one = 1.0, two = 2.0, three = 3.0; |
| 5 | + // int four = 4; |
| 6 | + // bool five = false; |
| 7 | + // const char* six = "six"; |
| 8 | + std::string seven = "seven"; |
| 9 | + std::vector<int> eight = {8, 8, 8}; |
| 10 | + std::vector<double> nine = {9.0, 9.0, 9.0}; |
| 11 | + std::vector<std::string> ten = {"ten", "ten"}; |
| 12 | + |
| 13 | + result.push_back({"one"_nm = one}); // Using literal + assignment |
| 14 | + result.push_back(named_arg("two", two)); // Using named_arg constructor |
| 15 | + result.push_back({"three"_nm = three}); // Using literal + assignment |
| 16 | + result.push_back({"four"_nm = 4}); // Using literal + assignment |
| 17 | + result.push_back({"five"_nm = false}); // Using literal + assignment |
| 18 | + result.push_back({"six"_nm = "six"}); // Using literal + assignment |
| 19 | + result.push_back({"seven"_nm = std::string("seven")}); // Using literal + assignment |
| 20 | + result.push_back({"eight"_nm = std::vector<int>{8, 8, 8}}); // Using literal + assignment + std::vector |
| 21 | + result.push_back({"nine"_nm = std::vector<double>{9.0, 9.0, 9.0}}); // Using literal + assignment + std::vector |
| 22 | + result.push_back({"ten"_nm = std::vector<std::string>{"ten", "ten"}}); // Using literal + assignment + std::vector |
| 23 | + |
| 24 | + return result; |
| 25 | +} |
| 26 | + |
| 27 | +[[cpp4r::register]] list cpp4r_named_list_c_style_() { |
| 28 | + writable::list result(10); // Preallocate list of size 10 |
| 29 | + |
| 30 | + double one = 1.0, two = 2.0, three = 3.0; |
| 31 | + int four = 4; |
| 32 | + bool five = false; |
| 33 | + const char* six = "six"; |
| 34 | + std::string seven = "seven"; |
| 35 | + std::vector<int> eight = {8, 8, 8}; |
| 36 | + std::vector<double> nine = {9.0, 9.0, 9.0}; |
| 37 | + std::vector<std::string> ten = {"ten", "ten"}; |
| 38 | + |
| 39 | + result[0] = one; |
| 40 | + result[1] = two; |
| 41 | + result[2] = three; |
| 42 | + result[3] = four; |
| 43 | + result[4] = five; |
| 44 | + result[5] = six; |
| 45 | + result[6] = seven; |
| 46 | + result[7] = eight; |
| 47 | + result[8] = nine; |
| 48 | + result[9] = ten; |
| 49 | + |
| 50 | + result.names() = {"one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten"}; |
| 51 | + |
| 52 | + return result; |
| 53 | +} |
0 commit comments