Здравствуйте, Were, Вы писали:
W>Я конечно понимаю, что там создается временный объект, но компилятор ведь все равно это оптимизирует )
Да, имеет право, но класс все равно должен быть copy-constructable
12.2/1
...
even if the copy constructor is not called, all the semantic restrictions, such as accessibility (clause 11), shall be satisfied.
...
W>Вообщем хочется запретить создавать неявно временные объекты и разрешить все остальное.
Насчет инициализации копированием, т.е. записи вида
ExplicitTest TestObj2 = 0;
ничего не выйдет, если конструктор
ExplicitTest::ExplicitTest(int) объявлен как explicit.
Что еще из "всего остального" тебе мешает?