aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt2
-rw-r--r--amalgamate/crow_all.h38
-rw-r--r--examples/example.cpp8
-rw-r--r--examples/example_chat.cpp2
-rw-r--r--examples/example_with_all.cpp6
-rw-r--r--include/common.h4
-rw-r--r--include/crow.h6
-rw-r--r--include/http_connection.h16
-rw-r--r--include/http_server.h2
-rw-r--r--include/json.h20
-rw-r--r--include/logging.h2
-rw-r--r--include/middleware.h2
-rw-r--r--include/utility.h4
-rw-r--r--tests/unittest.cpp30
14 files changed, 70 insertions, 72 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 0db9139..f4db2cf 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -14,7 +14,7 @@ if (MSVC)
set(Boost_USE_STATIC_LIBS "On")
find_package( Boost 1.52 COMPONENTS system thread regex REQUIRED )
else()
-set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -std=c++1y")
+set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -std=c++1y -pedantic -Wextra")
find_package( Boost 1.52 COMPONENTS system thread REQUIRED )
endif()
diff --git a/amalgamate/crow_all.h b/amalgamate/crow_all.h
index 20c265b..8ba89e5 100644
--- a/amalgamate/crow_all.h
+++ b/amalgamate/crow_all.h
@@ -437,7 +437,7 @@ namespace crow
case type::Object: return "Object";
default: return "Unknown";
}
- };
+ }
class rvalue;
rvalue load(const char* data, size_t size);
@@ -509,7 +509,7 @@ namespace crow
return os;
}
private:
- void force(char* s, uint32_t length)
+ void force(char* s, uint32_t /*length*/)
{
s_ = s;
owned_ = 1;
@@ -1016,7 +1016,7 @@ namespace crow
//static const char* escaped = "\"\\/\b\f\n\r\t";
struct Parser
{
- Parser(char* data, size_t size)
+ Parser(char* data, size_t /*size*/)
: data(data)
{
}
@@ -5192,7 +5192,7 @@ namespace crow
class CerrLogHandler : public ILogHandler {
public:
- void log(std::string message, LogLevel level) override {
+ void log(std::string message, LogLevel /*level*/) override {
std::cerr << message;
}
};
@@ -5401,7 +5401,7 @@ namespace crow
#ifndef CROW_MSVC_WORKAROUND
struct OutOfRange
{
- OutOfRange(unsigned pos, unsigned length) {}
+ OutOfRange(unsigned /*pos*/, unsigned /*length*/) {}
};
constexpr unsigned requires_in_range( unsigned i, unsigned len )
{
@@ -5516,7 +5516,7 @@ template <> \
struct parameter_tag<t> \
{ \
static const int value = i; \
-};
+}
CROW_INTERNAL_PARAMETER_TAG(int, 1);
CROW_INTERNAL_PARAMETER_TAG(char, 1);
CROW_INTERNAL_PARAMETER_TAG(short, 1);
@@ -6015,7 +6015,7 @@ namespace crow
}
#ifndef CROW_MSVC_WORKAROUND
-constexpr crow::HTTPMethod operator "" _method(const char* str, size_t len)
+constexpr crow::HTTPMethod operator "" _method(const char* str, size_t /*len*/)
{
return
crow::black_magic::is_equ_p(str, "GET", 3) ? crow::HTTPMethod::Get :
@@ -6027,7 +6027,7 @@ constexpr crow::HTTPMethod operator "" _method(const char* str, size_t len)
crow::black_magic::is_equ_p(str, "CONNECT", 7) ? crow::HTTPMethod::Connect :
crow::black_magic::is_equ_p(str, "TRACE", 5) ? crow::HTTPMethod::Trace :
throw std::runtime_error("invalid http method");
-};
+}
#endif
@@ -6535,7 +6535,7 @@ namespace crow
}
}
- void after_handle(request& req, response& res, context& ctx)
+ void after_handle(request& /*req*/, response& res, context& ctx)
{
for(auto& cookie:ctx.cookies_to_add)
{
@@ -7644,28 +7644,28 @@ namespace crow
template <typename MW, typename Context, typename ParentContext>
typename std::enable_if<!is_before_handle_arity_3_impl<MW>::value>::type
- before_handler_call(MW& mw, request& req, response& res, Context& ctx, ParentContext& parent_ctx)
+ before_handler_call(MW& mw, request& req, response& res, Context& ctx, ParentContext& /*parent_ctx*/)
{
mw.before_handle(req, res, ctx.template get<MW>(), ctx);
}
template <typename MW, typename Context, typename ParentContext>
typename std::enable_if<is_before_handle_arity_3_impl<MW>::value>::type
- before_handler_call(MW& mw, request& req, response& res, Context& ctx, ParentContext& parent_ctx)
+ before_handler_call(MW& mw, request& req, response& res, Context& ctx, ParentContext& /*parent_ctx*/)
{
mw.before_handle(req, res, ctx.template get<MW>());
}
template <typename MW, typename Context, typename ParentContext>
typename std::enable_if<!is_after_handle_arity_3_impl<MW>::value>::type
- after_handler_call(MW& mw, request& req, response& res, Context& ctx, ParentContext& parent_ctx)
+ after_handler_call(MW& mw, request& req, response& res, Context& ctx, ParentContext& /*parent_ctx*/)
{
mw.after_handle(req, res, ctx.template get<MW>(), ctx);
}
template <typename MW, typename Context, typename ParentContext>
typename std::enable_if<is_after_handle_arity_3_impl<MW>::value>::type
- after_handler_call(MW& mw, request& req, response& res, Context& ctx, ParentContext& parent_ctx)
+ after_handler_call(MW& mw, request& req, response& res, Context& ctx, ParentContext& /*parent_ctx*/)
{
mw.after_handle(req, res, ctx.template get<MW>());
}
@@ -7692,14 +7692,14 @@ namespace crow
}
template <int N, typename Context, typename Container>
- bool middleware_call_helper(Container& middlewares, request& req, response& res, Context& ctx)
+ bool middleware_call_helper(Container& /*middlewares*/, request& /*req*/, response& /*res*/, Context& /*ctx*/)
{
return false;
}
template <int N, typename Context, typename Container>
typename std::enable_if<(N<0)>::type
- after_handlers_call_helper(Container& middlewares, Context& context, request& req, response& res)
+ after_handlers_call_helper(Container& /*middlewares*/, Context& /*context*/, request& /*req*/, response& /*res*/)
{
}
@@ -8030,7 +8030,7 @@ namespace crow
//auto self = this->shared_from_this();
is_writing = true;
boost::asio::async_write(adaptor_.socket(), buffers_,
- [&](const boost::system::error_code& ec, std::size_t bytes_transferred)
+ [&](const boost::system::error_code& ec, std::size_t /*bytes_transferred*/)
{
is_writing = false;
res.clear();
@@ -8068,7 +8068,7 @@ namespace crow
timer_queue.cancel(timer_cancel_key_);
}
- void start_deadline(int timeout = 5)
+ void start_deadline(/*int timeout = 5*/)
{
cancel_deadline_timer();
@@ -8231,7 +8231,7 @@ namespace crow
CROW_LOG_INFO << server_name_ << " server is running, local port " << port_;
signals_.async_wait(
- [&](const boost::system::error_code& error, int signal_number){
+ [&](const boost::system::error_code& /*error*/, int /*signal_number*/){
stop();
});
@@ -8543,6 +8543,6 @@ namespace crow
template <typename ... Middlewares>
using App = Crow<Middlewares...>;
using SimpleApp = Crow<>;
-};
+}
diff --git a/examples/example.cpp b/examples/example.cpp
index 059f3ab..2ab9939 100644
--- a/examples/example.cpp
+++ b/examples/example.cpp
@@ -5,7 +5,7 @@
class ExampleLogHandler : public crow::ILogHandler {
public:
- void log(std::string message, crow::LogLevel level) override {
+ void log(std::string /*message*/, crow::LogLevel /*level*/) override {
// cerr << "ExampleLogHandler -> " << message;
}
};
@@ -28,12 +28,12 @@ struct ExampleMiddleware
{
};
- void before_handle(crow::request& req, crow::response& res, context& ctx)
+ void before_handle(crow::request& /*req*/, crow::response& /*res*/, context& /*ctx*/)
{
CROW_LOG_DEBUG << " - MESSAGE: " << message;
}
- void after_handle(crow::request& req, crow::response& res, context& ctx)
+ void after_handle(crow::request& /*req*/, crow::response& /*res*/, context& /*ctx*/)
{
// no-op
}
@@ -85,7 +85,7 @@ int main()
// To see it in action submit {ip}:18080/add/1/2 and you should receive 3 (exciting, isn't it)
CROW_ROUTE(app,"/add/<int>/<int>")
- ([](const crow::request& req, crow::response& res, int a, int b){
+ ([](const crow::request& /*req*/, crow::response& res, int a, int b){
std::ostringstream os;
os << a+b;
res.write(os.str());
diff --git a/examples/example_chat.cpp b/examples/example_chat.cpp
index ae031b7..2f80ffe 100644
--- a/examples/example_chat.cpp
+++ b/examples/example_chat.cpp
@@ -50,7 +50,7 @@ int main()
});
CROW_ROUTE(app, "/logs/<int>")
- ([](const crow::request& req, crow::response& res, int after){
+ ([](const crow::request& /*req*/, crow::response& res, int after){
CROW_LOG_INFO << "logs with last " << after;
if (after < (int)msgs.size())
{
diff --git a/examples/example_with_all.cpp b/examples/example_with_all.cpp
index 55e2715..56ac4cd 100644
--- a/examples/example_with_all.cpp
+++ b/examples/example_with_all.cpp
@@ -4,7 +4,7 @@
class ExampleLogHandler : public crow::ILogHandler {
public:
- void log(std::string message, crow::LogLevel level) override {
+ void log(std::string /*message*/, crow::LogLevel /*level*/) override {
// cerr << "ExampleLogHandler -> " << message;
}
};
@@ -42,7 +42,7 @@ int main()
});
CROW_ROUTE(app,"/add/<int>/<int>")
- ([](const crow::request& req, crow::response& res, int a, int b){
+ ([](const crow::request& /*req*/, crow::response& res, int a, int b){
std::ostringstream os;
os << a+b;
res.write(os.str());
@@ -85,7 +85,7 @@ int main()
});
// ignore all log
- crow::logger::setLogLevel(crow::LogLevel::DEBUG);
+ crow::logger::setLogLevel(crow::LogLevel::Debug);
//crow::logger::setHandler(std::make_shared<ExampleLogHandler>());
app.port(18080)
diff --git a/include/common.h b/include/common.h
index fe6db93..8203378 100644
--- a/include/common.h
+++ b/include/common.h
@@ -121,7 +121,7 @@ namespace crow
}
#ifndef CROW_MSVC_WORKAROUND
-constexpr crow::HTTPMethod operator "" _method(const char* str, size_t len)
+constexpr crow::HTTPMethod operator "" _method(const char* str, size_t /*len*/)
{
return
crow::black_magic::is_equ_p(str, "GET", 3) ? crow::HTTPMethod::Get :
@@ -133,5 +133,5 @@ constexpr crow::HTTPMethod operator "" _method(const char* str, size_t len)
crow::black_magic::is_equ_p(str, "CONNECT", 7) ? crow::HTTPMethod::Connect :
crow::black_magic::is_equ_p(str, "TRACE", 5) ? crow::HTTPMethod::Trace :
throw std::runtime_error("invalid http method");
-};
+}
#endif
diff --git a/include/crow.h b/include/crow.h
index aff6716..5d99b91 100644
--- a/include/crow.h
+++ b/include/crow.h
@@ -166,7 +166,7 @@ namespace crow
#else
template <typename T, typename ... Remain>
- self_t& ssl_file(T&& t, Remain&&...)
+ self_t& ssl_file(T&&, Remain&&...)
{
// We can't call .ssl() member function unless CROW_ENABLE_SSL is defined.
static_assert(
@@ -177,7 +177,7 @@ namespace crow
}
template <typename T>
- self_t& ssl(T&& ctx)
+ self_t& ssl(T&&)
{
// We can't call .ssl() member function unless CROW_ENABLE_SSL is defined.
static_assert(
@@ -220,4 +220,4 @@ namespace crow
template <typename ... Middlewares>
using App = Crow<Middlewares...>;
using SimpleApp = Crow<>;
-};
+}
diff --git a/include/http_connection.h b/include/http_connection.h
index 69b87b0..2bc6906 100644
--- a/include/http_connection.h
+++ b/include/http_connection.h
@@ -98,28 +98,28 @@ namespace crow
template <typename MW, typename Context, typename ParentContext>
typename std::enable_if<!is_before_handle_arity_3_impl<MW>::value>::type
- before_handler_call(MW& mw, request& req, response& res, Context& ctx, ParentContext& parent_ctx)
+ before_handler_call(MW& mw, request& req, response& res, Context& ctx, ParentContext& /*parent_ctx*/)
{
mw.before_handle(req, res, ctx.template get<MW>(), ctx);
}
template <typename MW, typename Context, typename ParentContext>
typename std::enable_if<is_before_handle_arity_3_impl<MW>::value>::type
- before_handler_call(MW& mw, request& req, response& res, Context& ctx, ParentContext& parent_ctx)
+ before_handler_call(MW& mw, request& req, response& res, Context& ctx, ParentContext& /*parent_ctx*/)
{
mw.before_handle(req, res, ctx.template get<MW>());
}
template <typename MW, typename Context, typename ParentContext>
typename std::enable_if<!is_after_handle_arity_3_impl<MW>::value>::type
- after_handler_call(MW& mw, request& req, response& res, Context& ctx, ParentContext& parent_ctx)
+ after_handler_call(MW& mw, request& req, response& res, Context& ctx, ParentContext& /*parent_ctx*/)
{
mw.after_handle(req, res, ctx.template get<MW>(), ctx);
}
template <typename MW, typename Context, typename ParentContext>
typename std::enable_if<is_after_handle_arity_3_impl<MW>::value>::type
- after_handler_call(MW& mw, request& req, response& res, Context& ctx, ParentContext& parent_ctx)
+ after_handler_call(MW& mw, request& req, response& res, Context& ctx, ParentContext& /*parent_ctx*/)
{
mw.after_handle(req, res, ctx.template get<MW>());
}
@@ -146,14 +146,14 @@ namespace crow
}
template <int N, typename Context, typename Container>
- bool middleware_call_helper(Container& middlewares, request& req, response& res, Context& ctx)
+ bool middleware_call_helper(Container& /*middlewares*/, request& /*req*/, response& /*res*/, Context& /*ctx*/)
{
return false;
}
template <int N, typename Context, typename Container>
typename std::enable_if<(N<0)>::type
- after_handlers_call_helper(Container& middlewares, Context& context, request& req, response& res)
+ after_handlers_call_helper(Container& /*middlewares*/, Context& /*context*/, request& /*req*/, response& /*res*/)
{
}
@@ -484,7 +484,7 @@ namespace crow
//auto self = this->shared_from_this();
is_writing = true;
boost::asio::async_write(adaptor_.socket(), buffers_,
- [&](const boost::system::error_code& ec, std::size_t bytes_transferred)
+ [&](const boost::system::error_code& ec, std::size_t /*bytes_transferred*/)
{
is_writing = false;
res.clear();
@@ -522,7 +522,7 @@ namespace crow
timer_queue.cancel(timer_cancel_key_);
}
- void start_deadline(int timeout = 5)
+ void start_deadline(/*int timeout = 5*/)
{
cancel_deadline_timer();
diff --git a/include/http_server.h b/include/http_server.h
index fbe470d..94f2fc3 100644
--- a/include/http_server.h
+++ b/include/http_server.h
@@ -104,7 +104,7 @@ namespace crow
CROW_LOG_INFO << server_name_ << " server is running, local port " << port_;
signals_.async_wait(
- [&](const boost::system::error_code& error, int signal_number){
+ [&](const boost::system::error_code& /*error*/, int /*signal_number*/){
stop();
});
diff --git a/include/json.h b/include/json.h
index c2ce20e..3706034 100644
--- a/include/json.h
+++ b/include/json.h
@@ -92,7 +92,7 @@ namespace crow
case type::Object: return "Object";
default: return "Unknown";
}
- };
+ }
class rvalue;
rvalue load(const char* data, size_t size);
@@ -164,7 +164,7 @@ namespace crow
return os;
}
private:
- void force(char* s, uint32_t length)
+ void force(char* s, uint32_t /*length*/)
{
s_ = s;
owned_ = 1;
@@ -671,7 +671,7 @@ namespace crow
//static const char* escaped = "\"\\/\b\f\n\r\t";
struct Parser
{
- Parser(char* data, size_t size)
+ Parser(char* data, size_t /*size*/)
: data(data)
{
}
@@ -1093,17 +1093,16 @@ namespace crow
s = r.s();
return;
case type::List:
- l = std::move(std::unique_ptr<std::vector<wvalue>>(new std::vector<wvalue>{}));
+ l = std::unique_ptr<std::vector<wvalue>>(new std::vector<wvalue>{});
l->reserve(r.size());
for(auto it = r.begin(); it != r.end(); ++it)
l->emplace_back(*it);
return;
case type::Object:
- o = std::move(
- std::unique_ptr<
+ o = std::unique_ptr<
std::unordered_map<std::string, wvalue>
>(
- new std::unordered_map<std::string, wvalue>{}));
+ new std::unordered_map<std::string, wvalue>{});
for(auto it = r.begin(); it != r.end(); ++it)
o->emplace(it->key(), *it);
return;
@@ -1249,7 +1248,7 @@ namespace crow
reset();
t_ = type::List;
if (!l)
- l = std::move(std::unique_ptr<std::vector<wvalue>>(new std::vector<wvalue>{}));
+ l = std::unique_ptr<std::vector<wvalue>>(new std::vector<wvalue>{});
l->clear();
l->resize(v.size());
size_t idx = 0;
@@ -1266,7 +1265,7 @@ namespace crow
reset();
t_ = type::List;
if (!l)
- l = std::move(std::unique_ptr<std::vector<wvalue>>(new std::vector<wvalue>{}));
+ l = std::unique_ptr<std::vector<wvalue>>(new std::vector<wvalue>{});
if (l->size() < index+1)
l->resize(index+1);
return (*l)[index];
@@ -1287,8 +1286,7 @@ namespace crow
reset();
t_ = type::Object;
if (!o)
- o = std::move(
- std::unique_ptr<
+ o = std::unique_ptr<
std::unordered_map<std::string, wvalue>
>(
new std::unordered_map<std::string, wvalue>{}));
diff --git a/include/logging.h b/include/logging.h
index 41ac0ab..13cdad2 100644
--- a/include/logging.h
+++ b/include/logging.h
@@ -35,7 +35,7 @@ namespace crow
class CerrLogHandler : public ILogHandler {
public:
- void log(std::string message, LogLevel level) override {
+ void log(std::string message, LogLevel /*level*/) override {
std::cerr << message;
}
};
diff --git a/include/middleware.h b/include/middleware.h
index ec54476..534a87a 100644
--- a/include/middleware.h
+++ b/include/middleware.h
@@ -139,7 +139,7 @@ namespace crow
}
}
- void after_handle(request& req, response& res, context& ctx)
+ void after_handle(request& /*req*/, response& res, context& ctx)
{
for(auto& cookie:ctx.cookies_to_add)
{
diff --git a/include/utility.h b/include/utility.h
index cf12158..183d65b 100644
--- a/include/utility.h
+++ b/include/utility.h
@@ -14,7 +14,7 @@ namespace crow
#ifndef CROW_MSVC_WORKAROUND
struct OutOfRange
{
- OutOfRange(unsigned pos, unsigned length) {}
+ OutOfRange(unsigned /*pos*/, unsigned /*length*/) {}
};
constexpr unsigned requires_in_range( unsigned i, unsigned len )
{
@@ -129,7 +129,7 @@ template <> \
struct parameter_tag<t> \
{ \
static const int value = i; \
-};
+}
CROW_INTERNAL_PARAMETER_TAG(int, 1);
CROW_INTERNAL_PARAMETER_TAG(char, 1);
CROW_INTERNAL_PARAMETER_TAG(short, 1);
diff --git a/tests/unittest.cpp b/tests/unittest.cpp
index 164cbf0..9021af5 100644
--- a/tests/unittest.cpp
+++ b/tests/unittest.cpp
@@ -38,7 +38,7 @@ template <typename ...Args>
void fail(Args...args) { error_print(args...);failed__ = true; }
#define ASSERT_TRUE(x) if (!(x)) fail(__FILE__ ":", __LINE__, ": Assert fail: expected ", #x, " is true, at " __FILE__ ":",__LINE__)
-#define ASSERT_EQUAL(a, b) if ((a) != (b)) fail(__FILE__ ":", __LINE__, ": Assert fail: expected ", (a), " actual " , (b), ", " #a " == " #b ", at " __FILE__ ":",__LINE__)
+#define ASSERT_EQUAL(a, b) if ((a) != (b)) fail(__FILE__ ":", __LINE__, ": Assert fail: expected ", (a), " actual ", (b), ", " #a " == " #b ", at " __FILE__ ":",__LINE__)
#define ASSERT_NOTEQUAL(a, b) if ((a) == (b)) fail(__FILE__ ":", __LINE__, ": Assert fail: not expected ", (a), ", " #a " != " #b ", at " __FILE__ ":",__LINE__)
#define ASSERT_THROW(x) \
try \
@@ -323,12 +323,12 @@ TEST(http_method)
CROW_ROUTE(app, "/get_only")
.methods("GET"_method)
- ([](const request& req){
+ ([](const request& /*req*/){
return "get";
});
CROW_ROUTE(app, "/post_only")
.methods("POST"_method)
- ([](const request& req){
+ ([](const request& /*req*/){
return "post";
});
@@ -678,10 +678,10 @@ struct NullSimpleMiddleware
{
struct context {};
- void before_handle(request& req, response& res, context& ctx)
+ void before_handle(request& /*req*/, response& /*res*/, context& /*ctx*/)
{}
- void after_handle(request& req, response& res, context& ctx)
+ void after_handle(request& /*req*/, response& /*res*/, context& /*ctx*/)
{}
};
@@ -703,13 +703,13 @@ struct IntSettingMiddleware
struct context { int val; };
template <typename AllContext>
- void before_handle(request& req, response& res, context& ctx, AllContext& all_ctx)
+ void before_handle(request&, response&, context& ctx, AllContext& )
{
ctx.val = 1;
}
template <typename AllContext>
- void after_handle(request& req, response& res, context& ctx, AllContext& all_ctx)
+ void after_handle(request&, response&, context& ctx, AllContext& )
{
ctx.val = 2;
}
@@ -724,12 +724,12 @@ struct FirstMW
std::vector<string> v;
};
- void before_handle(request& req, response& res, context& ctx)
+ void before_handle(request& /*req*/, response& /*res*/, context& ctx)
{
ctx.v.push_back("1 before");
}
- void after_handle(request& req, response& res, context& ctx)
+ void after_handle(request& /*req*/, response& /*res*/, context& ctx)
{
ctx.v.push_back("1 after");
test_middleware_context_vector = ctx.v;
@@ -740,7 +740,7 @@ struct SecondMW
{
struct context {};
template <typename AllContext>
- void before_handle(request& req, response& res, context& ctx, AllContext& all_ctx)
+ void before_handle(request& req, response& res, context&, AllContext& all_ctx)
{
all_ctx.template get<FirstMW>().v.push_back("2 before");
if (req.url == "/break")
@@ -748,7 +748,7 @@ struct SecondMW
}
template <typename AllContext>
- void after_handle(request& req, response& res, context& ctx, AllContext& all_ctx)
+ void after_handle(request&, response&, context&, AllContext& all_ctx)
{
all_ctx.template get<FirstMW>().v.push_back("2 after");
}
@@ -758,13 +758,13 @@ struct ThirdMW
{
struct context {};
template <typename AllContext>
- void before_handle(request& req, response& res, context& ctx, AllContext& all_ctx)
+ void before_handle(request&, response&, context&, AllContext& all_ctx)
{
all_ctx.template get<FirstMW>().v.push_back("3 before");
}
template <typename AllContext>
- void after_handle(request& req, response& res, context& ctx, AllContext& all_ctx)
+ void after_handle(request&, response&, context&, AllContext& all_ctx)
{
all_ctx.template get<FirstMW>().v.push_back("3 after");
}
@@ -1070,12 +1070,12 @@ TEST(route_dynamic)
});
app.route_dynamic("/set4")
- ([&](const request& req){
+ ([&](const request&){
x = 4;
return "";
});
app.route_dynamic("/set5")
- ([&](const request& req, response& res){
+ ([&](const request&, response& res){
x = 5;
res.end();
});