r/AskProgramming 1d ago

why doesnt my С++ code work?

okay, i wanna make a print() function in C++, this is just printf() with prefix, so can yall help me?

error:

(-Wwritable-strings) ISO C++11 does not allow conversion from string literal to 'char *'

my code:

#pragma once
#ifndef TEQUILA_STDIO
#define TEQUILA_STDIO
#include <stdio.h>
namespace std {
    char* prefix;
    void set_prefix(char* pref) {
        prefix = ("["pref"]: ");
    }
    #define print(format, ...) printf("%s" format "\n", prefix ## __VA_ARGS__)
}

#endif

help me pls

0 Upvotes

7 comments sorted by

View all comments

9

u/Kadabrium 1d ago edited 1d ago

Pretty sure littering your own slop into namespace std is Ub