#include <functional> template<bool B> void wut(std::function<void()> f = []() {}) { f(); } int main() { wut<false>(); // works wut<false>(); // still works wut<true>(); // error return 0; }
Standard input is empty
{standard input}: Assembler messages: {standard input}:37: Error: symbol `_ZNSt14_Function_base13_Base_managerIUlvE_E10_M_managerERSt9_Any_dataRKS3_St18_Manager_operation' is already defined {standard input}:60: Error: symbol `_ZNSt17_Function_handlerIFvvEUlvE_E9_M_invokeERKSt9_Any_data' is already defined
Standard output is empty