C++에서도 컴파일 할 때 a == 1 && a == 2 && a == 3을 true로 만들고 싶습니다.

2206 단어 C++C++11
(a==1&&a==2&&a==3)을 항상 true로 설정하는 StackOverflow 문제를 해결한 Qiita 기사 정리

라고 하는 잘 모르는 기사가 나와 있다. 유행을 타 보는가?

자신의 묶음


  • 컴파일시 평가
  • C++11

  • 코드



    뭐 컴파일시라고 해도 단순한 operator overload다.
    struct A { bool a; };
    constexpr bool operator==(A, int) noexcept { return true; }
    constexpr A a{};
    static_assert(a == 1 && a == 2 && a == 3, "");
    int main(){}
    

    다른 언어 밖에 모르는 사람을 위해서 해설해 두면, static_assert 는 제1 인수가 거짓일 때, 제2 인수의 캐릭터 라인을 포함한 컴파일 에러를 내는 것이다. 에러가 나오지 않으면 true가 되었다고 할 수 있다.

    License



    CC BY 4.0

    좋은 웹페이지 즐겨찾기