-
- Ну а враги всё равно смогут сделать явное приведение типа. Так шта без динамической проверки никак. - SciFi(18.05.2011 22:31)
- Именно Си или можно C++? - vmp(18.05.2011 18:21)
- От безысходности можно и C++. Но не представляю как. Задача такова: чтоб в функцию аналогичную printf() в строку формата не подсунули указатель на RAM. Или хотелось бы в runtime отличать (char*) и (char*) указатели приведённые к (const char*). Для fk0(8056 знак., 18.05.2011 20:25)
- На С++ не получилось - всегда вызывается вариант без const. А в качестве грязного хака я бы предложил смотреть на адрес аргумента - rw и ro данные лежат в разных сегментах. - vmp(18.05.2011 21:33)
- так и делаю. Те, кто используют виртуализацию, сейчас нас заплюют - koyodza(18.05.2011 22:16)
- Плевать не буду, а лишь замечу, что квалификатор const вовсе не гарантирует принадлежность к определенному (RO) сегменту. - rezident(18.05.2011 22:19)
- А это и не важно. Если const char* лежит в ОЗУ, то после выключения/включения питания оно там снова окажется, должно по крайней мере... - fk0(19.05.2011 12:50)
- то само собой. Но топикстартер вроде хочет откидывать любые указатели на RAM, независимо от того на const они указывают или на ещё что-то - koyodza(18.05.2011 22:26)
- Плевать не буду, а лишь замечу, что квалификатор const вовсе не гарантирует принадлежность к определенному (RO) сегменту. - rezident(18.05.2011 22:19)
- так и делаю. Те, кто используют виртуализацию, сейчас нас заплюют - koyodza(18.05.2011 22:16)
- На С++ не получилось - всегда вызывается вариант без const. А в качестве грязного хака я бы предложил смотреть на адрес аргумента - rw и ro данные лежат в разных сегментах. - vmp(18.05.2011 21:33)
- От безысходности можно и C++. Но не представляю как. Задача такова: чтоб в функцию аналогичную printf() в строку формата не подсунули указатель на RAM. Или хотелось бы в runtime отличать (char*) и (char*) указатели приведённые к (const char*). Для fk0(8056 знак., 18.05.2011 20:25)
- Использовать встроенные гццизмы чтобы сформировать варнинг или ошибку средствами препроцессора. - GDI(18.05.2011 17:27, ссылка)
- описать void func_name (const char *s) ? ++(108 знак., 18.05.2011 17:17)
- А какие плюшки это может дать? - diper(18.05.2011 16:40)