C++ Coding Editor for Technical Interviews

Running GCC 8.2 - Autocomplete is enabled

We run your C++ code with GCC 8. You should define an int main() entrypoint. The gcc compiler is invoked with the following args:

g++ -Wall -fsanitize=address -std=c++17 -pthread \ -lboost_date_time -lboost_regex -lboost_system -lboost_thread -lboost_timer -lboost_filesystem \ -lssl -lcrypto -lmysqlcppconn

Which results in:

  • Use the C++17 standard
  • Turn on all warning messages
  • Compile in debug mode
  • Warn on memory use-after-free bugs and other memory issues with ASan. If you see an unusual message or segfault, it’s likely ASan picking up a use-after-free or use of uninitialized memory bug in your code.
  • Link the pthread library
  • Link a few static boost libraries

We also provide a few libraries:

  • Boost is provided, with most of its header-only libraries working straight out of the box. Of its statically compiled components, we link to DateTimeRegexSystemThread, and Timer. If you need more than those, please let us know!
  • nlohmann/json, a convenient and simple JSON library. To use it on CoderPad, just include "json.hpp" and go nuts:
#include "json.hpp" #include <iostream> int main() { nlohmann::json j2 = { {"hello", "world"} }; std::cout << j2; }
Code language: CSS (css)
  • Catch, a C++ testing library. Catch is a single-header library and very easy to get started with. To use it on CoderPad, simply define a macro and include the header like so:
#define CATCH_CONFIG_MAIN #include "catch.hpp" unsigned int Factorial( unsigned int number ) { return number <= 1 ? 1 : Factorial(number - 1) * number; } TEST_CASE( "Factorials are computed", "[factorial]" ) { REQUIRE( Factorial(0) == 1 ); REQUIRE( Factorial(1) == 1 ); REQUIRE( Factorial(2) == 2 ); REQUIRE( Factorial(3) == 6 ); REQUIRE( Factorial(10) == 3628800 ); }
Code language: C++ (cpp)

If you do so, you should not define your own main method. You can also read more about Catch’s macros for testing.

#include <iostream> #include <Eigen/Dense> using Eigen::MatrixXd; int main() { MatrixXd m(2,2); m(0,0) = 3; m(1,0) = 2.5; m(0,1) = -1; m(1,1) = m(1,0) + m(0,1); std::cout << m << std::endl; }
Code language: C++ (cpp)

Try Our C++ Editor