По умолчанию в С++ конструктор с одним аргументом может использоваться как оператор неявного преобразования. Это можно подавить, отметив конструктор как явный.
Я бы предпочел сделать "явным" по умолчанию, так что компилятор не может молча использовать эти конструкторы для преобразования.
Есть ли способ сделать это в стандартном С++? В противном случае существует ли прагма (или аналогичная), которая будет работать в Microsoft С++ для этого? Что относительно g++ (мы его не используем, но может быть полезной информацией)?