생성자 초기화 목록에서 ADL을 활성화하려면 어떻게해야합니까? 예를 들어 의 네임 스페이스 수준이 abs
인 경우를 예로 들어 보겠습니다. 이제 생성자에 전달 된 인스턴스의 절대 값으로 멤버를 초기화하는 클래스 Foo
을 작성하고 싶습니다. 그것은 사용하는 네임 스페이스 수준 abs
존재하는 경우와 그렇지 않은 경우 std::abs
해야합니다생성자 초기화 목록의 ADL
template<typename T>
struct Foo
{
T _data;
Foo(T data):
_data(abs(data)) // I want find abs with ADL here
{}
};
사용하여 선언은 어쨌든 클래스 범위에서 금지하고 나는 네임 스페이스를 "오염"싶지 않아요. 생성자 초기화 목록에서 ADL이 작동하도록하려면 어떻게해야합니까?
'Foo'유형이 아닌 'T'유형의 회원이라고 가정합니다. 맞습니까? – pmr
약간 관련성이 있음 : http://stackoverflow.com/questions/7635939/how-do-i-write-an-adl-enabled-trailing-return-type-or-noexcept-specification –