Я хотел бы написать D привязок. Для жизни класса A
его переменная-член someStruct *
никогда не изменится, поэтому, я думаю, естественно объявить ее immutable
. Но тогда его конструктор не будет компилироваться, если мне не удастся каким-либо образом объявить возвращаемое значение функции как const
. Как это сделать?Как объявить функцию extern («C») const?
struct someStruct;
const someStruct* APICall();
class A
{
this()
{
this.ptr = myfunc();
}
private:
immutable someStruct* ptr;
}
Ошибка: function app.APICall without 'this' cannot be const
В текущей форме это сама функция, которая является константой. Здесь это NOOP, но когда функция является членом _class_ или _struct_, это означает, что вызов функции не изменяет состояние _struct_ или _class_. –