Функция не может иметь явный спецификатор.Для fnc не имеет смысла иметь явный спецификатор.А что касается ctor - ответ на ваш вопрос - Да.Заявление о том, что ctor является явным, означает, что незаконно вызывать его неявно.
Когда это полезно?В ситуации, когда, например, ваш класс:
class X
{
X(char){/*something really cool*/}
};
и позже в коде вы должны написать:
X _1 = 'a';//this line will call conv ctor
С такой строкой, как указано выше, очень часто случается, что программист задумал что-то другоеи это обращение совершенно непреднамеренно.