Есть ли причина, по которой `cups_option_t :: name` и` :: value` не являются `const char *`?

Я не хочу использовать cupsAddOption()потому что он имеет квадратичное поведение (только когда-либо добавляет одну запись в выделенный блок памяти), и потому что он выводит все строки имени и значения, в то время как в моем случае все они являются строковыми литералами. Так в звонке cupsPrintFile()Я хочу передать массив C cups_option_ts.

Но как программист C ++ я не могу назначить строковый литерал C (имеющий тип const char[]) к cups_option_t поля, потому что они char*,

Это просто ленивый дизайн API или CUPS на самом деле манипулирует этими строками?

0

Решение

Как они должны указывать на mallocЭд и strcpyПо-видимому, они не могут быть const,

Какие штрафы за производительность вы на самом деле ожидаете? Как часто вы используете эту функцию на самом деле? Оптимизация перед матчем часто является плохим привычкой и приводит к сложному обслуживанию кода.

0

Другие решения