«metaprogramming» 태그된 질문

메타 프로그래밍은 매크로 또는 메타 클래스와 마찬가지로 프로그래밍 환경을 다시 프로그래밍하는 기능입니다.

11
컴파일 시간 문자열 해싱
C ++ 11의 새로운 문자열 리터럴을 사용하면 컴파일 타임에 문자열의 해시를 계산할 수 있다는 것을 몇 가지 다른 곳에서 읽었습니다. 그러나 아무도 나올 준비가되어 있지 않고 그것이 가능하거나 어떻게 될 것이라고 말할 준비가되어 있지 않은 것 같습니다. 이게 가능해? 운영자는 어떻게 생겼습니까? 특히 이와 같은 사용 사례에 관심이 있습니다. void …

2
이름이 주어진 인스턴스 변수의 값을 가져옵니다.
일반적으로 문자열에 이름이있는 객체에 대한 참조를 얻으려면 어떻게해야합니까? 보다 구체적으로, 매개 변수 이름 목록이 있습니다 (멤버 변수-동적으로 빌드되어 직접 참조 할 수 없음). 각 매개 변수는 from_s메소드 도있는 객체입니다 . 다음과 같은 작업을하고 싶습니다 (물론 작동하지 않습니다 ...). define_method(:from_s) do | arg | @ordered_parameter_names.each do | param | instance_eval "field_ref …


4
Ruby Metaprogramming : 동적 인스턴스 변수 이름
다음 해시가 있다고 가정 해 보겠습니다. { :foo => 'bar', :baz => 'qux' } 객체의 인스턴스 변수가되도록 키와 값을 어떻게 동적으로 설정할 수 있습니까? class Example def initialize( hash ) ... magic happens here... end end ... 그래서 모델 내부에서 다음과 같이 끝납니다. @foo = 'bar' @baz = 'qux' ?

4
파이썬 클래스의 __dict __.__ dict__ 속성은 무엇입니까?
>>> class A(object): pass ... >>> A.__dict__ <dictproxy object at 0x173ef30> >>> A.__dict__.__dict__ Traceback (most recent call last): File "<string>", line 1, in <fragment> AttributeError: 'dictproxy' object has no attribute '__dict__' >>> A.__dict__.copy() {'__dict__': <attribute '__dict__' of 'A' objects> ... } >>> A.__dict__['__dict__'] <attribute '__dict__' of 'A' objects> # What …

30
메타 프로그래밍을위한 Python 대 Ruby [닫기]
현재이 질문은 Q & A 형식에 적합하지 않습니다. 사실, 참고 문헌 또는 전문 지식이 답변을 뒷받침 할 것으로 기대하지만이 질문은 토론, 논쟁, 여론 조사 또는 확장 된 토론을 유도 할 가능성이 높습니다. 이 질문이 개선되고 다시 열릴 수 있다고 생각 되면 도움말 센터 를 방문하여 안내를 받으세요. 휴일 팔년 전에 …

6
(기능적?) 프로그래밍의 맥락에서 "수정"과 "수정"은 무엇을 의미합니까?
이 용어는 haskell과 함수형 프로그래밍에 대한 블로그 (특히 sigfpe의 블로그 ) 에서 많이 읽었 지만 그것이 의미하는 바에 대해서는 전혀 모르겠습니다. 나는 대부분의 경우 그것을 모른 채 도망 치지 만, 내가 알았다면 아마도 텍스트를 훨씬 더 잘 이해했을 것입니다. Google은 나를 돕지 않았습니다. 나는 기술적 인 일에 빠져 들었다. 또한 …


3
함수가 정의 된 유형에 대해서만 함수 템플릿 내에서 함수 실행
입력 할 때 다양한 유형을 취하는 함수 템플릿이 있습니다. 이러한 유형 중 하나만 getInt()기능이 있습니다. 따라서 코드가 해당 유형에 대해서만 함수를 실행하기를 원합니다. 해결책을 제안하십시오. 감사 #include <type_traits> #include <typeinfo> class X { public: int getInt(){ return 9; } }; class Y{ }; template<typename T> void f(T& v){ // error: …
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.