online compiler and debugger for c/c++

code. compile. run. debug. share.
Source Code   
Language
#include <array> #include <iostream> template<int... n> constexpr auto array() { return std::array<int,sizeof...(n)>{n...}; }; template<std::size_t N, std::size_t M> constexpr auto multiply(const std::array<int, N>& arr1, const std::array<int, M>& arr2) { std::array<int, N* M> result{}; std::size_t index{ 0 }; for (std::size_t n = 0; n < N; n++) { for (std::size_t m = 0; m < M; m++) { result[index] = arr1[n] * arr2[m]; ++index; } } return result; } template<typename container_t> void show(const char* msg, const container_t& values) { std::cout << msg << " : "; bool comma{ false }; for (const auto& value : values) { if (comma) std::cout << ", "; std::cout << value; comma = true; } std::cout << "\n"; } int main() { constexpr auto arr1 = array<1, 2, 3, 4>(); constexpr auto arr2 = array<10, 20>(); constexpr auto result = multiply(arr1, arr2); static_assert(arr1[0] == 1, ""); static_assert(arr2[1] == 20, ""); static_assert(result[0] == 10, ""); static_assert(result[1] == 20, ""); static_assert(result[6] == 40, ""); show("arr1", arr1); show("arr2", arr2); show("result", result); return 0; }

Compiling Program...

Command line arguments:
Standard Input: Interactive Console Text

                

                

Program is not being debugged. Click "Debug" button to start program in debug mode.

#FunctionFile:Line
VariableValue
RegisterValue
ExpressionValue